Hadoop性能调优
1 硬件选择
主要区分NAMENODE与DATANODE的功能需求,NN维护全局元数据信息,随着保存的INODES数量的增加,对内存需求增加,按每一百万INODES一G来粗略计算,JVM的XMX参数需要动态调整。
2 OS参数调优
操作系统,生产环境中都使用LINUX,以下就是指对LINUX系统的参数调优。
A.增加同时打开的文件描述符和网络连接上限
在系统运行中,随着接受作业数量的增加,文件的读写与网络连接操作可能会因为资源不够而失败。
@ochadoop soft nofile 102642
@ochadoop hard nofile 102642
@ochadoop soft nproc unlimited
@ochadoop hard nproc unlimited
网络连接数:net.core.somaxconn
B.关闭SWAP分区
调整/etc/sysctl.conf 中vm.swappiness 参数,因为对于运行hbase的机器,置换是不可忍受的。
cat /proc/sys/vm/swappniess查看这个参数的配置(默认值是60)
echo 0 >> /proc/sys/vm/swappniess 禁止操作系统使用任何的swap空间
echo 100 >> /proc/sys/vm/swappniess 操作系统会尽量使用swap空间
C.设置合理的预读取缓冲区大小
预读可以有效减少磁盘的寻道次数与应用程序IO的等待时间
怎么操作: 使用blockdev命令
查看:stat /boot/|grep "IO Block"
对HDFS数据挂载盘的文件系统进行分区时可以将大小设置为64KB,以更高效地支持HDFS大块存储的特性。
3:调整心跳设置
datanode与nn,nm与yarn交互的心跳时间,如果太小,高并发的心跳信息,给NN或RM造成压力,如果太大,空闲的资源不能及时分配,降低了系统的吞吐率。
集群小于300时,心跳间隔为300毫秒,每增加一百台,则增加一秒。
4:磁盘配置
MAP TASK中间结果写到本地磁盘上,对于IO密集型任务来说,会对磁盘造成很大压力,可以配置缓解压力,可以配置多磁盘来进行缓解。
调整dfs.data.dir 和 mapred.data.dir参数。
5:配置机架感知脚本
6:防火墙端口设置
HADOOP的系统守护进程会使用两类接口,一类是用于主从节点进程间的RPC通信,另一类用于HTTP访问,在安装HADOOP之前要确保所有的节点机器的相应的端口处于开放状态。以下是以hdp为例:
fs.defaultFS :默认是8020
dfs.datanode.address 默认:50010
dfs.datanode.ipc.address 默认:8010
dfs.datanode.http.addres 默认:50075
dfs.datanode.https.address 默认:50475
dfs.journalnode.http-address 8480
dfs.journalnode.https-address 8481
dfs.namenode.http-address 默认 50070
dfs.namenode.https-address 50470
dfs.namenode.rpc-address 8020
yarn.timeline-service.address 10200
yarn.resourcemanager.zk-address 2181
yarn.nodemanager.address 45454
yarn.resourcemanager.webapp.address 8088