Datanode 遇到 JVM 暂停问题
Datanode having trouble with JVM pausing
我在 CDH 5.1.2 上,我看到这个错误,其中一个数据节点经常暂停。我从日志中看到了这个。
WARN org.apache.hadoop.util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 12428ms
GC pool 'ConcurrentMarkSweep' had collection(s): count=1 time=12707ms
知道我为什么会看到这个吗? hdfs 容量有时会下降一个节点。
GC pool 'ConcurrentMarkSweep' had collection(s): count=1 time=12707ms
您的 CMS 收集器出现长时间的 GC 暂停。
要进一步调查,您应该通过 -Xloggc:<path to gc log file> -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
打开 GC 日志记录,如果您使用 java 7,还要添加 -XX:+PrintGCCause
.
GCViewer 可以帮助可视化日志。
找到原因后,您可以尝试调整 CMS 以避免这些暂停。对于初学者来说,有 official CMS tuning guide.
我们刚刚遇到了一个非常相似的问题 运行 CDH 5.3.2,我们无法在我们的 Hadoop 集群上成功启动 HDFS NameNode 服务。
当时非常令人费解,因为我们没有在 /var/log/messages 和 /var/log/hadoop-hdfs/NAMENODE.log.out 中观察到任何明显的错误,除了 WARN org.apache.hadoop.util.JvmPauseMonitor:在 JVM 或主机(例如 GC)中检测到暂停
在与 Cloudera Support 合作后,我们能够确定我们 运行 进入了一个未被记录的 OOM 异常......作为一般经验法则,请查看您的配置堆大小...对于每 100 万个块,您应该至少有 1GB 的堆大小。
在我们的例子中,解决方法很简单,就是增加 Java NameNode 和辅助 NameNode 服务的堆大小并重新启动...因为我们有 150 万个块,但只使用默认的 1GB 设置对于堆大小。在增加 Java 堆大小并重新启动 HDFS 服务后,我们全面变绿了。
干杯!
我在 CDH 5.1.2 上,我看到这个错误,其中一个数据节点经常暂停。我从日志中看到了这个。
WARN org.apache.hadoop.util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 12428ms
GC pool 'ConcurrentMarkSweep' had collection(s): count=1 time=12707ms
知道我为什么会看到这个吗? hdfs 容量有时会下降一个节点。
GC pool 'ConcurrentMarkSweep' had collection(s): count=1 time=12707ms
您的 CMS 收集器出现长时间的 GC 暂停。
要进一步调查,您应该通过 -Xloggc:<path to gc log file> -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
打开 GC 日志记录,如果您使用 java 7,还要添加 -XX:+PrintGCCause
.
GCViewer 可以帮助可视化日志。
找到原因后,您可以尝试调整 CMS 以避免这些暂停。对于初学者来说,有 official CMS tuning guide.
我们刚刚遇到了一个非常相似的问题 运行 CDH 5.3.2,我们无法在我们的 Hadoop 集群上成功启动 HDFS NameNode 服务。
当时非常令人费解,因为我们没有在 /var/log/messages 和 /var/log/hadoop-hdfs/NAMENODE.log.out 中观察到任何明显的错误,除了 WARN org.apache.hadoop.util.JvmPauseMonitor:在 JVM 或主机(例如 GC)中检测到暂停
在与 Cloudera Support 合作后,我们能够确定我们 运行 进入了一个未被记录的 OOM 异常......作为一般经验法则,请查看您的配置堆大小...对于每 100 万个块,您应该至少有 1GB 的堆大小。
在我们的例子中,解决方法很简单,就是增加 Java NameNode 和辅助 NameNode 服务的堆大小并重新启动...因为我们有 150 万个块,但只使用默认的 1GB 设置对于堆大小。在增加 Java 堆大小并重新启动 HDFS 服务后,我们全面变绿了。
干杯!