大数据面试大保健(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万
每人每天多少条 10条
10万 * 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阶段的任务。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
