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

原文地址:https://www.cnblogs.com/huaxiaoyao/p/6270804.html