【大数据面试】sqoop:空值、数据一致性、列式存储导出、数据量、数据倾斜
一、有没有遇到过问题,怎么进行解决的
1、空值问题
本质:hive底层存储空数据使用\n《==》MySQL存储空数据使用null
解决:双向导入均分别使用两个参数☆,之前讲过
2、数据一致性问题
Hive ==》 MySQL
默认是4个map
2个成功,2个失败
原则:数据可以没有,但不能有错误
原因:数仓是为决策使用的
保证数据一致性的参数:--staging
3、ads层是parquet列式存储/ORC ==》 导出到MySQL,能否导出成功
直接导入,不能成功
导入失败,抛异常
解决:
parquet列式存储/ORC ==》 textfile临时表 ==》 MySQL
或:parquet列式存储/ORC + 列式存储的参数 ==》 MySQL
推荐:ads层不要建列式存储表【一张表,每天一条数据】
4、sqoop每天向hdfs导入多少数据【举一反三】
每天100w日活跃量,sqoop导入的业务数据
普通的日常消费品电商,10w条订单,每人每天产生10条【业务数仓10条,行为数仓100条】
10w订单*10条=1G数据量
5、面试官公司比较大,sqoop导入数据时,发生了数据倾斜【map分配不均匀】,如何解决
解决:nume-mappers,默认4个map,可以尝试增加map数
或:按照某一列来切分表的工作单元,即通过ROWNUM(),生成一个严格均匀分布的字段
本文来自博客园,作者:哥们要飞,转载请注明原文链接:https://www.cnblogs.com/liujinhui/p/15693348.html