面试题之hadoop
1.hadoop常用端口号
hadoop2.x | hadoop3.x | |
访问HDFS端口 | 50070 | 9870 |
访问MR执行情况端口 | 8088 | 8088 |
历史服务器 | 19888 | 19888 |
客户端访问集群端口 | 9000 | 8020 |
2.hadoop配置文件以及简单的hadoop集群搭建
(1)配置文件:
hadoop2.x core-site.xml,hdfs-site.xml,yarn-site.xml,slaves
hadoop3.x core-site.xml,hdfs-site.xml,yarn-site.xml,workers
(2)简单的集群搭建过程:
JDK安装
配置SSH免密 登陆
配置hadoop核心文件
格式化namenode
3.HDFS读流程和写流程
4.HDFS小文件的处理
(1)会有什么影响
1个文件块,占用naemnode多大内存150字节。
1亿个小文件*150字节
1个文件块*150字节
128G能存储多少文件块?128*1024*1024*1024byte/150字节=9亿文件块
(2)怎么解决
- 采用har归档方式,将小文件归档。
- 采用CombineTextInputFormat
- 有小文件场景开启JVM重用;如果没有小文件,不要开启JVM重用,因为会一直占用使用到的task卡槽,直到任务完成才释放。
JVM重用可以使得JVM实例在用一个job中重新使用N次,N的值可以在Hadoop的mapred-site.xml文件中进行配置。通常在10-20之间。
<property>
<name>mapreduce.job.jvm.numtasks</name>
<value>10</value>
<description>How many tasks to run per jvm,if set to -1 ,there is no limit</description>
</property>
5.Shuffle及优化
- shuffle过程
MapReduce详细工作流程(二)