《大数据工程师(运维)面试系列(4)》

时间:2022-03-26 21:53:10

1.MapReduce解决缺值问题?


一张非常宽,且数据量大的表,被分割成若干个hdfs上的小文件,其中有一个字段,是自增的(但分布的文件中的这个字段值是乱序的),举个栗子,比如:1,2,3。现在并不知道究竟是哪几个值缺失,请你用MapReduce的方式将那些缺失的值找到?


其实这是MapReduce的典型应用场景之一——缺值查找。整体的一个思路是,先将这些乱序的值排好序,然后又因为表非常宽,可以单独建立与这张宽表一一对应的那个字段的列,然后再用MapReduce处理那个列就OK了。


基于MapReduce的大数据缺失值填充算法


2.集群规模有限,但之前的那个文件足够大,如何解决?不能调整集群的规模


从集群角度出发,通过如下的机器配置与Map/Reduce的slots转换:

《大数据工程师(运维)面试系列(4)》

估量出该有限规模集群一次最合理的发起Map/Reduce数,再估量出这种量数的Map/Reduce大致对应多少批量的文件,以这个批量为单元,将该文件进行split。


3.Spark的三种部署方式?


Apache Spark三种分布式部署方式比较


4.如果Spark用的和Mapreduce的计算资源同是yarn,发现资源不够用了话,在Spark

中的哪里进行配置,使之资源分配合理?


spark动态资源分配在yarn(hadoop)的配置


5.LVS的配置相关命令?


lvs+keepalived实现高可用群集配置详解


6.Hadoop的各角色的职能?


hadoop运行的幕后角色

Hadoop集群中节点角色定义

hadoop secondarynamenode的作用


7.Hadoop的checkpoint的作用?


Hadoop2.0 HA的checkpoint过程


8.HBase的双主如何配置?


最近LVS看多了,我傻不拉几的答了个LVS。其实目前的HBase双主是依靠于Hadoop的HA的,你可以通过./hbase-daemon.sh start master命令在RegionServer上启动一个master。。。


HBase HA高可用集群搭建及HBase Shell简单使用

HBase Master高可用(HA)


9.HBase即便拥有双主的高可靠配置,存在hdfs上的数据丢失怎么办?


经过查找资料发现,对于那些意外丢失的数据,业内确实有一种系统的方案:


HBase HLog结构和原理

HDFS和Hbase误删数据恢复


10.HBase模糊查询,是什么?如何做到?


HBase shell scan 模糊查询


11.Hadoop的 高可靠性,如何保证?


首先,当然是要搭建好一个基本的HA,Hadoop1存在namenode单点故障,Hadoop2中通过journalnode以及DFSfailovercontroller、NFS等一系列机制保证了集群的HA

Hadoop2.2.0中HDFS的高可用性实现原理

journalNode为什么都为奇数?


其次,肯定要对集群的一个瓶颈甚至预警信号实现一个预判,这样才能防患于未然:

Hadoop遭遇瓶颈的七大危险信号


最后,当悲惨的事实出现在了我们眼前,与其抱怨不如做一些实质性的补救措施:

HDFS和Hbase误删数据恢复


当然,功能上得到了技术的保障后,在性能上,我们是不是可以进一步的优化以服务于生产呢?

hadoop集群搭建配置文件优化参数

Hadoop集群性能优化一

Hadoop集群优化

中小规模Hadoop集群优化

Hadoop集群环境下的网络架构的设计与优化

Hadoop集群作业的几点优化处理




12.如何保证HBase的稳定性以及高可靠性?从部署、容灾、以及网络方面说说你的看法?

部署方面,肯定是HA部署无疑,容灾的话肯定要对数据意外丢失的情况建立一整套的快速且行之有效的方案,比如先fixhdfs,再fixtable,最后fixmetadata,实在不行,再执行repair,在已有可能性上做到最大的抢救,对于单个集群规模过大的情况,尝试分多个集群。网络方面:定期巡检,关键性指标实时监控。


HBase在线业务稳定性保障的一些思考

HDFS和Hbase误删数据恢复