如何在hadoop集群中调整“datanode maximum java heap size”

vsdwdz23  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(782)

我在google中搜索了关于如何调整-datanode maximum java heap size的值的信息,除了这个-
https://community.hortonworks.com/articles/74076/datanode-high-heap-size-alert.html
https://docs.oracle.com/cd/e19900-01/819-4742/abeik/index.html
但找不到计算datanode最大java堆大小值的公式
datanode maximum java heap size的默认值是1g
我们将这个值增加到5g,因为在某些情况下,我们从datanode日志中看到了关于堆大小的错误
但这不是调整价值的正确方法
那么,有没有关于如何为-datanode-logs-error设置正确的堆大小值的建议或好文章呢?
假设hadoop集群大小如下:
10台数据节点机,5个磁盘,每个磁盘1t
每个数据节点有32个cpu
每个数据节点有256g内存
根据这些信息,我们可以找到显示正确值的公式-“datanode logs error about heap size”?
关于hortonworks:他们建议将datanode java heap设置为4g,但我不确定这种情况是否可以覆盖所有场景?
根本原因:dn操作的io开销很大,不需要16gb的堆。
https://community.hortonworks.com/articles/74076/datanode-high-heap-size-alert.html

RESOLUTION: Tuning GC parameters resolved the issue -
4GB Heap recommendation : 
-Xms4096m -Xmx4096m -XX:NewSize=800m 
-XX:MaxNewSize=800m -XX:+UseParNewGC 
-XX:+UseConcMarkSweepGC 
-XX:+UseCMSInitiatingOccupancyOnly 
-XX:CMSInitiatingOccupancyFraction=70 
-XX:ParallelGCThreads=8
zsohkypk

zsohkypk1#

hadoop-env.sh (同样是ambari中的某个字段,只需尝试搜索heap),有一个设置值的选项。可能被称为 HADOOP_DATANODE_OPTS 在shell文件中
8gb对于大多数服务器来说通常是一个很好的值。不过,您有足够的内存,因此我将从这里开始,并通过grafana中的jmx度量来主动监视使用情况。
namenode可能也需要调整https://community.hortonworks.com/articles/43838/scaling-the-hdfs-namenode-part-1.html

相关问题