Hive进阶

目录

一、MapReduce的计算过程

二、Yarn的资源调度

yarn的资源调度策略

三、Hive的语法树

四、Hive配置优化

五、数据开发

六、数据仓库

七、数据仓库开发流程

八、数仓分层

九、ETL和ELT


一、MapReduce的计算过程

分布式计算框架

需要编写代码执行,执行时会数据所在服务器上运行相同的计算代码

计算过程分为map 和reduce过程

map对多份数据进行拆分计算

reduce将分开的map结果合并一起计算

map的计算程序数量由文件块个数据决定,每个map计算一个块的数据

reduce的个数默认是一个;在进行数据拆分存储时,reduce个数由分区数和分桶数决定

map将数据传递给reduce过程称为shuffle过程

包含 分区,排序,合并

Map阶段

1-按照块数量进行split的块数据读取

2-split切割后的数据传递给对应的map进行处理,会对数据转为kv (张三,1) (张三,1),(李四,1)

3-map将处理的后的数据写入buffer缓存区

4-对缓冲区内的数据进行spill溢出(读取缓冲区内的数据)

5-对读取的数据进行分区,将数据拆分多份

6-对每份拆分的数据进行排序 sort

7-将拆分的数据写入不同的文件

8-在将每次溢出的数据合并merge在一起,保存同一文件,文件是临时文件,计算后会删除

Reduce阶段

1-根据的分区数创建出多个reduce

2-每个reduce从不同的map中fetch获取相同分区的文件数据

3-在将fetch后的文件合并,对合并后的数据进行排序

4-reduce对合并后的文件数据进行计算

5-reduce对结果输出到hdfs的目录下

二、Yarn的资源调度

分布式资源调度,管理整个hadoop集群的所有服务器资源

6.7章节

  • ResourceManger

    • 负责处理所有计算资源申请

  • NodeManager

    • 负责资源空间(container)的创建

  • ApplicationMaster

    • 管理计算任务,只有产生了mapreduce计算才会运行ApplicationMaster

    • 负责具体的资源分配

      • map使用多少

      • reduce使用多少

1-mapreduce提交计算任务给RM(ResourceManager)

2-RM中的applicationmanager负责创建applicationMaster进程

3-applicationMaster和applicationmanager保持通讯

4-applicationMaster找RM中的ResourceScheduler(资源调度器)申请计算需要的资源

5-applicationMaster通知对应的NodeManger创建资源空间container

6-在资源空间中先运行map阶段的计算,先运行reduce阶段的计算

7-map和reduce运行期间会将自身状态信息汇报给applicationMaster

8-计算完成后,applicationMaster通知NodeManger释放资源

9-资源释放后再通知applicationmanager把自身(applicationMaster)关闭释放资源

yarn的资源调度策略

当有多个计算任务同时请求yarn进行计算,如何分配资源给每个计算任务?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值