问题: 如果我们想使用公司集群来操作sqoop,会发现一个很大的坑,公司集群的sqoop只是安装,根本没配置(如图)
那我还想使用,如何解决?这时候我们需要在自己家目录下安装 sqoop (没有安装包可私我)
tar命令安装完成之后进入 conf 目录下将sqoop-env-template.sh改成sqoop-env.sh增加几行如下几行环境变量输出配置,以便于让sqoop 找到我们数据交换时用到的软件的具体位置
由于sqoop 需要用到mysql包,所以需要添加mysql驱动包到sqoop的lib 目录下,我们可以直接从hive lib 去拿
cp /usr/local/hive/lib/mysql-connector-java-5.1.35.jar ~/sqoop/lib/
至此大功告成!我们可以使用啦,不过需要配置环境变量来指向我们自己的sqoop 而不是公司的sqoop
- 临时环境变量配置
导出你自己的sqoop 环境变量,一个session内有效
export sqoop="/home/lijun21/sqoop/bin"
再使用如下代码测试将mysql 数据上传到hdfssqoop import \ --connect jdbc:mysql://192.168.88.195:3306/hainiutest \ --username hainiu \ --password 12345678 \ --table lijun21_sqoop \ --target-dir /user/lijun21/lijun21_sqoop3 \ --delete-target-dir \ --num-mappers 1 \ --fields-terminated-by "\t"
它实际上就是跑的mapreduce 任务
- 在本地配置永久环境变量:
在自己家目录下使用命令: vim .bash_profile 编辑自己环境变量
然后将环境变量输出
全部完成! 别忘了 source .bash_profile 来更新环境变量哦!
测试: 将mysql数据 上传到 hbasesqoop import \ --connect jdbc:mysql://192.168.88.195:3306/hainiutest \ --username hainiu \ --password 12345678 \ --table c21_lj_sqoop_test \ --hbase-table lijun21:table3 \ --hbase-row-key id \ --column-family cf1
Last But Not Least : 关于 sqoop的用法,网上一大推,非常简单,这里就不再给出教程,谢谢。
有问题请 @ 21班李军
本帖已被设为精华帖!