目录
一、集群规划
说明:
集群共5个节点,主机名分别是node01、node02、node03、node04、node05
初始启动集群
node01上运行active namenode即主namenode;node02上运行standby namenode即从namenode
node04上运行主resourcemanager;node05上运行从resourcemanager
-
每个节点运行的进程如下表
机器名 | 运行进程 |
---|---|
node01 | NameNode/zkfc/Zookeeper/Journalnode/DataNode/NodeManager |
node02 | NameNode/zkfc/Zookeeper/Journalnode/DataNode/NodeManager |
node03 | Zookeeper/Journalnode/DataNode/NodeManager/JobHistoryServer |
node04 | ResourceManager |
node05 | ResourceManager |
二、五节点Hadoop HA搭建
1. 虚拟机环境准备
-
准备5台虚拟机
-
在做五节点hadoop HA集群搭建之前,要求先完成每台虚拟机的基本环境准备
-
每个节点都要做好“在node01上开始解压hadoop的tar.gz包之前的环境配置”
-
主要包括如下步骤:
-
windows|mac安装VMWare虚拟化软件
-
VMWare下安装CenoOS7
-
虚拟机关闭防火墙
-
禁用selinux
-
配置虚拟网卡
-
配置虚拟机网络
-
安装JDK
-
配置时间同步
-
修改主机名
-
修改ip地址
-
修改/etc/hosts
-
各节点免密钥登陆
-
重启虚拟机
-
-
2. 安装ZooKeeper集群
Hadoop高可用集群需要使用ZooKeeper集群做分布式协调;所以先安装ZooKeeper集群
-
在node01、node02、node03上安装ZooKeeper集群(Zookeeper(1)集群的安装部署)
3. 五节点Hadoop HA搭建
注意:
①3.1到3.8在node01上操作
②此文档使用普通用户操作,如hadoop
③hadoop安装到用户主目录下,如/xsluo/install
请根据自己的实际情况修改
3.1 解压hadoop压缩包
-
hadoop压缩包hadoop-2.6.0-cdh5.14.2.tar.gz上传到node01的/xsluo/soft路径中
-
解压hadoop压缩包到/xsluo/install
#解压hadoop压缩包到/xsluo/install
[hadoop@node01 ~]$ cd
[hadoop@node01 ~]$ cd /xsluo/soft/
[hadoop@node01 soft]$ tar -xzvf hadoop-2.6.0-cdh5.14.2.tar.gz -C /xsluo/install/
3.2 修改hadoop-env.sh
-
进入hadoop配置文件路径$HADOOP_HOME/etc/hadoop
[hadoop@node01 soft]$ cd /xsluo/install/hadoop-2.6.0-cdh5.14.2/
[hadoop@node01 hadoop-2.6.0-cdh5.14.2]$ cd etc/hadoop/
- 修改hadoop-env.sh,修改JAVA_HOME值为jdk解压路径;保存退出
export JAVA_HOME=/xsluo/install/jdk1.8.0_141
注意:JAVA_HOME值修改为自己jdk的实际目录
3.3 修改core-site.xml
注意:
情况一:值/xsluo/install/hadoop-2.6.0-cdh5.14.2/tmp根据实际情况修改
情况二:值node01:2181,node02:2181,node03:2181根据实际情况修改,修改成安装了zookeeper的虚拟机的主机名
<configuration>
<!-- 指定hdfs的nameservice id为ns1 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>
</property>
<!-- 指定hadoop临时文件存储的基目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/xsluo/install/hadoop-2.6.0-cdh5.14.2/tmp</value>
</property>
<!-- 指定zookeeper地址,ZKFailoverController使用 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>node01:2181,node02:2181,node03:2181</value>
</property>
</configuration>
3.4 修改hdfs-site.xml
注意:
情况一:属性值qjournal://node01:8485;node02:8485;node03:8485/ns1中的主机名,修改成实际安装zookeeper的虚拟机的主机名
情况二:属性值/xsluo/install/hadoop-2.6.0-cdh5.14.2/journal中”/xsluo/install/hadoop-2.6.0-cdh5.14.2”替换成实际hadoop文件夹的路径
情况三:属性值/home/hadoop/.ssh/id_rsa中/home/hadoop根据实际情况替换
<configuration>
<!--指定hdfs的nameservice列表,多个之前逗号分隔;此处只有一个ns1,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!-- nn1