分区和shuffle
分区存了map处理后的数据,该分区数据会交给一个reduce执行后续的数据计算
shuffle是对map的数据进行相应的处理 :分区、排序、合并
map在将数据传递给reduce之前需要需要通shuffle对数据进行提前处理
Yarn的核心服务- resourcemanager
- 负责管理nodemanager
- 负责协调整个集群服务的资源分配
- 所有资源请求都需要交给resourcemanager
- 单点故障
- resourcemanager不参与具体的计算过程,也不参与计算过程中的资源管理
- nodemanager
- 负责监控机器的运行资源
- 定时将自己的信息告知给resourcemanager
- 完成对分配好的资源再分配–对运行程序的资源进行分配管理
- applicationmaster
- 在进行计算时,resourcemanager会生成一个applicationmaster管理计算
- applicationmaster负责向resourcemanager申请资源
- 获取计算的运行状态
- applicationmaster 对应一个计算任务
- 负责资源回收
- 计算完成会通知resourcemanager把自己释放
- 队列 社区版
- 容量 社区版
- 常用容量调度
- 公平 商业版 需要付费使用
高可用是为了能够持续不间断的对外提供服务功能
最基本的高可用形式: 一主一备
一主多备
- HDFS服务 存储
- namenode 单点故障
- datanode
- secondarynamenode
- Yarn服务
- resourcemanager 单点故障
- nodemanager
Hadoop:HDFS–namenode Yarn–resourcemanager
hadoop需要只有两个服务:
Hadoop1 HDFS–namenode Yarn–resourcemanager datanode 至少需要3台
Hadoop2 HDFS–namenode Yarn–resourcemanager
实现高可用需要一主一备,主服务宕机之后,备用服务能启动对外提供功能
- 怎么确定谁是主服务,谁是备用服务? 使用zookeeper的节点的唯一性来确定 ,可以让两个服务同时创建相同节点,谁创建成功,谁作为主服务
- 怎么知道服务宕机,并且通知另一个服务进行启动? zookeeper监听机制,消息订阅与发布 znode
- 主服务和备用服务怎么实现数据同步,保证数据一致性? Qurom Journal Manager服务 JournaNode对数据进行同步备份
在高可用场景容易出现两个主服务的情况,称之为脑裂
假死状态 :zkfc因为网络延迟原因获取不到管理的nn状态,认为nn已经宕机,通知备用服务器启动,备用NN在启动是会去连接原来的主服务,强制使用kill杀死主服务
数据仓库存储数据 可以存储各种类型的数据
数据仓库特性- 面向主题
- 一个主题对应一个方向的数据,
- 京东网站,需要获取所有京东网站产生的所有数据,苏宁网站。
- 在进行网站数据时,不区分数据类型,只要属于该网站的数据全部存入数仓
- 业务数据
- 日志数据
- 缓存数据
- 在进行网站数据时,不区分数据类型,只要属于该网站的数据全部存入数仓
- 集成性
- 不区分数据类型,将所有数据放在一起
- 不易丢失
- 所有数据都是在磁盘持久存储
- 时变性
- 可以根据分析需求,随时更改存储的数据内容
数仓可以存储任意时间,任意内容,任意类型的数据



