Hadoop性能调优-配置文件和作业调度算法
附小测试:对同一个程序
reduce num=32,reduce time = 6 min
reduce num=128, reduce time = 2 min
reduce num=320, reduce time = 5min
1. 通常每个服务器的Map + Reduce总数跟cpu核数大致一致,经验表现为略大于 cpu核数的设置可以发挥最大性能,比如8核配5个map, 5个reduce
2. Map数跟Reduce配置个数通常配置相同
3. Hadoop允许集群里的不同节点配置Map跟Reduce数不同,避免服务器开销不均 匀
4. HDFS block大小默认64M推荐128M
5. HDFS在并发写同一文件情况执行状况未知,可能存在写冲突问题
6. HDFS文件不允许修改,文件一旦建立(写入流关闭)后不能修改
7. 移动计算的代价比移动数据的代价低,通常Map在数据存放的节点服务器上运 行,当在其他服务器上运行是上运行时,该节点数据会拷贝到执行服务器上再进行运算
8. 在job的运行时,每个参与任务的Map处理的datanode节点对象是固定不变 的,Map处理dataNode的粒度可以到文件的行级,比如一个Map可以处理某个dataNode的 前10000行
9. 每个Reduce接受所有Map的结果并且只执行跟自己相关的key的Reduce
10. HDFS上跑的应用,主要是以流式读为主的应用,进行批量处理,比如log分析、 索引构建、数据关联等
11. Hadoop支持根据应用分配额定最大map及reduce个数功能
12. HDFS采用master/slave架构(nameNode,dateNode), NameNode是个单点中心服务 器, 管理文件系统及客户端的访问
13. HDFS默认文件副本3个,不同应用可以通过客户端API决定每个文件的副本数为任 意值