Hadoop技术内幕-架构篇-阅读笔记
主要用来理解yarn如何运行
1.4 源代码目录结构
- bin 基本脚本
- etc 配置信息
- include 编程库头文件
- lib 动态和静态库
- libexec shell配置文件所在目录
- sbin 各个服务启动和停止脚本
- share hadoo各个模块编译后的jar所在目录
2.1 yarn-产生背景
2.1.1 MRv1缺点
- 可靠性差 单点故障
- 扩展性差 jobtracker同时负责资源管理和作业控制
- 资源利用低 计算粒度粗 Map Slot 和Reduce Slot槽位 无共享
- 无法支持多种计算框架
2.1.2 Yarn优点
- 资源利用率高 共享资源
- 运行成本低 一个框架一个集群
-
数据共享 移动计算
yarn集群共享
2.2 基础知识
2.2.1 术语解释
Hadoop 1.0
第一代hadoop hdfs+MapReduce, HDFS由NameNode+Datanode组成 MapReduce由一个jobTracker+多个TaskTracker
Hadoop 2.0
HDFS增加 HDFS Federation 实现不同目录的资源隔离 多个namenode分管不同的目录 执行访问隔离
JobTracker执行了拆分, 现在分为ResourceManeage和ApplicationMaster实现, RM负责资源分配,AM仅负责一个应用程序, 进而实现Yarn。
v1与v2对比
MRv1 计算框架
-
编程模型
问题抽象为map reduce 1. map成key/value 2.recude对相同k进行处理, 最终写在HDFS上面 -
数据处理引擎
MapTask ReduceTask 组成, -
运行时环境
一个JobTracker 和 多个TaskTracker服务组成
JboTracker 负责资源管理和作业控制 TaskTracker负责执行命令
MRv2
不同点 运行时环境
由yarn和ApplicationMaster组成 Yarn负责调度, AM负责作业管理
YARN
资源管理系统,可为Tez Spark Storm HBase提供资源管理服务
HDFS Federation
可以实现多个NameNode
hadoop append
实现追加文件操作
hadoop raid
在hdfs上构建新的分布式系统 增强保护
hadoop Symlink
符号链接
security
增加Kerberos 和 DeletionToken
HA
sNamemanage
2.3 YARN基本思想
2.3.1 框架比较
框架比较-MRv1 下一代mapreduce将JobTracker拆分成两部分
- 全局资源管理器 ResourceManager 负责全局资源调度
-
应用程序管理器 ApplicationMaster 负责单个应用的管理
yarn的基础架构
2.4 Yarn基本框架
ResourcesManager
RM全局资源管理器 主要有两个组件
- 调度器
分配单元 Container 动态资源分配 - 应用程序管理器
所有应用提交, 与协调器协商资源,监控applicationMaster运行状态
ApplicationMaster
与RM协商获取资源 container方式
与nodemanager通信 启动 停止任务
监控所有任务运行状况
NodeManager
- 实时的汇报本节点上的资源使用情况 和各个Container的运行情况给RM
- 接受并处理来自AM的Container的启动停止命令
Container
Yarn的资源抽象, 封装了某个节点的内存 cpu等, AM向RM申请资源,RM为AM返回Container,动态分配,根据需求动态生成,cgroup实现轻量级的隔离
2.4.2 Yarn通信协议
RPC通信协议
中文释义:(RFC-1831)远过程调用协议
注解:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加轻易。
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用过程接收答复信息,获得进程结果,然后调用执行继续进行。
RPC信息协议由两个不同结构组成:调用信息和答复信息。