如何调整 hadoop 集群中的 "DataNode maximum Java heap size"
how to tune the "DataNode maximum Java heap size" in hadoop clusters
我在 google 中搜索以查找有关如何调整值的信息 - DataNode 最大 Java 堆大小 ,除了这个 -
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 最大 Java 堆大小 的默认值为 1G
我们将这个值增加到 5G ,因为在某些情况下我们从数据节点日志中看到关于堆大小的错误
但这不是调整值的正确方法
关于如何设置正确值的任何建议或好文章 - datanode 记录有关堆大小的错误?
假设我们有以下 hadoop 集群大小:
10台datanode机器,5块磁盘,每块磁盘1T
每个数据节点有32个CPU
每个数据节点有256G内存
根据此信息,我们能否找到显示正确值的公式 - “datanode 记录有关堆大小的错误”?
关于 hortonworks:
他们建议将 Datanode java 堆设置为 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
在hadoop-env.sh
中(也是Ambari中的一些字段,只需尝试搜索堆),有一个设置值的选项。可能在 shell 文件
中被称为 HADOOP_DATANODE_OPTS
8GB 对于大多数服务器来说通常是一个不错的值。不过,你有足够的内存,所以我会从那里开始,并通过 Grafana 中的 JMX 指标主动监控使用情况,例如。
名称节点可能也需要调整https://community.hortonworks.com/articles/43838/scaling-the-hdfs-namenode-part-1.html
建议每百万数据块保持 1GB。
我在 google 中搜索以查找有关如何调整值的信息 - DataNode 最大 Java 堆大小 ,除了这个 -
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 最大 Java 堆大小 的默认值为 1G
我们将这个值增加到 5G ,因为在某些情况下我们从数据节点日志中看到关于堆大小的错误
但这不是调整值的正确方法
关于如何设置正确值的任何建议或好文章 - datanode 记录有关堆大小的错误?
假设我们有以下 hadoop 集群大小:
10台datanode机器,5块磁盘,每块磁盘1T
每个数据节点有32个CPU
每个数据节点有256G内存
根据此信息,我们能否找到显示正确值的公式 - “datanode 记录有关堆大小的错误”?
关于 hortonworks: 他们建议将 Datanode java 堆设置为 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
在hadoop-env.sh
中(也是Ambari中的一些字段,只需尝试搜索堆),有一个设置值的选项。可能在 shell 文件
HADOOP_DATANODE_OPTS
8GB 对于大多数服务器来说通常是一个不错的值。不过,你有足够的内存,所以我会从那里开始,并通过 Grafana 中的 JMX 指标主动监控使用情况,例如。
名称节点可能也需要调整https://community.hortonworks.com/articles/43838/scaling-the-hdfs-namenode-part-1.html
建议每百万数据块保持 1GB。