mysql到hive调度工具_调度工具(ETL+任务流)

1.区别ETL作业调度工具和任务流调度工具

kettle是一个ETL工具,ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)。

kettle中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

所以他的重心是用于数据

oozie是一个工作流,Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。

oozie工作流中是有数据流动的,但是重心是在于工作流的定义。

二者虽然都有相关功能及数据的流动,但是其实用途是不一样的。

2.ETL作业调度工具

2.1Sqoop调度工具

2.1.1列举出所有数据库

查看帮助

bin/sqoop help

列举出所有linux上的数据库

bin/sqoop list-databases --connect jdbc:mysql://localhost:3306 --username root --password root

列举出所有Window上的数据库

bin/sqoop list-databases --connect jdbc:mysql://192.168.22.36:3306 --username root --password root

查看数据库下的所有表

bin/sqoop list-tables --connect jdbc:mysql://localhost:3306/mysql --username root --password root

2.12导入数据库表数据到HDFS

(1)确定mysql服务启动正常

查询控制端口和查询进程来确定,一下两种办法可以确认mysql是否在启动状态

办法1:查询端口

$ netstat -tulpn

MySQL监控的TCP的3306端口,如果显示3306,证明MySQL服务在运行中

办法二:查询进程

可以看见mysql的进程

ps -ef | grep mysqld

没有指定数据导入到哪个目录,默认是/user/root/表名

bin/sqoop import \

--connect jdbc:mysql://192.168.77.137/zhjy \

--password 123456 \

--username root \

--table zf_jygz_thjc \

--m 1 \

--fields-terminated-by '\t'

或是

bin/sqoop import \

--connect jdbc:mysql://192.168.77.137/zhjy \

--password 123456 \

--username root \

--table zf_jygz_thjc \

--m 5 \

--split-by ZF_BH(一般在设置-m>1时使用)

--fields-terminated-by '\t'

原因:

如果表中有主键,m的值可以设置大于1的值;如果没有主键只能将m值设置成为1;或者要将m值大于1,需要使用--split-by指定一个字段

设置了-m 1 说明只有一个maptask执行数据导入,默认是4个maptask执行导入操作,但是必须指定一个列来作为划分依据

导入数据到指定目录

在导入表数据到HDFS使用Sqoop导入工具,我们可以指定目标目录。使用参数 --target-dir来指定导出目的地,使用参数—delete-target-dir来判断导出目录是否存在,如果存在就删掉

bin/sqoop import \

--connect jdbc:mysql://192.168.77.137/zhjy \

--username root \

--password 123456 \

--delete-target-dir \   --如果目录存在,将目录删除

--table zf_jygz_thjc \

--target-dir /user/zhjy \    --指定保存目录

--m 1 \

--fields-terminated-by '\t'

查询导入

bin/sqoop import \--connect jdbc:mysql://192.168.72.133:3306/company \

--username root \--password root \--target-dir /user/company \--delete-target-dir\--num-mappers 1\--fields-terminated-by "\t"\--query 'select name,sex from staff where id <=1 and $CONDITIONS;'

提示:must contain '$CONDITIONS' in WHERE clause。

where id <=1 匹配条件

$CONDITIONS:传递作用。

如果 query 后使用的是双引号,则 $CONDITIONS前必须加转义符,防止 shell 识别为自己的变量。

--query时不能使用--table一起使用

需要指定--target-dir路径

导入到hdfs指定目录并指定要求

bin/sqoop import \--connect jdbc:mysql://192.168.72.133:3306/company \--username root \--password root\

#提高数据库到hadoop的传输速度--direct--table staff \

--delete-target-dir \

#导入指定列,涉及到多列,用逗号分隔--column id,sex \--target-dir /user/company \--num-mappers 1 \

#指定分隔符--fields-terminated-by '\t'

#指定导出存储格式--as-textfile

#指定数据压缩(压缩,解压缩方式)--compress--compression-codec org.apache.hadoop.io.compress.SnappyCodec

数据导出储存方式(数据存储文件格式---( textfil parquet)--as-textfileImports data as plain text (default)--as-parquetfile Imports data to Parquet Files)

导入表数据子集到HDFS

bin/sqoop import \--connect jdbc:mysql://172.16.43.67:3306/userdb \

--username root \--password root \--table emp_add \--target-dir /sqoop/emp_add \-m 1\--delete-target-dir\--where "city = 'sec-bad'"

sqoop导入blob数据到hive

对于CLOB,如xml文本,sqoop可以迁移到Hive表,对应字段存储为字符类型。

对于BLOB,如jpg图片,sqoop无法直接迁移到Hive表,只能先迁移到HDFS路径,然后再使用Hive命令加载到Hive表。迁移到HDFS后BLOB字段存储为16进制形式。

bin/sqoop-import \

--connect jdbc:mysql://192.168.77.137:3306/zhjy \

--username root \

--password 123456 \

--table ceshi \

--columns "id,name,photo" \

--split-by id \

-m 4 \

--inline-lob-limit=16777126 \设置内联的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache DolphinScheduler(incubator,原EasyScheduler)是一个大数据分布式工作任务调度系统,主要解决大数据研发过程中ETL处理错综复杂的依赖关系,而不能直观监控任务健康状态等问题。DolphinScheduler以DAG式的方式将Task组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及Kill任务等操作。 设计特点:一个分布式易扩展的可视化DAG工作任务调度系统。致力于解决数据处理程中错综复杂的依赖关系,使调度系统在数据处理程中开箱即用。 其主要目标如下: 1、以DAG图的方式将Task按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态 2、支持丰富的任务类型:Shell、MR、Spark、SQL(mysql、postgresql、hive、sparksql),Python,Sub_Process、Procedure等 3、支持工作定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill任务等操作 4、支持工作优先级、任务优先级及任务的故障转移及任务超时告警/失败 5、支持工作全局参数及节点自定义参数设置 6、支持资源文件的在线上传/下载,管理等,支持在线文件创建、编辑 7、支持任务日志在线查看及滚动、在线下载日志等 8、实现集群HA,通过Zookeeper实现Master集群和Worker集群去中心化 9、支持对Master/Worker cpu load,memory,cpu在线查看 10、支持工作运行历史树形/甘特图展示、支持任务状态统计、程状态统计 11、支持补数 12、支持多租户 13、支持国际化 14、还有更多等待伙伴们探索

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值