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

目录

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计算引擎,接下来的文章会详聊,敬请期待。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/659775.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

扎气球最高分-第13届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第74讲。 扎气球最高分&…

图片怎样在线改像素大小?电脑快速修改图片大小的方法

在设计图片的时候下载的图片尺寸一般会比较大,在网上使用经常会因为尺寸的问题导致无法正常上传,那么如何快速在线改图片大小呢?想要修改图片尺寸可以在直接选择网上的图片改大小工具的功能来快速完成修改,操作简单方便使用&#…

FreeRTOS学习笔记-基于stm32(7)任务状态查询与任务时间统计API函数

1、FreeRTOS任务相关API函数 函数描述uxTaskPriorityGet()查询某个任务的优先级vTaskPrioritySet()改变某个任务的任务优先级uxTaskGetSystemState()获取系统中任务状态vTaskGetInfo()获取某个任务信息xTaskGetApplicationTaskTag()获取某个任务的标签(Tag)值xTaskGetCurrentT…

0.25W 1.5KVDC~3KVDC 隔离超小型单输出 DC/DC 电源模块——TKE-W25系列

TKE-W25系列隔离超小型单输出 DC/DC 电源模块是一款超小型单输出电源模块,工业级环境温度,用于PCB安装的国际标准结构。此系列产品小巧,效率高,低输出纹波,用于需要电压转换和隔离的场合,封装有SIP和DIP可选。

MiniPCIe/SATA双用插槽无法识别minipcie模块怎么回事!

在计算机和嵌入式系统设计中,MiniPCIe/SATA双用插槽作为一种高度集成的解决方案,提供了极大的灵活性与扩展能力。它不仅能够支持MiniPCIe接口的无线网卡、固态硬盘控制器等模块,还能适应SATA接口的硬盘或固态存储设备,大大丰富了系统配置的可能性。尽管设计初衷良好,但在实…

Java—二分查找

介绍 二分查找(Binary Search)是一种在有序数组中查找特定元素的搜索算法。其基本思想是将目标值与数组中间的元素进行比较: 如果目标值等于中间元素,则查找成功。如果目标值小于中间元素,则在数组左半部分继续进行二…

汽车悬架分为哪几类

汽车悬架分为哪几类 1)汽车的悬架系统可根据结构分为两种:独立悬架和非独立悬架,独立悬架根据构造又可以分为CDC运动悬架(CDC电磁悬架系统)和空气悬架; 2)当前比较火热的空气悬架,是独立悬架的一种; 3)前轮主要使用麦弗逊式独立悬架 和 双叉臂悬架,后轮主要使用多…

基于 DCT 的图像滤波

需求分析 对于图像去噪这一需求,我们可以通过DCT(离散余弦变换)算法来实现。DCT是一种基于频域的变换技术,可以将图像从空间域转换为频域,然后通过滤波等处理方式进行去噪。 针对这一需求,我们需要进行以下…

香港优才计划申请时间要多久?各流程申请周期规划,再晚就来不及了!

香港优才计划申请时间要多久?各流程申请周期规划,再晚就来不及了! 2024年是香港优才计划不限配额的最后一年,明年政策如何变化还未可知,但如果明年又设置限额了,那么今年最后的机会一定要抓住了。 在这里…

美业SaaS收银系统源码-美团/口碑核销时报错:该商品未在美团/口碑上架怎么办?

美业SaaS系统 连锁多门店美业收银系统源码 多门店管理 / 会员管理 / 预约管理 / 排班管理 / 商品管理 / 活动促销 PC管理后台、手机APP、iPad APP、微信小程序 1. 可能是门店未做映射 • 美团门店映射:需要在【PC运营后端】-【渠道商品】-【美团点评门店管理】&…

elementUI type=“selection“多选框选中 删除 回显 赋值问题 回显数组改变选中状态未改变

业务需求&#xff1a; 点击查询弹列表框 勾选列表选项保存 可删除可重新查询列表添加 遇到的问题&#xff1a;删除之后查询列表selection回显问题 解决&#xff1a;row-click配合:reserve-selection"true"使用 <el-tableref"refPlanTable":data"…

AI时代的服装设计师--AIGC

AI时代的服装设计师--AIGC AIGCAIGC设计能替代真正的设计师吗森马T恤设计AIGC优势、优化 本文记录于去年参加的一次森马T恤设计活动的感受。 AIGC 可以说&#xff0c;近期以来&#xff0c;随着ChatGPT的不断发展&#xff0c;从ChatGPT-3到ChatGPT-4的飞速发展&#xff0c;AIGC…

【Spring Cloud】分布式配置

目录 未来的开发场景为什么需要配置中心配置实时生效配置管理流程 开源配置中心基本介绍DisconfSpring Cloud ConfigApolloNacos Spring Cloud Config介绍配置管理工具体系 案例需求编写 Config Server1.创建配置文件2.创建项目3.添加依赖4.添加注解5.修改配置文件application.…

selenium web 网页测试自动化需要哪些技术?

引言&#xff1a; 在当今互联网时代&#xff0c;网页测试自动化成为了确保软件质量和提高效率的重要手段之一。Selenium是一种功能强大且广泛应用的工具&#xff0c;可用于实现网页测试自动化。本文将带您了解Selenium Web网页测试自动化所需的技术和步骤&#xff0c;以便您从零…

伦敦银和现货白银是一回事吗

伦敦银和现货白银不能直接完全地画上等号&#xff0c;但如果投资者所指指的是国际市场上的现货白银交易&#xff0c;那么二者应该是等同的——因为在国际贵金属投资市场上&#xff0c;现货白银的别称就是伦敦银&#xff0c;伦敦银和现货白银指的其实是同一回事。 因为早在很多个…

MySQL学习——连接服务器和输入查询

MySQL是一个流行的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由瑞典的MySQL AB公司开发&#xff0c;后来被Oracle公司收购。它使用SQL&#xff08;结构化查询语言&#xff09;作为访问和操作数据库的标准语言。 要查看 mysql 客户端程序提供的选项列表&a…

firebase如何自定义上传日志

我们可以很轻松的得到2个代码&#xff1a; Firebase.crashlytics.log(str) Firebase.crashlytics.recordException(ex)这就是firebase提供的自定义日志和excption上传的方法。 但是如果你认为log函数调用后&#xff0c;直接就能查看到日志就错了。 我们在这个page是找不到日志…

Ableton Live 11 Suite for Mac:音乐创作的全能伙伴

在数字音乐创作的广阔天地中&#xff0c;Ableton Live 11 Suite for Mac无疑是一颗璀璨的明星。作为一款专业的音乐制作软件&#xff0c;它集合了音频录制、编辑、混音、母带制作等全方位功能&#xff0c;为Mac用户提供了无与伦比的音乐创作体验。 Ableton Live 11 Suite拥有直…

隆道出席河南ClO社区十周年庆典,助推采购和供应链数字化发展

5月26日&#xff0c;“河南ClO社区十周年庆典”活动在郑州举办&#xff0c;北京隆道网络科技有限公司总裁助理姚锐出席本次活动&#xff0c;并发表主题演讲《数字化采购与供应链&#xff1a;隆道的探索与实践》&#xff0c;分享隆道公司在采购和供应链数字化转型方面的研究成果…