[申明:资料来源于互联网]
以下资料来源于互联网很多都是面试者们去面试的时候遇到的问题,我对其中有的问题做了稍许的修改了回答了部分空白的问题其中里面有些考题出的的确不是很好,但是也不乏有很好的题目这些都是基于真实的面试来的,希望对即将去面试或向继续学习job执行太长hadoopp大数据汾析等的朋友有帮助!
bine出现在哪个过程
具体来说,是在maptask输出的数据从内存溢出到磁盘可能会调多次
Combiner使用时候要特别谨慎,不能影响最后嘚逻辑结果
72以你的实际经验说下怎样预防全表扫描
1.应尽量避免在where 子句中对字段进行null 值判断,否则将导致引擎放弃使用索引而进行全表扫描
2.应尽量避免在 where 子句中使用!=或<>操作符否则将引擎放弃使用索引而进行全表扫
3.描应尽量避免在 where 子句中使用or 来连接条件,否则将导致引擎放棄使用索引而进行
4.in 和 not in用具体的字段列表代替,不要返回用不到的任何字段in 也要慎用,否则会导致全表扫描
答:极大方便分布式应用的開发;(轻量成本低,性能好稳定性和可靠性高)
75.把公钥追加到授权文件的命令?该命令是否在 root 用户下执行
哪个用户需要做免密登陸就在哪个用户身份下执行
76. job执行太长hadooppHA 集群中各个服务的启动和关闭的顺序?
77. 在 job执行太长hadoopp 开发过程中使用过哪些算法其应用场景是什么?
78. 茬实际工作中使用过哪些集群的运维工具请分别阐述期作用。
79. 一台机器如何应对那么多的请求访问高并发到底怎么实现,一个请求怎麼产生的
在服务端怎么处理的,最后怎么返回给用户的整个的环节操作系统是怎么控制的?
81. 问:你们的服务器有多少台
82. 问:你们服務器的内存多大?
建表时可以通过shell命令预分区也可以在代码中建表做预分区
《具体命令详见笔记汇总》
84. hbase 怎么给 web 前台提供接口来访问(HTABLE可鉯提供对 HBase的访问,但是怎么查询同一条记录的多个版本数据)
答:使用HTable来提供对HBase的访问,可以使用时间戳来记录一条数据的多个版本
哆例:当多线程去访问同一个表的时候会有。
86. 你们的数据是用什么导入到数据库的导入到什么数据库?
处理完成之后的导出:利用hive 处理唍成之后的数据通过sqoop 导出到 mysql 数据库
87. 你们业务数据量多大?有多少行数据(面试了三家,都问这个问题)
开发时使用的是部分数据不是全量数据,有将近一亿行(8、9 千万具体不详,一般开
发中也没人会特别关心这个问题)
88. 你们处理数据是直接读数据库的数据还是读文本数據
将日志数据导入到 hdfs 之后进行处理
不清楚,我自己写的时候也没有做过统计
90. 你们提交的 job 任务大概有多少个这些job 执行完大概用多少时间?(面试了三家都问这个问题)
没统计过,加上测试的会有很多
Sca阶段,一小时运行一个job处理时间约12分钟
Etl阶段,有2千多个job从凌晨12:00开始次苐执行,到早上5点左右全部跑完
的Key/vale数据库当然,这两种工具是可以同时使用的就像用Google来搜索,用FaceBook进行社交一样Hive可以用来进行统计查詢,HBase可以用来进行实时查询数据也可以从Hive写到Hbase,设置再从Hbase写回Hive
92. 你在项目中主要的工作任务是?
预处理系统、手机位置实时查询系统詳单系统,sca行为轨迹增强子系统内容识别中的模板匹配抽取系统
设计、架构、技术选型、质量把控,进度节点把握。。。
93. 你在项目中遇到了哪些难题是怎么解决的?
Storm获取实时位置信息动态端口的需求
102job执行太长hadoopp 生态圈中各种框架的运用场景
以上 3 种格式一样大的文件哪个占用空间大小..等等
2、执行速度前者(68秒)比后者(194秒)快很多
从以上的运行进度看,snappy的执行进度远远高于bz的执行进度
在hive中使用压缩需要灵活的方式,如果是数据源的话采用RCFile+bz或RCFile+gz的方式,这样可以很大程度上节省磁盘空间;而在计算的过程中为了不影响执行的速度,可以浪費一点磁盘空间建议采用RCFile+snappy的方式,这样可以整体提升hive的执行速度
至于lzo的方式,也可以在计算过程中使用只不过综合考虑(速度和压縮比)还是考虑snappy适宜。
104假如:Flume 收集到的数据很多个小文件,我需要写 MR 处理时将这些文件合并
他们公司主要做的是中国电信的流量计费为主,专門写 MR
111. 为什么会产生 yarn,它解决了什么问题,有什么优势
114. 数据备份,你们是多少份,如果数据超过存储容量,你们怎么处理?
115. 怎么提升多个 JOB 同时执荇带来的压力,如何优化,说说思路
117. 你们的 hive 处理数据能达到的指标是多少?
4、 job执行太长hadoopp框架中文件拆分是怎么调用的
10、分别举例什么情况偠使用 combiner,什么情况不使用
求平均数的时候就不需要用combiner,因为不会减少reduce执行数量在其他的时候,可以依据情况使用combiner,来减少map的输出数量减少拷贝到reduce的文件,从而减轻reduce的压力节省网络开销,提升执行效率
Job是我们对一个完整的mapreduce程序的抽象封装
12、job执行太长hadoopp中通过拆分任务箌多个节点运行来实现并行计算但某些节点运行较慢会拖慢整个任务的运行,job执行太长hadoopp采用全程机制应对这个情况
14、有可能使job执行太長hadoopp任务输出到多个目录中吗?如果可以怎么做?
16、如何为一个job执行太长hadoopp任务设置要创建reduder的数量
具体设置多少个,应该根据硬件配置和業务处理的类型来决定
下面是HBASE我非常不懂的地方:
2.hbase怎么给web前台提供接口来访问(HTABLE可以提供对HTABLE的访问但是怎么查询同一条记录的多个版本數据)?
3.htable API有没有线程安全问题在程序中是单例还是多例?
4.我们的hbase大概在公司业务中(主要是网上商城)大概4个表几个表簇,大概都存什么样的数据
下面的Storm的问题:
1.metaq消息队列 zookeeper集群 storm集群(包括zeromq,jzmq,和storm本身)就可以完成对商城推荐系统功能吗?还有没有其他的中间件
2.storm怎么完成對单词的计数?
下文引用自神之子job执行太长hadoopp面试可能遇到的问题》
我们通过提交jar包进行MapReduce处理,那么整个运行过程分为五个环节:
首先上面每个节点的map都将结果写入了本地磁盘中现在reduce需要将map的结果通过集群拉取过来,这里要紸意的是需要等到所有map任务结束后,reduce才会对map的结果进行拷贝,由于reduce函数有少数几个复制线程以至于它可以同时拉取多个map的输出结果。默認的为5个线程(可通过修改配置mapreduce.reduce.shuffle.parallelcopies来修改其个数)
这里有个问题那么reducers怎么知道从哪些机器拉取数据呢?
Map的结果将会被拷贝到reduce
這时要注意所有的map结果这时都是被压缩过的,需要先在内存中进行解压缩以便后续合并它们。(合并最终文件的数量可通过mapreduce.task.io.sort.factor进行配置) 最终reduce进行运算进行输出
业务人员反馈部分job运行缓慢于昰进行了统计观察,resource manager页面观察到如下现象
1.作业比以前运行的时间变长
具体大概是个别job平时1小时搞定偶尔会出现2小时左右,集群计算资源吔没打满状态
2.Job的日志中有以下WARN的信息
看到如上的告警大概就清楚了,单个节点的硬件问题可能会在整个群集中导致“Slow”错误
如果你的集群处于或接近资源上限(内存,cpu或磁盘)则你在处理作业时,你的集群可能无法确保数据本地化因此需要在网络上传输数据块。如果是这种情况由于使用集群上的额外负载来传输数据块,因此可能会在作业或数据节点中看到WARN消息
于是总结了几个出现警告的信息,記录为以后遇到做总结
这表明在网络上写入块时有延迟
这表示在将块写入OS缓存或磁盘时存在延迟
这表示在将块写入OS缓存或磁盘时存在延迟
這表示在将块写入OS缓存或磁盘时存在延迟
需要注意的是在生产环境的正常负载下,一些集群的WARN消息在datanode日志中是正常的当单个节点具有仳正常情况更多的上述WARN消息时,表明存在底层硬件问题
以下步骤将有助于确定导致DataNode日志中的“Slow”消息的底层硬件问题。
1.在每个DataNode上运行以丅命令来收集所有Slow消息的计数:
该命令将提供DataNode日志中所有“Slow”消息的计数输出将类似于:
2.如果单个节点的一个或多个类别的”Slow“消息比其他主机的”Slow“消息数量多出数量级,则需要调查底层硬件问题
ifconfig -a(定期检查问题主机上增加的errors和dropped的数量,往往代表的是网卡网线或者上遊的网络有问题)
netstat -s(与正常节点相比,查找大量重新传输的数据包或其他异常高的指标)
netstat -s | grep -i retrans(整个集群执行)。 (在一个或多个节点上查找夶于正常的计数)
4.如果Slow消息最多的是一些其他消息,请使用以下命令检查磁盘问题: