Hadoop HA高可用集群搭建手册

打印 上一主题 下一主题

主题 790|帖子 790|积分 2370

没想到时隔一年多,hadoop安装的文章突然这么多人看到,既然有人看,那我近期就把其他的实行手册一块整理一下,传上来。
不过课程已经是三年前的了,大概略有点老,手册仅供参考。

第一期的Hadoop大数据集群搭建(超详细):
Hadoop大数据集群搭建(超详细)_hadoop集群搭建-CSDN博客

第二期的ZooKeeper的下载及安装(接第一期的hadoop集群搭建)
ZooKeeper安装实行手册-CSDN博客

今天紧张先容HA高可用集群的搭建,在第二期ZooKeeper的基础上继续操作。
       1. 修改core-site.xml

   
cd /export/servers/hadoop-3.1.3/etc/hadoop

   
vim core-site.xml

   
修改defaultFS并新增zookeeper

   
<property>

   
<name>ha.zookeeper.quorum</name>

   
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>

   
</property>

   

   2. 修改hdfs-site.xml

   
cd /export/servers/hadoop-3.1.3/etc/hadoop

   
vim hdfs-site.xml

   

   
新增以下内容(上图没截全):

   
<!--设置namenode.name目录-->

   
<property>

   
<name>dfs.namenode.name.dir</name>

   
<value>file:/export/data/hadoop/name</value>

   
</property>

   
<!--设置datanode.data目录-->

   
<property>

   
<name>dfs.datanode.data.dir</name>

   
<value>file:/export/data/hadoop/data</value>

   
</property>

   
<!--开启WebHDFS-->

   
<property>

   
<name>dfs.webhdfs.enabled</name>

   
<value>true</value>

   
</property>

   
<!--指定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的RPC通信地址-->

   
<property>

   
<name>dfs.namenode.rpc-address.ns1.nn1</name>

   
<value>hadoop01:9000</value>

   
</property>

   
<!--nn1的http通信地址-->

   
<property>

   
<name>dfs.namenode.http-address.ns1.nn1</name>

   
<value>hadoop01:9870</value>

   
</property>

   
<!--nn2的RPC通信地址-->

   
<property>

   
<name>dfs.namenode.rpc-address.ns1.nn2</name>

   
<value>hadoop02:9000</value>

   
</property>

   
<!--nn2的http通信地址-->

   
<property>

   
<name>dfs.namenode.http-address.ns1.nn2</name>

   
<value>hadoop02:9870</value>

   
</property>

   
<!--指定NameNode的元数据在JournalNode上的存放位置-->

   
<property>

   
<name>dfs.namenode.shared.edits.dir</name>

   
<value>

   
qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns1

   
</value>

   
</property>

   
<!--指定JournalNode在本地磁盘存放数据的位置-->

   
<property>

   
<name>dfs.journalnode.edits.dir</name>

   
<value>/export/data/hadoop/journaldata</value>

   
</property>

   
<!--开启NameNode失败自动切换-->

   
<property>

   
<name>dfs.ha.automatic-failover.enabled</name>

   
<value>true</value>

   
</property>

   
<!--设置失败自动切换实现情势-->

   
<property>

   
<name>dfs.client.failover.proxy.provider.ns1</name>

   
<value>

   
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

   
</value>

   
</property>

   
<!--设置隔离机制方法,多个机制用换行分割,既每个机制暂用一行-->

   
<property>

   
<name>dfs.ha.fencing.methods</name>

   
<value>

   
sshfence

   
shell(/bin/true)

   
</value>

   
</property>

   
<!--使用sshfence隔离机制时需要ssh免登录-->

   
<property>

   
<name>dfs.ha.fencing.ssh.private-key-files</name>

   
<value>/root/.ssh/id_rsa</value>

   
</property>

   
<!--设置sshfence隔离机制超时时间-->

   
<property>

   
<name>dfs.ha.fencing.ssh.connect-timeout</name>

   
<value>30000</value>

   
</property>

   

   3. 修改mapred-site.xml

   
cd /export/servers/hadoop-3.1.3/etc/hadoop

   
vim mapred-site.xml

   
无改动

   4. 修改yarn-site.xml

   
