Sqoop高频面试题知识点总结

1 Sqoop参数

/ opt /模块/ sqoop / bin / sqoop导入\

-连接\

- 用户名 \

-密码\

--target-dir \

--delete-target-dir \

--num-mappers \

--fields终止于\

--query“ $ 2”'和$ CONDITIONS;'

2 Sqoop导入导出Null存储一致性问题

Hive中的Null在其中以“ \ N”来存储,而MySQL中的Null在实质上就是Nul​​l,为了保证数据相互一致。在导出数据时采用--input-null-string和--input- null-non-string两个参数。导入数据时采用--null-string和--null-non-string。

3 Sqoop数据导出一致性问题

场景1:如Sqoop在导出到Mysql时,使用4个Map任务,过程中有2个任务失败,那时候MySQL中存储了另外两个Map任务导入的数据,此时老板正好看到了这个报表数据。而开发工程师发现任务失败后,会调试问题并最终将全部数据正确的引入MySQL,那后面的老板再次看报表数据,发现本次看到的数据与之前的替代,这在生产环境是容许的。

官网:
http : //http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html

由于Sqoop将导出过程分解为多个事务,因此失败的导出作业可能会导致将部分数据提交到数据库。在某些情况下,这可能进一步导致后续作业因插入冲突而失败,而在其他情况下,则可能导致数据重复。您可以通过--staging-table选项指定暂存表来解决此问题,该选项用作用于暂存导出数据的辅助表。最后,已分阶段处理的数据将在单个事务中移至目标表。

–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-以“ \ t”结尾的字段-export-dir“ /user/hive/warehouse/tmp.db/app_cource_study_analysis_${day}” –登台表app_cource_study_report_tmp --clear-staging-table --input-null-string'\ N'

4 Sqoop长期运行的任务是什么

只有Map阶段,没有Reduce阶段的任务。而是4个MapTask。

5 Sqoop一天导入多少数据

100万日活=》 10万订单,1人10条,每天1g左右业务数据

Sqoop每天将1G的数据量导入到数仓。

6 Sqoop数据导出的时候一次执行多长期

每天晚上00:30开始执行,Sqoop任务一般情况40 -50分钟的都有。取决于数据量(11:11,6:18等活动在1个小时左右)。

7 Sqoop在导入数据的时候数据倾斜

https://blog.csdn.net/lizhiguo18/article/details/103969906

Sqoop抽数的并行化主要涉及到两个参数:num-mappers:启动N个map来并行导入数据,分成4个;拆分为:按照并列来切分表的工作单元。

通过ROWNUM()生成一个严格的均匀分布的细分,然后指定为分割分段

8 Sqoop数据导出Parquet(项目中遇到的问题)

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

(1)创建临时表,把Parquet中表数据导入到临时表,把临时表转换到目标表用于可视化

(2)Sqoop里面有参数,可以直接把Parquet转换为text

(3)ads层建表的时候就不要建Parquet表

文章来源:尚硅谷大数据培训

你可能感兴趣的:(大数据,大数据,mysql,hive)