【大数据面试】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(),生成一个严格均匀分布的字段

posted @ 2021-12-15 16:20  哥们要飞  阅读(692)  评论(0编辑  收藏  举报