zoukankan      html  css  js  c++  java
  • centos6.5系统hadoop2.7安装sqoop

    一、sqoop简介

    Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。
      总之Sqoop是一个转换工具,用于在关系型数据库与HDFS之间进行数据转换。

    273387-20170622085958538-1652991244

    二、环境介绍

    系统:Centos 6.5

    Hadoop:Apache,2.7.3

    Mysql:5.1.73

    JDK:1.8

    由于sqoop2不稳定,所有sqoop版本选择了1.4.7。

    三、sqoop安装

    1. 下载,解压到指定目录

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
    tar –xzvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz –C /opt

    2. 修改配置文件sqoop-env.sh

    在sqoop/conf目录下有一个文件sqoop-env-template.sh,把它复制为sqoop-env.sh并修改

    cp sqoop-env-template.sh sqoop-env.sh
    vi sqoop-env.sh
    #Set path to where bin/hadoop is available
    export HADOOP_COMMON_HOME=/opt/hadoop-2.7.3
    
    #Set path to where hadoop-*-core.jar is available
    export HADOOP_MAPRED_HOME=/opt/hadoop-2.7.3
    
    #set the path to where bin/hbase is available
    export HBASE_HOME=/opt/hbase
    
    #Set the path to where bin/hive is available
    export HIVE_HOME=/opt/hive
    
    #Set the path for where zookeper config dir is
    #export ZOOCFGDIR=

    上面的内容要按照实际情况修改,另外,你还装了Zookeeper则最后一句也要配置。

    3. 配置环境变量

    我是自己的测试机,又是root用户,所以我直接改~/.bashrc:

    export SQOOP_HOME=/opt/sqoop
    export PATH=$PATH:${SQOOP_HOME}/bin
    export CLASSPATH=$CLASSPATH:${SQOOP_HOME}/lib

    然后让配置文件生效:

    source ~/.bashrc

    4. 复制相关依赖包$SQOOP_HOME/lib

    主要复制下面两个文件,mysql驱动如果没有自己下一个。

    cp ./mysql-connector-java-5.1.30/mysql-connector-java-5.1.30-bin.jar ${SQOOP_HOME}/lib 
    cp $HADOOP_HOME/share/hadoop/common/hadoop-common-2.7.3.jar ${SQOOP_HOME}/lib

    5. 修改$SQOOP_HOME/bin/configure-sqoop

    注释掉HCatalog,Accumulo检查(除非你准备使用HCatalog,Accumulo等HADOOP上的组件)    

    ##Moved to be a runtime check in sqoop.
    #if[ ! -d "${HCAT_HOME}" ]; then
    #  echo "Warning: $HCAT_HOME does notexist! HCatalog jobs will fail."
    #  echo 'Please set $HCAT_HOME to the root ofyour HCatalog installation.'
    #fi
     
    
    #if[ ! -d "${ACCUMULO_HOME}" ]; then
    #  echo "Warning: $ACCUMULO_HOME does notexist! Accumulo imports will fail."
    #  echo 'Please set $ACCUMULO_HOME to the rootof your Accumulo installation.'
    #fi
     
    
    #Add HCatalog to dependency list
    #if[ -e "${HCAT_HOME}/bin/hcat" ]; then
    # TMP_SQOOP_CLASSPATH=${SQOOP_CLASSPATH}:`${HCAT_HOME}/bin/hcat-classpath`
    #  if [ -z "${HIVE_CONF_DIR}" ]; then
    #   TMP_SQOOP_CLASSPATH=${TMP_SQOOP_CLASSPATH}:${HIVE_CONF_DIR}
    #  fi
    #  SQOOP_CLASSPATH=${TMP_SQOOP_CLASSPATH}
    #fi
     
    
    #Add Accumulo to dependency list
    #if[ -e "$ACCUMULO_HOME/bin/accumulo" ]; then
    #  for jn in `$ACCUMULO_HOME/bin/accumuloclasspath | grep file:.*accumulo.*jar |cut -d':' -f2`; do
    #    SQOOP_CLASSPATH=$SQOOP_CLASSPATH:$jn
    #  done
    #  for jn in `$ACCUMULO_HOME/bin/accumuloclasspath | grep file:.*zookeeper.*jar |cut -d':' -f2`; do
    #    SQOOP_CLASSPATH=$SQOOP_CLASSPATH:$jn
    #  done
    #fi

    6. 测试与mysql的连接

    首先确保mysqld在运行:

    service mysqld start

    然后测试是否连通:

    sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root -P

    输入密码后如果能显示你mysql上的数据库则表示已经连通。

    四、参考

    1. 如何将mysql数据导入Hadoop之Sqoop安装

    (完)

  • 相关阅读:
    python学习笔记6基本对象和流程语句整理
    暑假第二周总结(2018.7.16——7.22)
    暑假第三周总结(2018.7.23——7.29)
    《大道至简》读后感
    暑假第四周总结(2018.7.30——8.5)
    暑假第一周总结(2018.7.97.15)
    .NET中实现页面间的参数传递 QueryString\Application\Session\Cookie(转载)
    px和dip的区别与转换公式
    android开发ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不错乱)
    正则表达式的惰性匹配方法
  • 原文地址:https://www.cnblogs.com/harrymore/p/9056863.html
Copyright © 2011-2022 走看看