Yarn-HA配置

一.Yarn-HA配置

1.YARN-HA工作机制

(1).官方文档:

官方文档

(2).YARN-HA工作机制

image.png

2.配置YARN-HA集群

(0).环境准备

(a)修改IP
(b)修改主机名及主机名和IP地址的映射
(c )关闭防火墙
(d)ssh免密登录
(e)安装JDK,配置环境变量等
(f)配置Zookeeper集群
(g)配置过mapred-site.xml(和以前配置一样)

(1).规划集群
bigdata111 bigdata112 bigdata113
NameNode NameNode
JournalNode JournalNode JournalNode
DataNode DataNode DataNode
ZK ZK ZK
ResourceManager ResourceManager
NodeManager NodeManager NodeManager
(2).具体配置
(a)yarn-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<configuration>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<!--启用resourcemanager ha-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>

<!--声明两台resourcemanager的地址-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster-yarn1</value>
</property>

<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>

<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop1</value>
</property>

<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop2</value>
</property>

<!--指定zookeeper集群的地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
</property>

<!--启用自动恢复-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>

<!--指定resourcemanager的状态信息存储在zookeeper集群-->
<property>
<name>yarn.resourcemanager.store.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
</configuration>
(b)同步更新其他节点的配置信息
(3).启动hdfs

(a)在各个JournalNode节点上,输入以下命令启动journalnode服务:

1
sbin/hadoop-daemon.sh start journalnode

(b)在[nn1]上,对其进行格式化,并启动:

1
2
bin/hdfs namenode -format
sbin/hadoop-daemon.sh start namenode

(c )在[nn2]上,同步nn1的元数据信息:

1
bin/hdfs namenode -bootstrapStandby

(d)启动[nn2]:

1
sbin/hadoop-daemon.sh start namenode

(e)启动所有datanode

1
sbin/hadoop-daemons.sh start datanode

(f)将[nn1]切换为Active

1
bin/hdfs haadmin -transitionToActive nn1
(4).启动yarn

(a)在hadoop1中执行:

1
sbin/start-yarn.sh

(b)在hadoop2中执行:

1
sbin/yarn-daemon.sh start resourcemanager

(c)查看服务状态

1
bin/yarn rmadmin -getServiceState rm1

image.png

(d)强制切换状态:

1
bin/yarn rmadmin -transitionToStandby rm2 --forcemanual

(e)关于sbin/start.all.sh
hadoop1:

1
sbin/start.all.sh

二.HDFS Federation架构设计

1.NameNode架构的局限性

(1)Namespace(命名空间)的限制

由于NameNode在内存中存储所有的元数据(metadata),因此单个namenode所能存储的对象(文件+块)数目受到namenode所在JVM的heap size的限制。50G的heap能够存储20亿(200million)个对象,这20亿个对象支持4000个datanode,12PB的存储(假设文件平均大小为40MB)。随着数据的飞速增长,存储的需求也随之增长。单个datanode从4T增长到36T,集群的尺寸增长到8000个datanode。存储的需求从12PB增长到大于100PB。

(2)隔离问题

由于HDFS仅有一个namenode,无法隔离各个程序,因此HDFS上的一个实验程序就很有可能影响整个HDFS上运行的程序。

(3)性能的瓶颈

由于是单个namenode的HDFS架构,因此整个HDFS文件系统的吞吐量受限于单个namenode的吞吐量。

2.HDFS Federation架构设计

能不能有多个NameNode

NameNode NameNode NameNode
元数据 元数据 元数据
Log machine 电商数据/话单数据

image.png

3.HDFS Federation应用思考

不同应用可以使用不同NameNode进行数据管理
图片业务、爬虫业务、日志审计业务
Hadoop生态系统中,不同的框架使用不同的namenode进行管理namespace。(隔离性)

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2021 Movle
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信