- 上传压缩包
/usr/software
- 解压压缩包到指定得位置
# tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local/
- 重命名文件名
# mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop-1.4.7
- 配置环境变量
export SQOOP_HOME=/usr/local/sqoop-1.4.7
export PATH=$PATH:$SQOOP_HOME/bin
# source /etc/profile
- 修改配置性文件
进入sqoop-1.4.7/conf 路径,复制sqoop-env-template.sh 重命名为sqoop-env.sh
# mv sqoop-env-template.sh sqoop-env.sh
修改下面几个值
export HADOOP_COMMON_HOME=/usr/local/hadoop-2.7.3
export HADOOP_MAPRED_HOME=/usr/local/hadoop-2.7.3
export HIVE_HOME=/usr/local/apache-hive-2.3.3-bin
export HIVE_CONF_DIR=${HIVE_HOME}/conf
- 关联hive
# cp /usr/local/apache-hive-2.3.3-bin/conf/hive-site.xml /usr/local/sqoop-1.4.7/conf/
- 添加驱动
导入MySQL得驱动到 /usr/local/sqoop-1.4.7/lib
8、hive jar 放入sqoop lib下
# /usr/local/apache-hive-2.3.3-bin/lib下得jar包放到hive-common-2.3.3.jar和hive-exec-2.3.3.jar
[root@master lib]# cp hive-common-2.3.3.jar /usr/local/sqoop-1.4.7/lib/
[root@master lib]# cp hive-exec-2.3.3.jar /usr/local/sqoop-1.4.7/lib/
9、启动查看版本号
#sqoop version
操作sqoop
- 测试连接MySQL
进入/usr/local/sqoop-1.4.7/bin目录下,执行
#sqoop list-databases --connect jdbc:mysql://172.1.3.113:3306/ --username 用户名 --password 1密码
显示数据库名字,表示成功
连接外部数据库也是可以连接的
#sqoop list-databases --connect jdbc:mysql://36.41.188.172:3306/ --username 用户名 --password 密码
2、报错信息
问题原因:数据库得IP/用户名/密码/数据名称错误
从 MySQL 导出数据,导入Hive。
3、Sqoop参数说明
sqoop 命令
将 mysql 中数据导入到 hive 为例,包括全量、增量导入:
$ sqoop import
--connect jdbc:mysql://ip:3306/db 数据库连接串
--username 用户名
--password 密码
--split-by id 执行并行分批字段,一般主健,配合 -m 使用
-m 2 mapper 数
--fields-terminated-by "" 导出字段分隔符,此次为制表符为分隔符
--lines-terminated-by "" 换行符
--hive-import
--create-hive-table 创建 hive 表,如果目标表已经存在了,那么创建任务会失败
--hive-table pas_med_info hive 表名
--null-string 'N' 将mysql 中的NULL数据转换为hive 的 NULL
--target-dir /apps/hive/warehouse/db/dt='日期' hive 在 hdfs 存储路径,dt='日期' 可以分区导入,当写成脚本时可以将日期做为变量,每天定时同步导入。
-- query where [可选] 增量导入方式一 ,推荐使用,直接可以用shell 脚本定时跑数据,方便简单
--incremental append或lastmodify [可选] 增量导入方式二,操作一
--append [可选] 如果选择lastmodify 则需要添加此命令,配合操作一使用
–check-column createtime [可选] 用于检查增量数据的列 ,必须是 timestamp 列,配合操作一使用
4、从MySQL导入hive
#sqoop import --connect jdbc:mysql://172.1.3.113:3306/test --username root --password 123456 --driver com.mysql.jdbc.Driver --table student -m 1 --fields-terminated-by "," --lines-terminated-by '\n' --hive-import --hive-table userdb.student;
- hive数据导入MySQL
#sqoop export --connect "jdbc:mysql://172.1.3.113:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password 123456 --table student --input-fields-terminated-by ',' --export-dir /user/hive/warehouse/userdb.db/student/*