cd /export/servers/hadoop-3.1.3/etc/hadoop

   
vim yarn-site.xml

   
新增以下内容

   
<property>

   
<name>yarn.nodemanager.resource.memory-mb</name>

   
<value>2048</value>

   
</property>

   
<property>

   
<name>yarn.scheduler.maximum-allocation-mb</name>

   
<value>2048</value>

   
</property>

   
<property>

   
<name>yarn.nodemanager.resource.cpu-vcores</name>

   
<value>1</value>

   
</property>

   
<!--开启ResourceManager高可用-->

   
<property>

   
<name>yarn.resourcemanager.ha.enabled</name>

   
<value>true</value>

   
</property>

   
<!--指定ResourceManager的cluster id-->

   
<property>

   
<name>yarn.resourcemanager.cluster-id</name>

   
<value>yrc</value>

   
</property>

   
<!--指定ResourceManager的名字-->

   
<property>

   
<name>yarn.resourcemanager.ha.rm-ids</name>

   
<value>rm1,rm2</value>

   
</property>

   
<!--分别指定ResourceManager的地址-->

   
<property>

   
<name>yarn.resourcemanager.hostname.rm1</name>

   
<value>hadoop01</value>

   
</property>

   
<property>

   
<name>yarn.resourcemanager.hostname.rm2</name>

   
<value>hadoop02</value>

   
</property>

   
<!--指定zookeeper集群地址-->

   
<property>

   
<name>yarn.resourcemanager.zk-address</name>

   
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>

   
</property>

   

   5. 将设置文件xml发给hadoop02和03

   
在hadoop01上实行以下命令:

   
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/yarn-site.xml hadoop03:/export/servers/hadoop-3.1.3/etc/hadoop

   
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/hdfs-site.xml hadoop03:/export/servers/hadoop-3.1.3/etc/hadoop

   
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/core-site.xml hadoop03:/export/servers/hadoop-3.1.3/etc/hadoop

   
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/mapred-site.xml hadoop03:/export/servers/hadoop-3.1.3/etc/hadoop

   

   
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/yarn-site.xml hadoop02:/export/servers/hadoop-3.1.3/etc/hadoop

   
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/hdfs-site.xml hadoop02:/export/servers/hadoop-3.1.3/etc/hadoop

   
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/core-site.xml hadoop02:/export/servers/hadoop-3.1.3/etc/hadoop

   
scp -r /export/servers/hadoop-3.1.3/etc/hadoop/mapred-site.xml hadoop02:/export/servers/hadoop-3.1.3/etc/hadoop

   

   6. 修改/etc/profile

   
vim /etc/profile

   
新增

   
export HDFS_ZKFC_USER=root

   

   
分发profile文件到其他服务器

   
scp /etc/profile hadoop02:/etc/profile

   
scp /etc/profile hadoop03:/etc/profile

   
传完之后要在hadoop01、02和03上分别实行source /etc/profile命令,来刷新设置文件

   

   7. 第一次启动高可用集群(HA)

   7.1 启动zookeeper

   
在三个虚拟机上分别实行

   
zkServer.sh start

   
查看状态

   
zkServer.sh status

   7.2 启动JournalNode

   
在三个虚拟机上分别实行

   
hadoop-daemon.sh start journalnode (最新命令:hdfs --daemon start journalnode)

   

   
等候2分钟

   

   7.3 格式化目录并复制到hadoop02

   
注意:只格式化一次,不要多次格式化,等候JournalNode实行2分钟后再实行

   
在hadoop01上实行

   
hadoop namenode -format

   
scp -r /export/data/hadoop/ hadoop02:/export/data

   7.4 格式化ZKFC

   
在hadoop01上实行

   
hdfs zkfc -formatZK

   7.5 启动HDFS

   
start-dfs.sh

   7.6 启动YARN

   
start-yarn.sh

   7.7 查看进程

   
jps

   

   

   

   7.8 查看主备namenode

   
hdfs haadmin -getServiceState nn1

   
hdfs haadmin -getServiceState nn2

   其他命令

   
#将standby状态namenode切换到active

   
hdfs haadmin -transitionToActive nn1

   
#将active状态namenode切换到standby

   
hdfs haadmin -transitionToStandby nn2

   
测试集群工作状态的一些指令 :

   
hdfs dfsadmin -report 查看hdfs的各节点状态信息

   

   大概碰到的问题:

   

   
1. hadoop02的NameNode起来后很快就没了,可以使用下述命令再次重启

   
hdfs --daemon start namenode

   

   
2. datanode大概namenode大概其他进程没起来

   
查看log实现,查找对应的log

   
cd /export/servers/hadoop-3.1.3/logs

   
vim hadoop-root-namenode-hadoop01.log

   

   

   

   

   

   8. 再次启动高可用集群

   
在3台虚拟机实行

   
zkServer.sh start

   
hadoop-daemon.sh start journalnode

   
等候1分钟

   
在hadoop01实行

   
start-dfs.sh

   
start-yarn.sh

   

   

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

温锦文欧普厨电及净水器总代理

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表