文章目录
1.架构
前边已经搭建过单节点的hadoop,一旦出现NameNode机器出现了宕机,整个服务就不可用。一个很经典的模式HA集群,两个或则两个以上的集群机器配置NameNode,任意一个时刻,只有一个NameNode处于Active State,其他的处于Standby state状态,激活状态的NameNode负责所有客户端在集群的操作。
2.集群准备工作
需要安置单节点基础准备进行配置基础环境。
1)jdk配置
本地规划的4个节点,需要每台都安装Jdk1.8配置环境变量
2)ssh免密
Now check that you can ssh to the localhost without a passphrase:
$ ssh localhost
If you cannot ssh to localhost without a passphrase, execute the following commands:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
可以将第一节点的公钥拷贝到其他节点。
3)其他的网络配置不在赘述。
3. 集群配置
1 基本配置
在单节点的基础上node01:
cd $HADOOP/etc/hadoop
vi core-site.xml 不需要改
vi hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/var/bigdata/hadoop/full/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/var/bigdata/hadoop/full/dfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node02:50090</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/var/bigdata/hadoop/full/dfs/secondary</value>
</property>
2 修改从节点
vi slaves
node02
node03
node04
3 将整个节点分发到node2,node3,node4
cd /opt
scp -r ./bigdata/ node02:`pwd`
scp -r ./bigdata/ node03:`pwd`
scp -r ./bigdata/ node04:`pwd`
4 部署zookeeper
tar xf zook....tar.gz
mv zoo... /opt/bigdata
cd /opt/bigdata/zoo....
cd conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
datadir=/var/bigdata/hadoop/zk
server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888
mkdir /var/bigdata/hadoop/zk
echo 1 > /var/bigdata/hadoop/zk/myid
其他节点也同样的操作。
5.操作流程
重点:初始化启动
1) 启动JN
hadoop-daemon.sh start journalnode
2) 格式化NN,格式化一个集群中的节点即可
hdfs namenode -format
3) 另外的NN节点同步
hdfs namenode -bootstrapStandby
4.格式化zookeeper
hdfs zkfc -formatZK
5.启动dfs
start-dfs.sh
6.访问页面观察信息
只有一个节点是active状态,另外一个节点是standby状态
zookeeper节点锁信息
7 模拟active节点杀掉进程
当node01进程结束之后,node02变成active
zookeeper节点信息