目录
前文
Hadoop3.3.1 HA 高可用集群的搭建
QJM 的 NameNode HA
Hadoop HA模式搭建(高可用)
1、集群规划
2、Zookeeper集群搭建:
3、修改Hadoop集群配置文件
修改 vim core-site.xml
修改 hadoop-env.sh
修改 hdfs-site.xml
workers
Yarn高可用
修改 mapred-site.xml
修改 yarn-site.xml
启动zookeeper集群
在每台机器上启动:
格式化namenode、zkfc
启动hdfs
尝试HA模式
此时再次查看节点
一、CentOS7 hadoop3.3.1安装(单机分布式、伪分布式、分布式
二、JAVA API实现HDFS
三、MapReduce编程实例
四、Zookeeper3.7安装
五、Zookeeper的Shell操作
六、Java API操作zookeeper节点
(基于Zookeeper,NameNode高可用+Yarn高可用)
用Quorum Journal Manager或常规共享存储
QJM的NameNode HA
一共三台虚拟机,分别为master、worker1、worker2;
namenode三台上都有,resourcemanager在worker1,woker2上。
master
woker1
worker2
NameNode
yes
DataNode
no
JournalNode
NodeManager
ResourceManager
Zookeeper
ZKFC
因为没有重新创建虚拟机,是在原本的基础上修改。所以名称还是hadoop1,hadoop2,hadoop3 <code>hadoop1 = master</code> <code>hadoop2 = worker1</code> <code>hadoop3 = worker2</code>
参考:四、Zookeeper3.7安装
core-site.xml:
上面指定 zookeeper 地址中的Hadoop1,hadoop2,hadoop3换成你自己机器的主机名(要先配置好主机名与 IP 的映射)或者 ip
hadoop-env.sh
在使用集群管理脚本的时候,由于使用ssh进行远程登录时不会读取/etc/profile文件中的环境变量配置,所以使用ssh的时候java命令不会生效,因此需要在配置文件中显式配置jdk的绝对路径(如果各个节点的jdk路径不一样的话那hadoop-env.sh中应改成本机的JAVA_HOME)。 hadoop 3.x中对角色权限进行了严格限制,相比于hadoop 2.x要额外对角色的所属用户进行规定。 此处仅为搭建HDFS集群,如果涉及到YARN等内容的话应一并修改对应yarn-env.sh等文件中的配置 在脚本末尾添加以下内容:
hdfs-site.xml
要创建journaldata文件夹
在hadoop 2.x中这个文件叫slaves,配置所有datanode的主机地址,只需要把所有的datanode主机名填进去就好了
都修改好了,就分发给其他集群节点
(在hadoop/etc路径下)
scp /export/servers/hadoop-3.3.1/etc/hadoop/* hadoop2:/export/servers/hadoop-3.3.1/etc/hadoop/
scp /export/servers/hadoop-3.3.1/etc/hadoop/* hadoop3:/export/servers/hadoop-3.3.1/etc/hadoop/

首先,在所有虚拟机上启动journalnode:
都启动完毕之后,在master(hadoop1)节点上,格式化namenode
因为之前搭建过完全分布式,所以格式化一次namenode 但是,集群中的datanode,namenode与/current/VERSION/中的<code>CuluserID</code>有关 所以再次格式化,并启动,其他两个节点同步格式化好的namenode并不冲突 formatZK同理
然后单独启动namenode:
然后,在另外两台机器上,同步格式化好的namenode:
应该能从master上看到传输信息。
传输完成后,在master节点上,格式化zkfc:
在master节点上,先启动dfs:
然后启动yarn:
启动mapreduce任务历史服务器:
可以看到各个节点的进程启动情况:
如果datanode未启动
是版本号不一致产生的问题,那么我们就单独解决版本号的问题,将你格式化之后的NameNode的VERSION文件找到,然后将里面的clusterID进行复制,再找到DataNode的VERSION文件,将里面的clusterID进行替换,保存之后重启
首先看看各个namenode主机状态:
可以看到,有两个standby,一个active。
在active的master节点上,kill掉namenode进程:
可以看到,nn1已经切换为active,Hadoop 高可用集群基本搭建完成。
本文来自博客园,作者:李好秀,转载请注明原文链接:https://www.cnblogs.com/lehoso/p/15591387.html