重点核心文件:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
【指定DataNode存储block的副本数量。默认值是3个,我们现在有4个DataNode,该值不大于4即可。】
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
【设置权限之后可以控制各用户之间的权限】
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>cluster1</value>
</property>
【给hdfs集群起名字,这个名字必须和core-site中的统一,且下面也会用到该名字】
<property>
<name>dfs.ha.namenodes.cluster1</name>
<value>hadoop1,hadoop2</value>
</property>
【指定NameService是cluster1时的namenode有哪些,这里的值也是逻辑名称,名字随便起,相互不重复即可】
<property>
<name>dfs.namenode.rpc-address.cluster1.hadoop1</name>
<value>hadoop1:9000</value>
</property>
【指定hadoop101的RPC地址】
<property>
<name>dfs.namenode.http-address.cluster1.hadoop1</name>
<value>hadoop1:50070</value>
</property>
【指定hadoop101的http地址】
<property>
<name>dfs.namenode.rpc-address.cluster1.hadoop2</name>
<value>hadoop2:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.hadoop2</name>
<value>hadoop2:50070</value>
</property>
<property>
<name>dfs.namenode.servicerpc-address.cluster1.hadoop1</name>
<value>hadoop1:53310</value>
</property>
<property>
<name>dfs.namenode.servicerpc-address.cluster1.hadoop2</name>
<value>hadoop2:53310</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled.cluster1</name>
<value>true</value>
</property>
【指定cluster1是否启动自动故障恢复,即当NameNode出故障时,是否自动切换到另一台NameNode】
<!--指定JournalNode -->
<property>
<name>dfs.namenode.shared.edits.dir</name> <value>qjournal://hadoop1:8485;hadoop2:8485;hadoop3:8485;hadoop4:8485;hadoop5:8485/cluster1</value>
</property>
【指定cluster1的两个NameNode共享edits文件目录时,使用的JournalNode集群信息】
<property>
<name>dfs.client.failover.proxy.provider.cluster1</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
【指定cluster1出故障时,哪个实现类负责执行故障切换】
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/tom/yarn/yarn_data/tmp/journal</value>
</property>
【指定JournalNode集群在对NameNode的目录进行共享时,自己存储数据的磁盘路径。tmp路径是自己创建,journal是启动journalnode自动生成】
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
【一旦需要NameNode切换,使用ssh方式进行操作】
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/tom/.ssh/id_rsa</value>
</property>
【这里是使用ssh进行故障切换,所以需要配置无密码登录,使用ssh通信时用的密钥存储的位置】
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>10000</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property>
</configuration>
2.4文件mapred-site.xml