HIVE

Hive row_number,dense_rank,rank三个函数的区别

Hive 窗口函数如何设置窗口大小

Hive order by,sort by,distribute by,cluster by 区别

Hive map,reduce数怎么设置

-- map数 通过调整maxsize的大小来控制map数,减少则增加map,增加则减少map。
set mapreduce.input.fileinputformat.split.maxsize=100
-- reduce数
set mapreduce.job.reduces = *;

Hive SQL数据倾斜有哪些原因?怎么优化

原因:

  • key分布不均匀
  • 业务数据本身的特性
  • 建表时考虑不周
  • 某些SQL语句本身就有数据倾斜

优化:

  • 结合实际情况调参
  • 调整SQL语句
  • 过滤空值

parquet数据格式内部结构

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关键字来拆分数组

selectmovie,category_name
frommovie_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?

数仓如何分层的?及每一层的作用?思考:为什么要这么分层?

数仓有哪几种建模思想?维度建模、范式建模、datavault?… 有什么优劣,如何选择?

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

分区与分桶

数据仓库工程师面经(未完)相关推荐

  1. [每周软件]:Cucumber:未完待续的原因

    2019独角兽企业重金招聘Python工程师标准>>> 本来这个计划是一周的 剩下未完的三篇才是核心 两篇源码分析,一篇总结+BDD分析,但是因为目前水平有限 源码追了一部分之后追丢 ...

  2. 《今日简史》读书笔记(未完待续)

    <今日简史>读书笔记(未完待续) 这本书是尤瓦尔·赫拉利的简史三部曲的最后一本,前2本书是<未来简史>和<人类简史>.根据豆瓣上网友的评价,这本书是尤瓦尔·赫拉利写 ...

  3. ExtJs之Ext.grid.GridPanel(部分未完)

    今天在家休息,年假不用就作费啊. 看了几部香港老电影,陪爸爸看了勇士占奇才, 然后,测试了一下EXTJS未完的内容, 在京东上订了七本历史普及书,近两百块..:) 搞定. ? 1 2 3 4 5 6 ...

  4. 创建型模式——Factory Method(未完)

    当对某个对象的实例化代码散布在整个项目中的时候,似乎你已经可以嗅到坏味道了,我们叫做"创建蔓延".除非你肯定这个对象的实例化方法永远不会改变,否则最后将"创建的知识搬迁到 ...

  5. linux引数列项目过长,Linux 命令个人总结====== 未完待续 个人认为比较重要

    Linux 命令个人总结====== 未完待续 man [功能说明]: 查看帮助 [语法格式]: man [123456789]命令.文件. [选项参数]: 数字"1"表示用户命令 ...

  6. CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)

    目录 1. 前期预备知识 1.1 串口通讯电路图 1.2 实验相关寄存器 1.2 常用波特率设置 本章未完待续..... 原来写的文章已经丢失了,只能找到这一小部分,看什么时候有时间再补上. 1. 前 ...

  7. [教程] [承風雅傳HSU]用ES4封裝Win7---ES4 Win7封裝教程(未完待續)

    [教程] [承風雅傳HSU]用ES4封裝Win7---ES4 Win7封裝教程(未完待續) a10036it 发表于 2015-7-27 21:11:19 https://www.itsk.com/t ...

  8. Codeforces Round #395 (Div. 2)(未完)

    2.2.2017 9:35~11:35 A - Taymyr is calling you 直接模拟 #include <iostream> #include <cstdio> ...

  9. 计算机病毒洛,蓝狐动漫《百变机兽》中未完的战争,蓝毒兽原来是电脑病毒?...

    原标题:蓝狐动漫<百变机兽>中未完的战争,蓝毒兽原来是电脑病毒? 最近,好久没有更新了,因为最近找到一部非常好看的童年动漫<百变机兽>,然后就一直追剧.今天和大家一起聊聊< ...

  10. Paper之BigGAN:ICLR 2019最新论文《LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS》(未完待续)

    Paper之BigGAN:ICLR 2019最新论文<LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS> ...

最新文章

  1. LeetCode简单题之二叉树中第二小的节点
  2. encodeURI 和 encodeURIComponent
  3. Freemarker详细解释
  4. 在IIS上安装 thinkphp的方法
  5. Javascript 面向对象全新理练之数据的封装
  6. HTML的格式化应用
  7. 计算机与在勘察地质中的应用,地质勘察中计算机信息技术的应用
  8. MTK 驱动(82)---ABD 调试命令
  9. oracle按位或运算符怎么用,Oracle按位运算符
  10. 腾讯:干掉头条,先拿抖音开刀!
  11. 第九大陆服务器未找到文件,我的世界1.7.x第九大陆生存服务器
  12. opencv | cv2|OpenCV3.3安装Make sure that you use the correct version of ‘pip‘ installed for your Pytho
  13. 【java 】 for循环中冒号作用
  14. 国网通信之数据通信网
  15. unity简单复刻无敌破坏王
  16. jsonl后缀名是什么意思
  17. 计算机键盘毕业设计,毕业论文--智能键盘设计方案.doc
  18. JdbcTemplate查询与批量更新
  19. Stairway to Transaction Log Management in SQL Server, Level 5: Managing the Log in Full Recovery
  20. msp430g2553 ADC10

热门文章

  1. SpringMVC控制器内请求转发关键字forward无效原因
  2. shell空文件夹查找
  3. DHCP的工作原理及过程
  4. Xshell和xftp免费下载与使用
  5. Pytorch系列笔记(六)
  6. Android ImageView设置边框
  7. 【拓扑排序+dp】Hzy's Rabbit Candy
  8. 【Unity开发小技巧】Unity随机概率扩展(概率可调控)
  9. 莫比乌斯反演专题题解
  10. 安卓11 Sdcard文件读取权限问题