大数据面试之Hadoop通用常见题目

105 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第34天,点击查看活动详情

大数据面试之Hadoop通用常见题目

1 Hadoop常用端口号

hadoop2.xHadoop3.x
访问HDFS页面端口500709870
访问MR执行情况端口(YARN任务调度访问端口)80888088
历史服务器1988819888
客户端访问集群通讯端口9000/80209000/8020/9820

2 Hadoop配置文件以及简单的Hadoop集群搭建

1、配置文件:

Hadoop2.x :

core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves

Hadoop3.x :

core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、workers

2、简单的集群搭建过程:

JDK安装

配置SSH免密登录

配置Hadoop核心文件

格式化NameNode

3 Hadoop解决数据倾斜方法

1、提前在Map端进行combine操作,减少传输的数据量

在Mapper加上combiner相当于提前进行reduce,也就是把一个Mapper中的相同key进行了聚合,减少Shuffle过程中传输的数据量,以及Reducer端的计算量。

但是这种方式有局限性,如果导致数据倾斜的key大量分布在不同的Mapper的时候,这种方法就不是很有效了。

2、导致数据倾斜的key大量分布在不同的Mapper的场景

(1)局部聚合加全局聚合

第一次在Mapper阶段对那些导致了数据倾斜的key 加上1到n的随机前缀,这样本来相同的key 会被分到多个不同的Reducer中进行局部聚合,数量就会大幅降低。

第二次MapReduce,去掉key的随机前缀,进行全局聚合。

总结一下思想:二次MR操作。第一次将key随机散列到不同Reducer进行处理,从而达到负载均衡的目的;第二次再去掉key的随机前缀,按原key进行Reducer处理。

这个方法进行两次MapReduce,性能稍微差些。

(2)增加Reducer,提高并行度

JobConf.setNumReduceTasks(int x)

设置并行度

(3)自定义分区

根据数据分布情况,自定义散列函数,将key均匀分布到不同的Reducer。



声明:
        文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。

        落叶飘雪