hadoop工程师面试题6

来源:互联网 发布:重庆图书馆借阅软件 编辑:程序博客网 时间:2024/05/16 10:47

9. 面试问题:

1.从前到后从你教育背景(学过哪些课)到各个项目你负责的模块,问的很细(本以为他是物理学博士,但是所有的技术都懂)
2.hadoop 的 namenode 宕机,怎么解决
先分析宕机后的损失,宕机后直接导致client无法访问,内存中的元数据丢失,但是硬盘中的元数据应该还存在,如果只是节点挂了,
重启即可,如果是机器挂了,重启机器后看节点是否能重启,不能重启就要找到原因修复了。但是最终的解决方案应该是在设计集群的初期
就考虑到这个问题,做namenode的HA。
3.一个datanode 宕机,怎么一个流程恢复
Datanode宕机了后,如果是短暂的宕机,可以实现写好脚本监控,将它启动起来。如果是长时间宕机了,那么datanode上的数据应该已经
被备份到其他机器了,那这台datanode就是一台新的datanode了,删除他的所有数据文件和状态文件,重新启动。
4.Hbase 的特性,以及你怎么去设计 rowkey 和 columnFamily ,怎么去建一个table
因为hbase是列式数据库,列非表schema的一部分,所以在设计初期只需要考虑rowkey 和 columnFamily即可,rowkey有位置相关性,所以
如果数据是练习查询的,最好对同类数据加一个前缀,而每个columnFamily实际上在底层是一个文件,那么文件越小,查询越快,所以讲经
常一起查询的列设计到一个列簇,但是列簇不宜过多。
5.Redis,传统数据库,hbase,hive 每个之间的区别(问的非常细)
Redis是缓存,围绕着内存和缓存说
Hbase是列式数据库,存在hdfs上,围绕着数据量来说
Hive是数据仓库,是用来分析数据的,不是增删改查数据的。
6.公司之后倾向用spark 开发,你会么(就用java代码去写)
会,spark使用scala开发的,在scala中可以随意使用jdk的类库,可以用java开发,但是最好用原生的scala开发,兼容性好,scala更灵活。

10. 面试问题:

1.笔试: java基础(基本全忘,做的很烂,复习大数据连单例都忘了怎么写)
复习java面试宝典
2.开始介绍项目,直接用大数据项目介绍,项目经理也懂大数据
3.Mapreduce 一些流程,经过哪些步骤
Map—combiner—partition—sort—copy—sort—grouping—reduce
4.说下对hadoop 的一些理解,包括哪些组件
详谈hadoop的应用,包括的组件分为三类,分别说明hdfs,yarn,mapreduce
5.详细讲解下你流式实时计算的项目部署以及收集的结果情况
讲解storm集群的部署方案,项目的大小,使用的worker数,数据收集在hbase或者hdfs,好处是什么
6.你的数据库是不是很大么,有没有分表,分区,你是怎么实现的
数据库的分表在设计初期是按照月份进行拆分的,不同的月份查询不同的表。分区没弄过。
7.开始问java的一些东西(从各种框架原理到各种复杂SQL)
8.多线程,并发,垃圾回收机制,数据结构(问这些,基本觉得看你是不是高级程序员了)
多线程要知道操作方式,线程安全的锁,并且要知道lock锁
垃圾回收机制需要详细了解(见云笔记),主要从内存划分,垃圾回收主要的工作区域,垃圾回收器的种类,各有什么优缺点,
用在哪里合适。
数据结构基本的要知道,复杂的参考相关的书籍。

11. 面试问题:

1.BI小组的3个年轻学生一起技术面试(一个是南开博士)
2.数据量多少,集群规模多大,型号
一般中型的电商或者互联网企业,日志量每天在200-500M左右,集群规模在30-50台左右,机器一般为dell的2000左右的服务器,型号不定
大型的互联网公司据网上资料显示,日志量在GP-PB不等,集群规模在500-4000不等,甚至更多,机器型号不确定。
3.项目,mapreduce
介绍整个mapreduce项目流程,数据采集—数据聚合—数据分析—数据展示等
4.实时流式计算框架,几个人,多长时间,细节问题,包括讲flume ,kafka ,storm 的各个的组件组成,你负责那一块,如果需要你搭建你可以
完成么?
5.你觉得spark 可以完全替代hadoop 么? 

12. 面试问题:

1.一些传统的hadoop 问题,mapreduce 他就问shuffle 阶段,你怎么理解的
Shuffle意义在于将不同map处理后的数据进行合理分配,让reduce处理,从而产生了排序、分区。
2.Mapreduce 的 map 数量 和 reduce 数量 怎么确定 ,怎么配置
Map无法配置,reduce随便配置
3.唯一难住我的是他说实时计算,storm 如果碰上了复杂逻辑,需要算很长的时间,你怎么去优化
拆分复杂的业务到多个bolt中,这样可以利用bolt的tree将速度提升
4.Hive 你们用的是外部表还是内部表,有没有写过UDF(当然吹自己写过了),hive 的版本
外部表,udf,udaf等,hive版本为1.0
5.Hadoop 的版本 
如果是1.0版本就说1.2,如果是2.0版本,就说2.6或者2.7
1.2为官方稳定版本,2.7为官方稳定版本。
Apache Hadoop 2.7.1于美国时间2015年07月06日正式发布,本版本属于稳定版本,是自Hadoop 2.6.0以来又一个稳定版,同时也是
Hadoop 2.7.x版本线的第一个稳定版本,也是 2.7版本线的维护版本,变化不大,主要是修复了一些比较严重的Bug
6.实时流式计算的结果内容有哪些,你们需要统计出来么(我就说highchart展示)
简单介绍日志监控、风控等结果内容,统计出来显示在报表或者邮件中。
7.开始问java相关,包括luecne,solr(倒排索引的原理),框架呀,redis呀