问题:namenode挂掉了,HA中standby的节点没有接过来
1. namenode挂掉的原因:
是与jornalnode通讯超时,20000ms不够,修改文件,添加如下参数来修改默认配置:
<property>
<name>dfs.qjournal.write-txns.timeout.ms</name>
<value>60000</value>
</property>
2. namenode挂掉后,HA standby未接过来,检查如下两个参数
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
首先参数dfs.ha.fencing.ssh.private-key-files要配置正确,否则无法自动登录到另一台机器上处理,而且文件一定要符合实际。
再者参数dfs.ha.fencing.methods的配置,出现故障时通过哪种方式登录到另一个namenode上进行接管工作,如果采用默认的值sshfence的话,设置集群就无法自动切换。所以需要修改为如上配置的值。
3. ERROR: Can't get master address from ZooKeeper; znode data == null
一直认为是zookeeper或者hbase的问题,最终确认为与hadoop通讯的问题,通过查看hbase的日志确定这个原因。
jps命令发现没有namenode进程,重启namenode ,hbase回复正常。
4. Hadoop配置HDFS HA后,
hive配置如下:
<property>
<name>fs.defaultFS</name>
<value>hdfs://ctdn</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
或者
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://brain/hive/warehouse</value>
<description>location of default database for thewarehouse</description>
</property>
不应配置为
<property>
<name>fs.defaultFS</name>
<value>hdfs://brain01:8020</value>
</property>
修改如上配置后,先前的数据表将发现不能找到其元数据,这时候需要执行如下命令:
/usr/lib/hive/bin/metatool -updateLocation hdfs://brain hdfs://brain01:8020
检查数据namenode路径:
/usr/lib/hive/bin/metatool -listFSRoot
hbase配置如下:
<property>
<name>hbase.rootdir</name>
<value>hdfs://ctdn/hbase</value>
</property>
不应该设置为hdfs://brain01:8020/hbase