总目录:https://www.jianshu.com/p/e406a9bc93a9
Hadoop - 子目录:https://www.jianshu.com/p/9428e443b7fd
前言
本文基于已经完成完全分布式配置的集群进行。
1.环境变量配置
2.ssh免密
3.java环境配置
4.其他常规配置(网络,时间同步,防火墙等等)
看之前文章。
参数列表
hadoop01:192.168.110.220:NN1,DN,JNN, ,NM
hadoop02:192.168.110.221:NN2,DN,JNN, ,NM
hadoop03:192.168.110.222: DN,JNN, ,NM
hadoop04:192.168.110.223: DN,JNN,RM,NM
核心文件配置
注:手动HA不需要安装ZK
core-site.xml
<configuration>
<!--指定namenode逻辑名称-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<!--用来指定使用hadoop时产生文件的存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoopdata/tmp</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<!--定义逻辑名称-->
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<!--映射nameservices逻辑名称到namenode逻辑名称-->
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<!--指定NN1的物理地址-->
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>hadoop01:8020</value>
</property>
<!--指定NN2的物理地址-->
<property>
<name>dfs.namenode.rpc-address,mycluster.nn2</name>
<value>hadoop02:8020</value>
</property>
<!--指定NN1的网页地址-->
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>hadoop01:50070</value>
</property>
<!--指定NN2的网页地址-->
<property>
<name>dfs.namenode.http-address,mycluster.nn2</name>
<value>hadoop02:50070</value>
</property>
<!--NN如何和JNN通信-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop01:8485;hadoop02:8485;hadoop3:8485;hadoop04:8485/mycluster</value>
</property>
<!--配置故障切换实现类-->
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!--指定切换NN使用的方式-->
<property>
<name>dfs.ha.fncing.methods</name>
<value>sshfence</value>
</property>
<!--指定NN切换时使用的密钥-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<!--指定hdfs保存数据的副本数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--设置自动切换-->
<property>
<name>dfs.ha.automatic-failover.enabled.mycluster</name>
<value>false</value>
</property>
<!--定义HDFS的名称节点在本地文件系统的位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/hadoopdata/name</value>
</property>
<!--定义HDFS数据节点存储数据块时存储在本地文件系统的位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/hadoopdata/data</value>
</property>
</configuration>
第一次启动
在各节点启动JNN
hadoop-daemon.sh start journalnode
在hadoop01格式化
hdfs namenode -format
在hadoop01启动NN
hadoop-daemon.sh start namenode
在hadoop02上同步hadoop01
hdfs namenode -bootstrapStandby
在hadoop02上启动NN
hadoop-daemon.sh start namenode
之后就可以
start-all.sh