137.1 数据导出
- Sqoop可以对HDFS文件进行导入导出到关系型数据库
- Sqoop 工作机制是将导入或导出命令翻译成 mapreduce 程序来实现。
- 在翻译出的 mapreduce 中主要是对 inputformat 和 outputformat 进行定制
sqoop实际生产环境中 关于mysql地址 尽量不要使用: localhost 可用ip或者域名代替 - 导入
- mysql----->hdfs 导入的文件分隔符为逗号
- mysql----->hive
- 需要先复制表结构到hive 再向表中导入数据
- 导入的文件分隔符为 ‘\001’
- sqoop中增量导入的判断是通过上次导入到某个列的某个值来标识 的,这个值由用户自己维护,一般企业中选择不重复且自增长的主键最多,自增长的时间也可以。
# 导入mysql表到hdfs
bin/sqoop import \
--connect jdbc:mysql://node-1:3306/userdb \
--username root \
--password 123 \
--target-dir /sqoopresult \
--table emp --m 1
# 支持条件导入数据
bin/sqoop import \
--connect jdbc:mysql://node-1:3306/userdb \
--username root \
--password 123 \
--where "id > 1202" \
--target-dir /sqoopresult/t1 \
--table emp --m 1
# 将关系型数据的表结构复制到hive中
bin/sqoop create-hive-table \
--connect jdbc:mysql://node-1:3306/userdb \
--table emp_add \
--username root \
--password 123 \
--hive-table default.emp_add_sp
# 从关系数据库导入文件到hive中
bin/sqoop import \
--connect jdbc:mysql://node-1:3306/userdb \
--username root \
--password 123 \
--table emp_add \
--hive-table default.emp_add_sp \
--hive-import \
--m 1
# 增量导入
bin/sqoop import \
--connect jdbc:mysql://node-1:3306/userdb \
--username root \
--password 123 \
--table emp_add \
--target-dir '/user/hive/warehouse/emp_add_sp' \
--incremental append \
--check-column id \
--last-value 1205 \
--fields-terminated-by '\001' \
--m 1
- 导出
- hdfs导出到mysql
- 要先在mysql中手动创建对应的表结构
- hdfs导出到mysql
# hdfs文件导出到mysql
bin/sqoop export \
--connect jdbc:mysql://node-1:3306/userdb \
--username root \
--password 123 \
--table employee \
--export-dir /hivedata/employee.txt \
--fields-terminated-by '\001'
137.2 工作流调度
- azkaban工作流程
- 配置job文件(注意文件的第一行头信息)
- 把job配置连同其他资源一起打成.zip压缩包
- 页面上创建工程project
- 上传.zip压缩包
- execute/schedule
大数据视频推荐:
CSDN
人工智能算法竞赛实战
AIops智能运维机器学习算法实战
ELK7 stack开发运维实战
PySpark机器学习从入门到精通
AIOps智能运维实战
腾讯课堂
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通