码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop组件

时间:2021-04-27 15:04:12      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:服务   管理   传输过程   mapr   edit   个数   可靠   现在   监控   

Hadoop

分布式计算平台,同时也是一个生态圈

  • hadoop 1.X HDFS+MapReducer+Common
  • hadoop 2.X HDFS+MAP+Reducer+Common
  • hadoop 3.X java7->java8,引入纠删码,重写shell脚本,支持超过两个NameNode,默认端口改变

HDFS

分布式文件存储系统(可靠,高吞吐),利用目录树定位文件

  • 可靠性-维护多个副本
  • 扩展性-随时增减服务器
  • 高效性-task并行
  • 容错性-失败的任务重新分配执行
  • 适合一次写入多次读出
  • 支持数据的追加,不支持随机修改

HDFS组件

NameNode

  • NameNode 存储文件的元数据,位置信息
  • 配置副本策略
  • 管理数据块映射信息
  • 处理读写请求

DataNode

  • DataNode 存储文件的真实数据,并做数据校验
  • 一个数据块在DN中会存储数据本身,数据长度,检验和以及时间戳。同时DN启动后会向NN进行注册,后续每隔一小时向NN汇报数据块信息,同时每三秒进行一次NN心跳并带回NN指令,如果10分钟没有心跳信号,NN会认为该节点宕机。
  • 在数据节点退役过程中推荐使用黑名单进行退役,辞职后会进行HDFS数据转移。

SecondaryNameNode

  • SecondaryNameNode 对NameNode做备份,但不能顶替NN提供服务
  • 定期合并镜像文件,编辑日志,推送给NN
  • 可以恢复NN的数据(可能不完整)

Client

  • Client切分上传的文件
  • 告知NN文件的位置信息,交互DN的读写数据
  • 通过命令管理HDFS

HDFS文件的上传与下载

  • 上传:客户端通过HDFS对象向NameNode提交上传请求,NN确定文件状态以及父目录是否存在,返回许可。随后用户上传文件的第一个数据块,请求NN返回DataNode,NN根据请求返回三个DN节点,用户通过输出流请求在一个DN上上传数据(上传的DN根据网络拓扑计算决定),然后该DN会调用其他的DN节点将这个通信信道建立完成。三个节点逐级应答客户端,客户端向第一个DN节点上传一个数据块,以packet为单位,DN收到后先进行落盘处理,同时将该packet传送给第二个DN节点然后再传给第三个DN节点。当第一个块传输完成后,第二个数据块重复上面的动作,传递完成后关闭传输流,传输过程中,第一个DN节点会将packet放入一个应答队列,待所有节点相应完成后表示上传成功。
  • 下载: 客户端访问HDFS对象,向NameNode请求下载某文件,NameNode返回文件的元数据信息,以及数据块坐在的位置。客户端得到信息后获取文件输入流,根据就近原则随机原则随机挑选一个DN节点获取packet,客户端收到后现在本地缓存,然后写入目标文件。

NameNode与SecondaryNameNode的机制

  • NN在启动后会将fsimage和edits加载到内存里,格式化后则是创建。客户端对HDFS进行操作后,NN先将操作记录到日志中,然后再内存中进行操作,2NN向NN询问是否CheckPoint,带回指令。如果CheckPoint,NN会生成一个滚动的日志文件,一个磁盘中编辑日志的复制文件,将磁盘中的镜像文件和复制好的编辑日志文件复制到2NN中,加载到2NN内存中合并成一个合并文件,返回到NN中,NN用重命名的方式覆盖原文件。
  • fsimage是HDFS文件系统中元数据的一个永久性检查点
  • edits存放HDFS文件系统中所有的更新操作
  • CheckPoint触发点为1小时或者edits执行了一百万次操作。2NN在一分钟内确认三次NN的操作次数

Yarn组件

  • ResourceManager 处理客户端请求,监控NodeManager,启动ApplicationMaster,调度资源
  • NodeManager 管理单个节点上的资源,处理ResourceManager的命令,处理ApplicationMaster的命令
  • Contianer 封装单个节点上的资源
  • ApplicationMaster 负责数据切分,为应用申请资源,监控任务

MapReduce框架?

  • 常用的数据序列化类型 String-》Text | Map-》MapWritable | Array-》ArrayWritable
  • 一个运算程序一般是一个map阶段和一个reduce阶段,MapTask并发执行,互不相干。ReduceTask并发执行,依赖MapTask的数据结果。
  • 关于进程,mrAppMaster负责过程调度和状态协调,MapTask负责map阶段的数据处理。ReduceTask负责reduce阶段的数据处理。

Hadoop组件

标签:服务   管理   传输过程   mapr   edit   个数   可靠   现在   监控   

原文地址:https://www.cnblogs.com/mylearnpark/p/14706834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!