今天发现测试环境Hadoop集群开始频繁宕掉,查看namenode日志发现有如下报错信息:

1
java.io.IOException: Timed out waiting 20000ms for a quorum of nodes to respond.

原因是因为namenode与journalnode通信时,超过20000ms,触发了默认设置的超时时长,解决办法:
hdfs-site.xml中加入如下配置

1
2
3
4
5
6
7
8
9
10
11
12
<property>
<name>dfs.qjournal.start-segment.timeout.ms</name>
<value>90000</value>
</property>
<property>
<name>dfs.qjournal.select-input-streams.timeout.ms</name>
<value>90000</value>
</property>
<property>
<name>dfs.qjournal.write-txns.timeout.ms</name>
<value>90000</value>
</property>

core-site.xml中加入如下配置:

1
2
3
4
<property>
<name>ipc.client.connect.timeout</name>
<value>90000</value>
</property>