大数据面试大保健(7) | Sqoop相关总结

  • 遇到过哪些问题?怎么解决的
    1.空值问题
hive        mysql
\N          null
导出数据时采用--input-null-string和--input-null-non-string两个参数。
导入数据时采用--null-string和--null-non-string。

2.数据一致性问题

hive    =》    mysql导出4个map2个成功,2个失败gmv 1亿      跟老板说1万   跳楼1万      跟老板说1亿   疯了原则:数据可以没有,但是不能错(决策)   –staging-table方式
sqoop export 
--connect jdbc:mysql://192.168.121.160: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'

3.ads层parquet/orc => mysql

不能成功;
推荐:ads层就不要建列式存储的表
ads parquet/orc=> 临时表textfile => mysql
ads parquet/orc + 加参数 => mysql

4.sqoop每天向HDFS导入多少数据?

100万日活,业务数据
普通的日常消费品电商:10万   
每人每天多少条  1010* 10= 1g数据量
每天1g的数据量

5.面试官公司,数据量比较大,发生了数据倾斜?怎么办?
https://blog.csdn.net/lizhiguo18/article/details/103969906

sqoop 抽数的并行化主要涉及到两个参数:
num-mappers:启动N个map来并行导入数据,默认4个;
split-by:按照某一列来切分表的工作单元。
通过ROWNUM() 生成一个严格均匀分布的字段,然后指定为分割字段

6.Sqoop底层运行的任务是什么

只有Map阶段,没有Reduce阶段的任务。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部