sqoop安装

sqoop有两个版本:sqoop1和sqoop2

如果你想自己编译源码:以下是执行步骤:

1.下载源码
2.运行mvn clean package -Pbinary -DskipTests
如果报内存错误:
set MAVEN_OPTS=XX:MaxPermSize=128M
编译docs项目会报异常,对应的pom.xml的一个插件改一个版本3.3
<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-site-plugin</artifactId>
    <version>3.3</version>
</dependency>

sqoop1安装

下载:http://mirror.bit.edu.cn/apache/sqoop/1.4.6/
下载这个包:sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

安装步骤:

    1.tar -zxvf  sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
    2.修改/etc/profile
        export SQOOP_HOME=/home/spark/app/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/
        export PATH=$PATH:$SQOOP_HOME/bin
    source /etc/profile 是配置生效
    3.将$SQOOP_HOME/conf中cp sqoop-env-template.sh cp sqoop-env.sh,修改内容:

        export HADOOP_COMMON_HOME=/home/spark/app/hadoop-2.4.1
        export HADOOP_MAPRED_HOME=/home/spark/app/hadoop-2.4.1
        export HIVE_HOME=/home/spark/app/apache-hive-0.13.1-bin/
        export ZOOCFGDIR=/home/spark/app/zookeeper-3.4.5/conf
        export HBASE_HOME=

    4.将mysql的驱动包放到$SQOOP_HOME/lib中
        cp mysql-connector-java-5.1.28.jar $SQOOP_HOME/lib中
    5.修改$SQOOP_HOME/bin/configure-sqoop

    注释掉HCatalogAccumulo检查(除非你准备使用HCatalogAccumuloHADOOP上的组件)
    ## Moved to be a runtime check in sqoop.
    #if [ ! -d "${HCAT_HOME}" ]; then
    #  echo "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail."
    #  echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'
    #fi

    #if [ ! -d "${ACCUMULO_HOME}" ]; then
    #  echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports will fail."
    #  echo 'Please set $ACCUMULO_HOME to the root of your Accumulo installation.'
    #fi


    6.测试连接:
        显示mysql数据库列表:
        sqoop list-databases --connect jdbc:mysql://spark02:3306/ --username root --password root       

这里写图片描述

        显示数据库中所有表:
        sqoop list-tables --connect jdbc:mysql://spark02:3306/hive --username root --password root  

这里写图片描述

sqoop2安装

下载: http://mirrors.shuosc.org/apache/sqoop/1.99.7/
下载:sqoop-1.99.7-bin-hadoop200.tar.gz

安装步骤:

    1.tar -zxvf sqoop-1.99.7-bin-hadoop200.tar.gz
    2.目录介绍
        bin:可执行脚本,一般使用sqoop都是通过这个目录中的工具调用,是一些shell或batch脚本。
    conf:存放配置文件
    docs:目前不清楚具体是什么,可能是帮助文档,不过一般使用sqoop不会用到。
    server:里面只有一个lib目录,存了很多jar文件,是sqoop2 的server包。
    shell:同理,sqoop2的shell包。
    tools:同理,sqoop2的工具包。

    3.修改/etc/profile
        export SQOOP_HOME=/home/spark/app/sqoop-1.99.7-bin-hadoop200/
        export SQOOP_SERVER_EXTRA_LIB=$SQOOP_HOME/extra
        export PATH=$PATH:$SQOOP_HOME/bin
    4.将mysql的驱动包复制到$SQOOP_HOME/extra目录中
        mkdir $SQOOP_HOME/extra
        cp   mysql-connector-java-5.1.28.jar $SQOOP_HOME/extra

    5.配置hadoop代理访问
        因为sqoop访问Hadoop的MapReduce使用的是代理的方式,必须在Hadoop中配置所接受的proxy用户和组。找到Hadoop的core-site.xml配置文件(本例是$HADOOP_HOME/etc/hadoop/core-site.xml):
        <property>
          <name>hadoop.proxyuser.$SERVER_USER.hosts</name>
          <value>*</value>
        </property>
        <property>
          <name>hadoop.proxyuser.$SERVER_USER.groups</name>
          <value>*</value>
        </property>

        $SERVER_USER是运行Sqoop2 Server的系统用户,本例我使用了hadoop用户运行server,所以将之代替为hadoop。
注意:保证你的用户id大于1000(可用id命令查看),否则作为系统变量运行时,可能需要其他配置,参照官网。

    6.配置sqoop服务器:在$SQOOP_HOME/conf

sqoop_bootstrap.properties配置文件:

    sqoop.config.provider=org.apache.sqoop.core.PropertiesConfigurationProvider 


    sqoop.properties配置文件:                       org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/home/hadoop/hadoop2.6/etc/hadoop  

org.apache.sqoop.security.authentication.type=SIMPLE  
org.apache.sqoop.security.authentication.handler=org.apache.sqoop.security.authentication.SimpleAuthenticationHandler  
org.apache.sqoop.security.authentication.anonymous=true
     注意:官方文档上只说了配置上面第一项,mapreduce的配置文件路径,但后来运行出现authentication异常,找到sqoop文档描述security部分,发现sqoop2支持hadoop的simple和kerberos两种验证机制。所以配置了一个simple验证,这个异常才消除。


    7.可以使用sqoop2-tool工具进行验证是否配置成功:
        bin/sqoop2-tool verify
        出行一个:Verification was successful

    8.启动服务器:
        bin/sqoop2-server start
        sqoop2的运行模式不再是sqoop1的一个小工具,而加入了服务器,这样只要能访问到mapreduce配置文件及其开发包,sqoop服务器部署在哪里都无所谓,而客户端shell是不需要任何配置的。直接用即可。
        这时可以通过JDK中的jps工具查看是否已经正确启动起来,正常情况下会有个SqoopJettyServer的进程,这也可以想象,Sqoop server是基于jetty实现的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值