sqoop的安装

来源:互联网 发布:韦德巅峰场均数据 编辑:程序博客网 时间:2024/06/08 19:57

首先下载sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
地址是sqoop官网
下载sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
可以用wget命令下载;
解压缩到/usr/local/下;
将解压后的文件名用mv命令重命名为sqoop;
为了以后方便新手操作强烈建议为sqoop赋权限。
修改环境变量:

vim .bashrc

添加如下几行

export HADOOP_HOME=/usr/local/hadoopexport SQOOP_HOME=/usr/local/sqoop

这里为什么要加入hadoop的文件路径,就是为了方便的在任何文件夹下执行hadoop命令,而不用专门切换到usr/local/hadoop/bin下。sqoop同理
加上这两行还不够下一行加上

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SQOOP_HOME/bin

这一句为了指明java,hadoop,sqoop的命令地址,这一点和windows下配置JDK方式类似
加完这几句话后,运行

source .bashrc

使环境变量生效
就可以在任何命令下执行java,hadoop,sqoop命令了
由于本机暂时没有安装hive,hcat,zookeeper,accumulo 所以切到/usr/local/sqoop/bin下看到下面有一个configure-sqoop的文件用vim打开将其中的检验以上四个有没有设置路径的程序注释掉,当然读者可以不注释掉待会运行看一下有什么结果,建议仔细看一下该程序,内容很简单。

if [ ! -d "${HBASE_HOME}" ]; thenecho "Warning: $HBASE_HOME does not exist! HBase imports will fail."echo 'Please set $HBASE_HOME to the root of your HBase installation.'fi## Moved to be a runtime check in sqoop.if [ ! -d "${HCAT_HOME}" ]; thenecho "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail."echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'fiif [ ! -d "${ACCUMULO_HOME}" ]; thenecho "Warning: $ACCUMULO_HOME does not exist! Accumulo imports will fail."echo 'Please set $ACCUMULO_HOME to the root of your Accumulo installation.'fiif [ ! -d "${ZOOKEEPER_HOME}" ]; thenecho "Warning: $ZOOKEEPER_HOME does not exist! Accumulo imports will fail."echo 'Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.'fi

在微软官方网站下载sqlserver的jdbc驱动,官网JDBC下载sqljdbc_4.0.2206.100_enu.tar.gz;
一定要下这个版本
解压缩后将里面的sqljdbc.jar,sqljdbc4.jar,sqljdbc41.jar,sqljdbc42.jar四个架包放在
/usr/local/sqoop/lib下
这时sqoop已经安装完成,运行sqoop help命令看一下
如果我在sqlserver中有一个库Windelec,用户名为sa,密码为123456,库里有一张sqlTest1的表
我要把它导到hdfs中的/sqoop/test文件夹下
用如下命令

sqoop import --connect 'jdbc:sqlserver://192.168.3.46:1433;username=sa;password=123456;database=WindElec' --table sqlTest1 --target-dir '/sqoop/test' -m 2

import是导入命令
–connect是sqoop的字符串后面跟uri链接
注意要把jdbc:sqlserver://192.168.3.46:1433;username=sa;password=123456;database=WindElec整个用单引号否则报错;
–table 后面指明表名
–target-dir后面指明目标目录
-m是hadoop的字符串用-来与sqoop的字符串来区分,-m指的是起几个map
导入成功后,可以用w3m在http://localhost:50070网站上查看。

原创粉丝点击