sqoop2安装以及使用demo.md

Sqoop2的安装 简介 sqoop用于关系型数据库和分布式文件系统之间进行数据迁移。sqoop1.4.x也被称为sqoop1, sqoop1.99.x也被称为sqoop2
软件环境 Hadoop-2.6.3伪分布式 + sqoop1.99.6
注意: sqoop1.99的各个版本和hadoop2的版本之间存在一个兼容性的问题,上述的两个版本是相互兼容的, 若两个版本不兼容, 会出现各种问题
安装简介 sqoop2的安装分为server端和client端。
server负责与hadoop集群通信进行数据的迁移,client端负责与用户和server交互。
client端:不用安装, 只需要将其安装包解压到集群中任何的机器上去,然后对其进行解压即可, 无需其他额外的配置。
server端安装配置

  • 解压软件包到一个目录下-
  • 修改环境变
    export SQOOP_HOME=/home/zj/sqoop1.99.6
    export PATH=$PATH:$SQOOP_HOME/bin
    export CATALINA_BASE=$SQOOP_HOME/server
    export LOGDIR=$SQOOP_HOME/logs/-
  • 生效环境变量的配置
  • source 配置文件名
  • 修改sqoop配置:
    vi server/conf/sqoop.properties
    将org.apache.sqoop.submission.engine.mapreduce.configuration.directory后面hadoop的位置修改为自己安装的hadoop配置文件位置,我的为:/home/zj/hadoop-2.6.3/etc/hadoop/
  • 修改sqoop读取hadoop的jar包的路径 vi /sqoop/server/conf/catalina.properties
    将common.loader行后的/usr/lib/hadoop/lib/.jar改成自己的hadoop jar 包目录,我的为:
    /home/zj/hadoop2.6.3/share/hadoop/common/
    .jar,
    /home/zj/hadoop-2.6.3/share/hadoop/common/lib/.jar,
    /home/zj/hadoop-2.6.3/share/hadoop/hdfs/
    .jar,
    /home/zj/hadoop-2.6.3/share/hadoop/hdfs/lib/.jar,
    /home/zj/hadoop-2.6.3/share/hadoop/mapreduce/
    .jar,
    /home/zj/hadoop-2.6.3/share/hadoop/mapreduce/lib/.jar,
    /home/zj/hadoop-2.6.3/share/hadoop/tools/
    .jar,
    /home/zj/hadoop-2.6.3/share/hadoop/tools/lib/.jar,
    /home/zj/hadoop-2.6.3/share/hadoop/yarn/
    .jar,
    /home/zj/hadoop-2.6.3/share/hadoop/yarn/lib/*.jar
【sqoop2安装以及使用demo.md】** 注意: 在修改common.loader的过程中, 不能换行**
本步骤的另外的一种方法是: 直接将上诉的包 拷贝到$SQOOP_HOME/server/lib文件夹内部- 将mysql的连接jar包拷贝的¥SQOOP_HOME/lib文件夹中(lib文件夹需要自己创建)到此sqoop就基本配置完成可以直接运行.
/bin/sqoop.sh server start启动sqoop了
Sqoop2的使用demo
  • 启动SQOOP:
    $./bin/sqoop.sh server start
    启动成功, 可以使用jsp命令看到Bootstrap进程。
  • 进入客户端交互模式:
    $./bin/sqoop.sh client
  • 在客户端连接server
    sqoop:000> set server --host localhost 12000 --webapp sqoop(因为这里是在伪分布式, 所以写的是Localhost)下面是不同设置的效果:
shellsqoop:000> set server--host master12000 -webapp sqoopServer is set successfullysqoop:000> show version --allclient version:Sqoop 1.99.6 source revision 07244c3915975f26f03d9e1edf09ab7d06619bb8Compiled by root on Wed Apr 29 10:40:43 CST 20150 [main] WARNorg.apache.hadoop.util.NativeCodeLoader- Unable to load native-hadoop library for your platform... using builtin-java classes where applicableException has occurred during processing command Exception: org.apache.sqoop.common.SqoopException Message: CLIENT_0000:An unknown error has occurred sqoop:000> set server --host localhost12000 --webapp sqoopServer is set successfully sqoop:000> show version --all client version:Sqoop 1.99.6 source revision 07244c3915975f26f03d9e1edf09ab7d06619bb8Compiled by root on Wed Apr 29 10:40:43 CST 2015server version:Sqoop 1.99.6 source revision 07244c3915975f26f03d9e1edf09ab7d06619bb8 Compiled by root on Wed Apr 29 10:40:43 CST 2015API versions:[v1]``` 当看到show version -all正确的显示 就说明了链接上了服务器 * 后面的demo测试可以参考http://sqoop.apache.org/docs/1.99.6/Sqoop5MinutesDemo.html * 下面是自己测试是任务的执行的效果![](aa33e958-5fb2-498c-a52d-b413a0cce6b6_4_files/3cbf089f-14c3-44c4-9b58-2cee669a5719.png)输出中说写入三条, 但是hdfs文件中只有一条记录 ,原因不明。

    推荐阅读