大数据开发工程师(偏数仓开发岗中/高级)面试经验分享(2021)

大数据开发工程师(偏数仓开发岗中/高级)面试经验分享(2021)_第1张图片

一、 个人硬性条件如下:

面试岗位: 大数据开发工程师(偏数据仓库开发,中高级)
编程经验:6年
所在城市:西北地区省会城市

二、面试流程

  1. 一般开头先介绍自己以及自己的工作经历,概述相关知识储备。
    (表述一定要条理清晰,有层次,有概括。接下来面试官提问的问题一定要直面回答,不能含混不清,不要偷换概念;要是没听懂可以直接请求面试官再表述一遍或者稍微解释一下)
  2. 一般面试官会让详细介绍一个熟悉的项目,以及自己在项目中的职责和具体的工作内容。
  3. 根据上述工作内容,抓几个知识点开始详细询问原理,机制
  4. 开始扩展相关知识点进行询问
  5. 集群相关配置(集群大小,节点数,存量大小,增量大小,用的CDH还是原生的)
  6. 调度工具的使用情况
  7. 偶尔会问在工作过程中你遇到的最难的一个问题是什么?怎样解决的?启发是什么?
  8. 不常问但引人深思的一个问题: 在上家公司的工作中你最值得骄傲的是什么?
  9. 结束后一般都会问面试者: 你还有什么问题需要了解的吗?

小插曲:某鹅肠分公司面试:直接问了mysql的ACID,顿时懵了。更懵的事,直接现场出题写sql统计,类似于输出数据集中取值范围在4-9的值(but,到现在我还没明白当时题的意思,大写的尴尬)。
结果聊了半天岗位不匹配~

三、面试问题汇总

  1. 数据模型分为那几类? 范式建模和维度建模的区别?
  2. 数据仓库的分层原理?以及解决了什么问题?
  3. 数据倾斜的解决方案?
  4. sql调优方面都做了那些?
  5. hive join的类型有那些? full join 不写关联条件结果会怎样? SEMI JOIN是怎样关联?

Inner join
Left join 和 Left outer join 本质上没有什么区别
Right join
Full join全关联,输出两个数据集的并集,如果写关联条件会报错
LEFT SEMI JOIN 最主要的使用场景就是解决exist in 只保留主表关联上的数据,不保留被关联表的字段
CROSS JOIN 笛卡儿积 不用写关联条件

  1. join 关联的底层机制是什么?
  2. map端输出是否有序? mapreduce过程会有几次排序?
  3. 在hive的insert into跟insert overwrite的区别,如果说这个分区没有挂载的话,用overwrite会造成什么样的后果? 动态分区是怎样实现的?使用了动态分区之后,用overwrite分区,如果没有映射,会对表造成什么样的影响。
  4. Group by跟reduce by是什么有什么区别?
  5. kylin是怎样保证他查询的效率会非常快,是什么样的原理来实现。
  6. Group by在提交任务之后是怎样执行的?
  7. ORC格式和parquet的这个格式的优缺点区别是什么?
  8. tez和map reduce作业提交到yarn上之后的执行区别是什么?
  9. 什么样的情况下是在map阶段可以执行group by的操作。
  10. mysql的索引,B + 树和B树的区别。
  11. reduce 阶段怎样实现数据的合并和排序的?
  12. 上传文件至HDFS的原理是什么?HDFS在整个过程中做了什么?hdfs的存储机制是什么?
投递简历一定要对口,要不面试没有收获反而浪费时间。

你可能感兴趣的:(hive数据仓库,大数据,数据仓库,面试,经验分享,hive)