sqoop安装及使用
最近单位在研究大数据,我把我研究的写出来供大家参考。
1.安装sqoop
首先在官网下载sqoop.jar包sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz
安装到指定目录下 /home/cluster/sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz
解压缩 tar -zxvf sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz得到压缩文件sqoop-1.4.4
2.下载mysql 驱动包
官网下载连接mysql jar包放到压缩文件的lib下
3.配置环境变量
Vi /etc/profile export SQOOP_HOME=/home/cluster/sqoop-1.4.4
4.配置sqoop参数
复制sqoop_home/conf/sqoop-env-template.sh 一份重命名为sqoop-env.sh
修改环境变量
拷贝核心包 将hadoop的核心jar包和mysql的驱动包拷贝至sqoop/lib下
5.测试连接mysql
[root@hadoop10 sqoop-1.4.4]# bin/sqoop list-tables --connect jdbc:mysql://XXX:3306/XXX --username XXX --password XXX
6.导入数据到hbase
sqoop import --connect jdbc:mysql://XXX/XXX --username XXX --password XXX --table demo_blog --hbase-table demo_sqoop2hbase --hbase-create-table --hbase-row-key id --column-family url
Demo_sqoop2hbase是导入到hbase里面的表名
Demo_blog是mysql中要导入到hbase中的表名
输入hbase shell进入到hbase shell 命令行里面输入 list
输入scan “demo_sqoop2hbase”可查看导入的数据
describe "demo_sqoop2hbase"
7.导入数据到hive
bin/sqoop import --connect jdbc:mysql://XXX:3306/XXX --table tb_member --username XXX --password XXX --hive-import
Sqoop定时增量
一、sqoop的配置文件在sqoop.site.xml中:
1、sqoop.metastore.server.location
本地存储路径,默认在tmp下,改为其他路径
2、sqoop.metastore.server.port
metastore service端口号
3、sqoop.metastore.client.autoconnect.url
sqoop自动连接的metastore地址,默认是本地的metastore地址
4、sqoop.metastore.client.enable.autoconnect
开启自动连接。sqoop默认连接本地metastore。注释这个配置会开启自动连接。
二.开启metastore service
nohup bin/sqoop metastore
三、创建job
bin/sqoop job --create your-sync-job -- import --connect jdbc:mysql://XXX:3306/XXX--table tb_order --username XXX-P --hive-import --incremental append --check-column id --last-value 1 -- --default-character-set=utf-8
四.运行job
Sqoop job --exec your-sync-job
五.定时执行
使用linux定时器:crontab -e
编辑定时器,添加*/4 * * * * sqoop job --exec your-sync-job
遇到问题
1.执行crontab -e 提示crontab commend not found
1 下载定时器Jar 包
2 yum -y install gcc gcc-c++ autoconf vixie-cron
3 yum -y install gcc gcc-c++ autoconf crontabs vixie-cron软件包是cron的主程序; crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
2.避免重复输入密码
找到sqoop-site.xml的配置文件,发现如下配置:
<property> <name>sqoop.metastore.client.enable.autoconnect</name> <value>false</value> <description>If true, Sqoop will connect to a local metastore for job management when no other metastore arguments are provided. </description> </property>
看来这个值设置为了false,导致不能够使用Job相关操作了。
1 <property>
2 <name>sqoop.metastore.client.record.password</name>
3 <value>true</value>
4 <description>If true, allow saved passwords in the metastore.
5 </description>
6 </property>
当这个值为真的时候才会保存密码。(切记:改完配置文件要将metastore进程杀死 重新启动 配置文件才会生效)