sqoop导入导出常见问题

2020-06-11  本文已影响0人  bigdata张凯翔
踩玻璃栈道.png

呀,不好意思,附错图啦,哈哈哈哈!

言归正传!

sqoop的使用.png

Sqoop数据导出Parquet

Ads层数据用Sqoop往MySql中导入数据的时候,如果用了orc(Parquet)不能导入,需转化成text格式

Sqoop数据导出控制

Sqoop中导入导出Null存储一致性问题:
Hive中的Null在底层是以“\N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性。在导出数据时采用--input-null-string和--input-null-non-string两个参数。导入数据时采用--null-string和--null-non-string。

Sqoop数据导出一致性问题

当Sqoop导出数据到MySql时,使用4个map怎么保证数据的一致性
因为在导出数据的过程中map任务可能会失败,可以使用—staging-table –clear-staging

sqoop export --connect jdbc:mysql://192.168.137.10:3306/user_behavior --username 

root --password 123456 --table app_cource_study_report --columns 

watch_video_cnt,complete_video_cnt,dt --fields-terminated-by "\t" --export-dir "/

user/hive/warehouse/tmp.db/app_cource_study_analysis_${day}" --staging-table 

app_cource_study_report_tmp --clear-staging-table --input-null-string '\N'

任务执行成功首先在tmp临时表中,然后将tmp表中的数据复制到目标表中(这个时候可以使用事务,保证事务的一致性)

Tez引擎优点?

Tez可以将多个有依赖的作业转换为一个作业,这样只需写一次HDFS,且中间节点较少,从而大大提升作业的计算性能。
项目经验之元数据备份
元数据备份(重点,如数据损坏,可能整个集群无法运行,至少要保证每日零点之后备份到其它服务器两个复本)

上一篇 下一篇

猜你喜欢

热点阅读