- Sqoop:关系型数据库和HDFS/HIVE/Hbase的导入导出工具;
(1)Sqoop内部 *** 作流程
①、编写sqoop导入/导出指令,
②、Hadoop将Sqoop指令翻译成MR程序,里面只包含Map阶段
③、运行在Hadoop分布式集群, *** 作HDFS/Hbase/HIVE进行数据写入/写出
④、给客户端反馈 *** 作后的结果;
(2)Sqoop生成的MR程序,只有Map阶段,没有Reduce阶段
原因:纯粹的数据迁移,不涉及到聚合 *** 作,没必要使用reduce
(3)数据迁入与数据迁出
①数据迁入:RDBMS --》 HDFS/HIVE/Hbase
②数据迁出:HDFS/HIVE/Hbase --》 RDBMS
2、Sqoop常用命令sqoop help #查看sqoop常用命令 sqoop help import #查看import常用参数 sqoop help export #查看export常用参数
- 数仓项目部署阶段:将反复执行的程序订制成一个Job,通过定时器反复执行;
sqoop job --list #查看现有的job sqoop job --create #创建job sqoop job --drop #删除job sqoop job -exec jobname #执行job
注意点:
①需要在定时器中反复执行的sqoop指令一般封装在sqoop job中;
②job中封装了sqoop *** 作的详情(import,export);
③有增量导入的需求,必须将sqoop *** 作封装到job中,否则,增量导入的最新字段就无法存储,就会从头开始导入
1、该脚本时创建sqoop的job脚本,原则上只需要执行一次即可,以后每次执行,只需要执行sqoop job -exec jobname; 2、如过需要重新运行,则运行方式:脚本名称.sh
- 查看增量导入历史值
在.sqoop目录下,查看metastore.db.script的文件4、Sqoop在正式环境的用法 4.1、编写shell脚本
sqoop import --connect --username --passward --table --target-dir --delete-target-dir -m4.2、调用Sqoop脚本,通过给shell脚本传递参数,动态指定脚本中的参数值
sh sqoop-import.sh root 88888888 3
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)