Hadoop优化与调整

【io.file.buffer.size】(core-site.xml)

用来设置缓存的大小,较大的缓存提供更高效的数据传输,但也意味着更大的内存消耗和延迟

默认值为4KB,一般情况下设置为64KB(65536)

【dfs.balance.bandwidthPerSec】

HDFS平衡器检测集群中使用过度或者使用不足的DataNode,并在这些DataNode之间转移数据块来保证负载均衡。该参数定义了每个DataNode平衡操作所允许的最大使用带宽,单位是byte,网络带宽单位一般是bit

【dfs.block.size】

默认值为67108864,即64MB;参考值为134217728(128M)

【dfs.DataNode.du.reserved】

由于mapred.local.dir经常与DataNode共享可用的硬盘资源,因此我们需要为MapReduce任务保留一些硬盘资源。建议每个硬盘都为map任务保留最小10GB的资源,即10737418240.

【dfs.NameNode.handler.count】

NameNode有一个工作线程池用来处理客户端的远程过程调用及集群守护进程的调用。默认值为10,一般讲该值设置为集群大小的自然对数乘以20,即20logN。

该值设置过小明显的症状就是DataNode在连接NameNode的时候总是超时或者连接被拒

【dfs.DataNode.failed.volumes.tolerated】

当DataNode的任意一个本地磁盘故障时,默认认定整个DataNode失效。该参数默认值为0,意味着只要有一个磁盘出现故障就会导致整个DataNode 不可用。参考值为1

【dfs.hosts】

通过含有DataNode主机名列表的文件来确认允许连接并加入集群的DataNode

【dfs.host.exclude】

把相关节点排除在HDFS外,可卸载DataNode

【fs.trash.interval】(core-site.xml)

定义.Trash目录下文件被永久删除前保留的时间(分钟数),默认为0,即垃圾回收站功能关闭,参考值为1440(24小时)