HIVE
Hive map,reduce数怎么设置
-- map数 通过调整maxsize的大小来控制map数,减少则增加map,增加则减少map。
set mapreduce.input.fileinputformat.split.maxsize=100
-- reduce数
set mapreduce.job.reduces = *;
Hive SQL数据倾斜有哪些原因?怎么优化
原因:
- key分布不均匀
- 业务数据本身的特性
- 建表时考虑不周
- 某些SQL语句本身就有数据倾斜
优化:
Hive数据选择的什么压缩格式
-
不同的场景选择不同的压缩方式,肯定没有一个一劳永逸的方法,如果选择高压缩比,那么对于cpu的性能要求要高,同时压缩、解压时间耗费也多;选择压缩比低的,对于磁盘io、网络io的时间要多,空间占据要多;对于支持分割的,可以实现并行处理。
-
生产中,Map阶段数据落盘通常使用snappy压缩格式(快速压缩解压),reduce阶段数据落盘通常使用gzip或bzip2进行压缩(减少磁盘使用)。
-
若该压缩格式不支持文件分割,则后续无法实现并行处理,生产优化核心是让每个文件大小略微低于块大小,如块128M怎文文件为125M。未压缩的文件是支持文件分割的
Hive SQL 如何转化成MR任务的
- Antlr定义SQL的语法规则,完成SQL词法、语法解析,将SQL转换为抽象语法树AST Tree
- 遍历AST Tree,抽象出查询的基本组成单位QueryBlock
- 遍历QueryBlock,翻译为操作操作树OperatorTree
- 逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator,减少Shuffle的数量。
- 遍历OperatorTree,翻译为MR任务
- 物理层优化器进行MR任务的变化,生成最终的执行计划
Hive 分桶了解吗
Hive分桶类似于MR的HashPartitioner。
MR的HashPartitioner是用key的hash值模除reduceTask的数量分区,
Hive的分桶是用指定字段的hash值模除桶的数量分桶。
分桶表的优点在于方便随机抽样与join不会数据倾斜。
Hive的udf、udaf和udtf了解过吗?自己有没有写过udf
怎么验证Hive SQL 的正确性
explain 查看执行计划。
lateral view explode关键字来拆分数组
select
movie,
category_name
from
movie_info lateral view explode(category) table_tmp as category_name;
join操作底层的MapReduce是怎么去执行的
讲讲hive sql优化
https://blog.csdn.net/qq_41106844/article/details/108263401
MR&Spark
mr shuffle 是什么样子?具体原理是什么?为什么要排序?
shuffle排序,按字典顺序排序的,目的是把相同的的key可以提前一步放到一起。
shuffle是为了通过外排(外部排序)降低内存的使用量,防止reduce阶段排序发生内存溢写。
mr map,reduce数量都和什么相关
map的数量与输入的文件数、文件大小、块大小、块数量以及split大小有关。
正确的reduce任务的个数应该是0.95或者1.75 *(节点数 ×mapred.tasktracker.tasks.maximum参数值)。
如果任务数是节点个数的0.95倍,那么所有的reduce任务能够在 map任务的输出传输结束后同时开始运行。
如果任务数是节点个数的1.75倍,那么高速的节点会在完成他们第一批reduce任务计算之后开始计算第二批 reduce任务。
hdfs存放副本的策略是什么样的?
MapReduce的作业流程,涉及到几次排序
Spark任务执行过程
MapReduce Shuffle 和 Spark Shuffle的区别
Spark的内存管理模型
讲讲Spark Shuffle
Spark Shuffle bypass模型了解吗
Spark使用中遇到什么问题,怎么解决的
MapReduce&Spark任务调度流程
MR性能优化,如何突破性能瓶颈
Spark性能优化,如何突破性能瓶颈
数据仓库
什么是数据仓库
数据仓库是一个存储历史数据,从公司业务维度与业务指标满足业务需求的数据集合。
所以说数据仓库应该死扣的是业务需求。
你们公司数仓是怎么构建的,怎么做的分层
设计一个统计各渠道用户留存的模型
缓慢变化维怎么处理
你们数据怎么同步到数仓的,怎么保证数据不丢失
数据质量怎么控制
数据规范怎么定义的
如果进行元数据管理
建模方法论
你是怎么分主题域的
对现在的业务有什么看法
现在的仓库是个什么情况,各个分层有什么特点?为什么这么分?
讲讲三范式
拉链表,缓慢变化维
给你一个新业务,怎么开展?
数据仓库灵魂30问
传统数仓的程度(建模工具、ETL工具、BI报表工具、调度系统)
印象最深刻的项目?为什么?亮点与优势?
实时数仓做过吗?采用什么架构?lambda有哪些优缺点?
如何看待kappa架构?iota架构呢?
责任心?沟通能力?团队协作?数据思维?
用户画像(静态、动态标签,统计、规则、预测标签,衰退系数、标签权重)
推荐系统(协同过滤,基于用户、商品,SVD,各种距离算法等)
数仓如何确定主题域?CDM?
SCD的常用处理方式?优劣?与SCD2与拉链表有什么异同?
如何控制数据质量?
如何做数据治理?数据资产管理呢?
Hive优化?SQL优化,参数优化
如何解决数据倾斜
小文件问题
order by、sort by、distribute by、cluster by
udf、udtf?处理的问题?
shuffer优化
MySQL如何改写row_number
连续n天登录用户
用户留存、用户活跃、沉默用户、回流用户
lag/lead()over()函数、ntile() 等分析函数
rollup、cube、grouping sets grouping_id
分区与分桶