1 如果要实现HA,至少要启动3台Journalnode!
2 journalnode进程采用paxos协议设计,适合运行在奇数台机器!
3 如果启动了Journalnode,那么没有必要,也不能再启动SecondaryNamenode
4 不能出现脑裂现象(不能同时出现两个active状态的namenode)
5 hadoop ha配置
(1) 三个文件添加JAVA_HOME
hadoop-env.sh
mapred-env.sh
yarn-env.sh
export JAVA_HOME=/home/andy/work/module/jdk
(2) core-site.xml:
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/andy/work/module/hadoop/data/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>xiaoai04:2181,xiaoai05:2181,xiaoai06:2181</value>
</property>
</configuration>
(3) hdfs-site.xml:
<configuration>
<!-- 完全分布式集群名称 -->
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<!-- 集群中NameNode节点都有哪些 -->
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>xiaoai04:9000</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>xiaoai06: