【大数据】Hadoop 2.X和1.X升级优化对比

[复制链接]
发表于 2026-2-26 07:49:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

目次
1.媒介
2.hadoop 1.X的缺点和优化方向
3.办理NameNode的范围性
3.1.Hadoop HA
3.2.Haddop federation
4.yarn
5.周边组件


1.媒介

本文是作者大数据系列中的一文,专栏地点:
https://blog.csdn.net/joker_zjn/category_12631789.html?spm=1001.2014.3001.5482
前文中我们从大数据的概论入手、分别聊了分布式文件体系的鼻祖GFS、分布式数据库的鼻祖Big Table、hadoop中的分布式文件体系HDFS、盘算引擎Map Reduce、分布式数据库HBase。以上关于Hadoop的内容都是基于hadoop 1.X来聊的,Hadoop 1.X作为推出的第一个版本颠末实战的查验发现另有诸多很须要优化的地方,本文就会来聊一下hadoop 2.X中对hadoop 1.X做了哪些优化。
2.hadoop 1.X的缺点和优化方向

hadoop1.0版本有几个待优化点:


  • NameNode是单节点的,存储上会有上限,容错上也会有范围性。
  • 抽象条理低,须要大量的底层操纵,即大量指令操纵、大量代码编写。
  • 盘算引擎有范围性限

    • mapreduce能办理的题目有限
    • 资源使用率地,由于没有很好的资源调治机制,而是大略的将差别作业之间的资源直接相互独立开来,会导致各个job的资源只有自己能用,就算已经到了reduce阶段,自身的map资源也不能被别的job用到。
    • 服从很低,MapReduce的单个盘算使命的结果会存入HDFS中,也就是落了磁盘,因此假如是举行迭代盘算(上一个job的输出是下一个job的输入)就要往返读HDFS。

hadoop在2.X版本中对这些题目从两方便做了优化:


  • 优化自身的核心组件HDFS、MapReduce
  • 引入别的周边的配套组件,扩展本事
起首是对核心组件的优化:
组件1.X存在的题目2.X的改进
HDFSnameNode存在单点失效题目引入HDFS HA,对nameNode举行热备
HDFS定名空间单一无法实现资源隔离引入HDFS Federation,分出多个定名空间
MapReduce资源管理、调治服从低引入单独的资源管理框架YARN
其次是扩展了周边组件,增强了本事:
组件功能所办理的题目
pig用户只须要编写少量语句就能完成盘算使命,省去MapReduce的代码编写抽象条理低
spark基于内存的盘算框架,比mapreduce快,有良好及时性,迭代盘算快盘算使命耽误高,不恰当迭代盘算
Tez支持DAG作业,对作业操纵举行重新分解和组合,镌汰不须要的操纵,相当于对Map Reduce举行过程精简差别Map Reduce之间存在重复此操纵,拉低了服从
3.办理NameNode的范围性

3.1.Hadoop HA

Hadoop HA属于一种架构,是对Hadoop的程度扩展,用来办理NameNode没有热备份的题目。
HA架构中将NameNode分为生动和待命两种状态,生动和待命节点通过共享的存储体系来同步元数据信息。就是说生动的把元数据信息及时放到共享存储中,待命节点自己去拿,从而做到同步。
至于选哪个作为生动名称节点对外袒露,交给zookeeper就好。

3.2.Haddop federation

Haddop federation属于一种架构,是对Hadoop的垂直扩展,用来办理单节点存储上限的题目,假如名称节点是单节点那么内存会很有范围性,究竟要装入内存的元数据许多。
Hadoop federation将名称节点切分为差别的定名空间(实在就是文件体系路径下的差别的文件夹),一个名称上面有一个大概多个定名空间,差别的名称节点上管理差别的定名空间。
至于客户端怎么访问到自己要的定名空间喃?会在客户端本地提前设置好映射,指定客户端去访问哪些名称节点。

4.yarn

yarn是hadoop 2.X开始引入的资源调治、监控监控框架。
在hadoop 1.X中,Map Reduce干的活儿很杂,既是个资源调治框架,要负责资源调治、使命监控监控、还是个盘算框架,要负责具体的盘算。作为资源调治框架来说,hadoop 1.X的筹划上不太公道,以是hadoop在2.x的时间借偏重构资源调治框架的时间,将资源调治单独拆了出来做成了新的组件——yarn。如许拆之后在hadoop 2.X开始mapreduce就不再负责资源调治,而是一个纯盘算框架。
hadoop 1.X的筹划上那里不公道:
全部资源管理、全部job的使命调治、全部job的使命监控监控都要由jobtracker来负责,压力太大了。就像公司管理一样,全部员工直接对接老板,老板肯定扛不住,分级对接才是正解,老板就能减轻许多压力。每一级对接自己的管理层,管理层再同一对接老板yarn的筹划头脑就是这种分级管理的头脑。
yarn有三大核心组件:


  • Resource Manager,负责资源管理
  • Application Master,负责使命调治、使命监控
  • NodeManager,在具体节点上负责与前两者通讯
Map Reduce 1.X与yarn的组件类比:

三大核心组件怎样共同工作:



  • ResourceManager (RM):

    • RM 是全局的资源调治器,负责整个集群的资源管理和分配。
    • 它维护着集群的全局视图,相识全部节点的状态和可用资源。
    • 当应用步伐提交时,RM 启动一个 ApplicationMaster 历程。
    • RM 与各个 NodeManager 通讯以获取和更新节点状态。

  • ApplicationMaster (AM):

    • AM 是每个应用步伐的署理,负责应用步伐的实验逻辑和资源哀求。
    • 应用步伐启动后,AM 会向 RM 申请资源(如内存、CPU 核心等)来运使用命。
    • AM 和 RM 通过一个协商过程来获取资源,这个过程大概是基于优先级或公平共享的战略。
    • 一旦得到资源,AM 会将这些资源进一步分别为更小的单元,即 Containers。

  • NodeManager (NM):

    • NM 是每个节点上的署理,它负责管理该节点上的资源和容器实例。
    • NM 向 RM 陈诉节点的资源使用情况和康健状态。
    • 当 AM 哀求资源时,RM 将资源分配给 NM,然后 NM 根据指示启动容器。
    • NM 监控容器的生命周期,包罗启动应用步伐的使命,监控资源使用,以及在使命完成或失败时清算资源。

  • Container:

    • Container 是 YARN 中资源分配的根本单元,它包罗了肯定量的 CPU、内存和其他资源。
    • AM 会将使命分解为多个小使命,并在多个 Container 中运行这些使命。
    • AM 直接与 NM 通讯来启动和制止 Container,以及监控使命的进度和状态。

5.周边组件

关于2.X中新引入的组件这里不做扩展,只是大概说一下引入了些什么东西、办理了些什么题目,后续聊到干系组建的时间会细聊。
2.X引入的周边组件重要是围绕封装操纵和扩展盘算引擎来的,寻求用更方便的方式来访问存储和编写盘算使命,以及支持更多范例的盘算引擎来应对差别的场景。
pig用pig latin语言来封装了Map Reduce,以便我们镌汰代码的编写:

tez用DAG作业的方式来优化了Map Reduce过程,进步了Map Reduce的实验服从:

至于spark盘算引擎,接下来的文章会详聊,敬请等待。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表