Hadoop2.0新特性(Yarn原理)

image-20230412171641593

image-20230412171742575

1. Hadooop改进与提升

image-20230412171829349


1.1 总结与思考⭐

1)HDFS引入高可用,两台以上NameNode,一台Active,一台StandBy,防止NameNode单点故障

2)引入YARN资源管理调度框架


2. Yarn体系结构

image-20230412172016852

image-20230412172206460

2.1 ResourceManager

image-20230412172327746


ResourceManager是一个全局的资源管理系统,负责整个Yarn集群资源的监控/分配/管理工作
即主要负责全局的资源协调
1)负责处理客户端请求
2)接收和监控NodeManager(NM)的资源情况
3)启动和监控ApplicationMaster(AM)
4) 资源的分配和调度


image-20230412172810965


  1. scheduler(调度器)
    根据容量 / 队列等限制条件,将系统资源分配给正在运行的应用程序

​ 1.1 队列调度器(FIFO Scheduler):先进先出,大任务可能会占用所有集群资源,导致其他任务阻塞

​ 1.2 公平调度器(Fair Scheduler): 所有任务平分集群资源

​ 1.3 容量调度器(Capacity Scheduler): https://blog.csdn.net/qq_20042935/article/details/125651818

  1. Applications Manager
    负责管理整个系统的应用程序,包括程序的提交 / 调度协调资源 / 启动ApplicationMaster / 监控ApplicationMaster / 失败时重启

2.2 NodeManager

image-20230413094201897


NodeManager相当于工作节点

1)会定时向ResourceManager汇报所在节点资源使用情况

2)会接受处理来自ApplicationMaster的启动停止容器(Container)的各种请求


2.3 ApplicationMaster

image-20230413094500827


ApplicationMaster进行二次分配,相当于ApplicationManager下面的小组长

1)协调来自ResourceManager的资源,负责二次分配

2)通过NodeManager监控容器执行/资源使用情况,在任务运行失败时,申请资源重启任务


2.4 总结与思考⭐

1)RescourceManger负责全局的资源调度管理,NodeManager负责单个节点的资源监控管理,ApplicationMaster负责应用的监控/启停/资源管理

2)RescourceManger由ApplicationManager和scheduler组成;ApplicationManager用于调度Container,监控/启停任务,Scheduler纯粹的进行资源调度


3. Yarn工作流程

image-20230413095854079


1.提交应用程序

2.分配容器(Container预分配的资源空间),启动Application Master

3.AppMaster向ResourceManager注册

4.AppMaster向ResourceMaster申请资源(ReousrceMaster将Container[虚拟]打包,发送给AppMaster)

5.与NodeManager进行通信,根据Contariner索要真正资源,并启动任务

6.在Container执行map / renduce任务

7.各任务汇报任务向AppMaster汇报任务状态,失败时重启任务

8.AppMaster向ResourceManager注销


3.1 总结与思考⭐

1)首先向ApplicationManager提交程序,分配Container

2)然后通过scheduler分配实际资源

3)通过ApplicationManger和ApplicationMaster对APP进行监控/管理/启停


4. Hadoop高可用集群

4.1 部署集群节点

image-20230413100042134


Journal Nodes:文件共享,实现两个NameNode的数据共享

ZKFC:监控namenode的健康状况


4.2 环境准备

image-20230413100431569

4.3 配置Hadoop高可用集群

4.3.1 修改core-site.xml

image-20230413100514701

image-20230413100831379

4.3.2 修改hdfs-site.xml

image-20230413100911515

image-20230413101137784

image-20230413101220674

image-20230413101243295

image-20230413101337848

image-20230413101353347

image-20230413101424880

image-20230413101536086

image-20230413101551795

4.3.3 修改mapred-site.xml

image-20230413101728617

image-20230413101739016

4.3.4 修改yarn-site.xml

image-20230413101855418

image-20230413101905666

image-20230413102040850

image-20230413102107337

4.3.5 修改slaves文件

image-20230413102142986

4.3.6 修改hadoop-env.sh

image-20230413102253948

4.4 启动Hadoop高可用集群

image-20230413102517969

image-20230413103213850


## 1. 启动zk
cd /export/servers/zookeeper-3.4.10/bin
./zkServer.sh start
./zkServer.sh status
## 2. 启动journalnode(文件共享/日志管理)
hadoop-daemon.sh start journalnode
## 3. node1格式化NameNode,并拷贝到node2
hadoop namenode -format
scp -r /export/data/hadoop node-02:/export/data/
## 4. node-01格式化ZKFC
hdfs zkfc -formatZK
## 5. node-01启动HDFS
start-dfs.sh
## 6. 启动yarn
start-yarn.sh

4.5 总结与思考⭐

1)修改相关XML等配置文件

2)启动Hadoop高可用集群


5. HDFS高可用架构

image-20230413103321842

image-20230413103825841

image-20230413104124368

image-20230413104143583


5.1 单点故障

Namenode发生故障,整个集群不可用

通常有两台或者以上作为NameNode

活跃的NameNode会把数据写到共享存储系统中,备用的NameNode会一直监听共享存储系统

zk主要实现两个nameNode之间单点故障切换的问题


5.2 总结与思考⭐

两台以上的机器作为NameNode,一台Active,一台StandBy

活跃的NameNode把共享存储系统,备用的NameNode会一直监听共享存储系统,通过ZK进行NameNode之间的单点故障切换

posted @ 2023-06-28 16:14  付十一。  阅读(80)  评论(0)    收藏  举报