Hadoop之-生产参数调优
NameNode是HDFS的集群管理的主节点,用于处理用户请求与DataNode心跳,该节点维护一个线程池来处理这些请求,这个县城池的参数可以通过参数进行控制。
- vim hdfs-site.xml
<!--该参数的默认值为10,也就是会初始化10个线程来处理请求-->
<!--官方的推荐是20*log(cluster nums),该值以对数的方式趋势进行增加-->
<!--The number of Namenode RPC server threads that listen to requests from clients. If dfs.namenode.servicerpc-address is not configured then Namenode RPC server threads listen to requests from all nodes.-->
<property>
<name>dfs.namenode.handler.count</name>
<value>41</value> <!--41并不是实际数值,根据集群规模而定-->
</property>
<!--可以通过python算出该值,假如集群节点数为8-->
> python
> import math
> print int(20*math.log(8))
> quit()
- vim yarn-site.xml
<!--通过Yarn资源分配的指定来达到资源的充分利用-->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>8092</value><!--默认是8个G,代表每个NodeManager节点能给yarn调度启动容器的内存资源,资源足够可上80G,这个是物理内存,不是JVM内存,这个内存是可以分配给Containers去占用,通常是RM进行管理-->
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>8092</value><!--默认是8个G,代表每个Container能向RM申请的最大内存-->
</property>
在配置完之后就可以好好测试集群性能了。