sqoop安装

来源:互联网 发布:移动运营商数据分析 编辑:程序博客网 时间:2024/05/13 15:25

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/confsqoop_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实现的。
原创粉丝点击