【博学谷学习记录】超强总结,用心分享 | hadoop的组成

【博学谷IT技术支持】

公众号: 积雷山摩云洞,欢迎关注!!!

hadoop的构成

hadoop集群主要包含:HDFS集群、MapReduce、YARN集群。HDFS集群复制海量数据的存储,MapReduce负责海量计算,Yarn集群存在数据运算时的资源调度。

  • hdfs集群主要包含了角色nameNode、SecondaryNameNode、DataNode
  • yarn集群主要包含了ResourceManager和NodeManager

HDFS的构成

上述可知hdfs包含的角色有nameNode、secondaryNameNode、dataNode,

这里讲述它们各自的作用是什么?

一般来说,hdfs有一个nameNode和多个dataNode组成。这里nameNode是hdfs的主节点,dataNode是从节点。

  • NameNode主要职责是管理元数据信息
  • secondaryNameNode是负责备份镜像和日志与镜像的定期合并
  • dataNode是负责数据具体的存储

hdfs的写流程

  • 客户端向服务端发起请求,nameNode进行权限检查。告诉客户端是否可以上传,并返回主机列表
  • 客户端对文件进行切片,然后与主机列表建立通信,分别上传block
  • 上传完毕,客户端向NameNode汇报,NameNode更新元数据

hdfs的读流程

  • 客户端对服务发起请求,nameNode进行权限校验
  • nameNode将block列表发送给客户端
  • 客户端与主机建立通信,并从读取数据进行合并

mapReduce的构成

mapReduce就是将一个大的计算任务拆分成小的任务,然后在各个计算机中运行,最后再将结果汇总在一起。

mapReduce分为几个阶段?

  • 两个阶段分别是Map阶段和Reduce阶段
  • map阶段负责任务的拆分
  • reduce阶段负责任务的汇总

mapReduce的工作流程

mapReduce的工作流程可以分为3个阶段:

分别是map阶段shuffle阶段(分区、排序、Combiner、分组)reduce阶段

map阶段

k1,v2转化为k2,v2最后以键值对的方式输出

shuffle阶段

  • 分区:对k2打标记,相同标记的数据会分到一个区,同一个区数据被同一个reduce来取
  • 排序:只能根据k2进行排序,因此关键字段必须在k2中包含。实现WritableComparable接口,该类中必须满足能够序列化和反序列化,且读写顺序一直
  • combiner: 提前对每个map的数据进行聚合,减少Nap端和Reduce端网络传输的数据量
  • 分区: 默认根据K2来决定,相同的k2的数据会被分到同一个组。没有指定分组会默认调用k2类中的compareTo方法。

reduce阶段

继承Reducer类,重写reduce方法,把方法中的k2,v2转化为k3,v3

yarn的构成

我们知道yarn包含ResourceManager和nodeManager角色,它是一个主从架构,ResourceManager是主节点,NodeManager是从节点

ResourceManager和NodeManager的作用是什么

  • ResourceManager负责整个集群的所有资源的统一管理和调度,接收NodeManager的资源汇报信息,并将这些信息按照一点策略分配给ApplicationManager
  • NodeManager负责任务的执行,同时会定期向ResourceManager汇报资源使用情况

ApplicationManager的作用

  • 负责接收job的提交请求,为应用分配第一个Container来运行ApplicationMaster
  • 监控ApplicationMaster

yarn的调度器有哪些?

  • FIFO:队列调度器,按队列执行job,容易造成阻塞。
  • Capacity Scheduler: 容器调度器,将资源分成多个队列,每个队列都占用一部分资源。
  • Fair Scheduler: 公平调度器,对资源进行平分
posted @ 2023-06-01 09:57  牛牛牛牛牛牛牛牛  阅读(46)  评论(0编辑  收藏  举报