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

news2024/11/17 11:37:52

目录

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

相机系列——相机标定简述

作者:木一 对相机系列感兴趣还可看前文了解更多相关内容: 相机系列——透视投影:针孔相机模型 VR/AR/XR背后的逻辑?离不开三维引擎相机 引言 上文我们介绍了针孔相机模型,用来描述相机的透视投影成像过程&#xf…

数据要素的大海,如何流向千行百业?

文|白 鸽 编|王一粟 当数智化的风吹向银行业,是从底层数据的融合开始的。 在银行风控场景中,一个人想要进行风险投资或借贷,银行往往会评估这个人的信贷和风控策略。在以往的办理模式中,会需要办理人…

看看最新的B端登录界面,你是不是被潮流抛弃了?

毛玻璃风格(Frosted Glass Style)是新拟态设计风格中的一种分支,它灵感来源于现实世界中的毛玻璃材质。毛玻璃是一种通过在玻璃表面加工处理的方式,使其具有模糊、云翳和透明效果的特殊玻璃。 在设计中,毛玻璃风格通常…

OrangePi Kunpeng Pro体验——安装Hass与驱动SPI小屏幕

OrangePi Kunpeng Pro 是一款面向开发者和爱好者的高性能开发板。在本次测评中,主要将以前的一些代码在该开发板上实现,包括docker部署hass,引脚驱动SPI小屏幕。中间遇到了一些小小问题,但都成功了,一起来试试吧~ 一、…

NoSQL是什么?NoSQL数据库存在SQL注入攻击?

一、NoSQL是什么? NoSQL(Not Only SQL)是一种非关系型数据库的概念。与传统的关系型数据库不同,NoSQL数据库使用不同的数据模型来存储和检索数据。NOSQL数据库通常更适合处理大规模的非结构化和半结构化数据,且能够…

n后问题 回溯笔记

问题描述 在nn格的棋盘上放置彼此不受攻击的n个皇后。 按照国际象棋的规则,皇后可以攻击与之处在同 一行或同一列或同一斜线上的棋子。n后问题等价于在nn格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。 代码 import java.uti…

史上最全排序算法整理!(1)

1.排序的概念及其应用 1.1排序的概念 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序,若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之&#…

linnux上安装php zip(ZipArchive)、libzip扩展

安装顺序: 安装zip(ZipArchive),需要先安装libzip扩展 安装libzip,需要先安装cmake 按照cmake、libzip、zip的先后顺序安装 下面的命令都是Linux命令 1、安装cmake 确认是否已安装 cmake --version cmake官网 未安装…

基于k-NN + GCN的轴承故障诊断模型

目录 往期精彩内容: 创新点: 前言 1 轴承故障数据的预处理 1.1 导入数据 1.2 数据预处理,制作数据集 2 基于Pytorch的GCN轴承故障诊断 2.1 定义GCN分类网络模型 2.2 设置参数,训练模型 2.3 模型评估 代码、数据如下&…

乡村振兴与农业科技创新:加大农业科技研发投入,推动农业科技创新,促进农业现代化和美丽乡村建设

一、引言 在当代中国,乡村振兴已成为国家发展的重要战略之一。作为国民经济的基础,农业的发展直接关系到国家的稳定和人民的福祉。随着科技的不断进步,农业科技创新在推动农业现代化和美丽乡村建设中发挥着越来越重要的作用。本文旨在探讨如…

深入理解JVM:内存结构、垃圾收集与性能调优

目录 JDK、JRE、JVM关系? 启动程序如何查看加载了哪些类,以及加载顺序? class字节码文件10个主要组成部分? JVM结构 画一下JVM内存结构图 程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区 运行时常量池? 什么时候抛出StackOverflowError? 例如&…

SAP_SD模块 物料科目分配/成本简介

SAP系统各模块与财务都有个方面的集成。文本主要说明销售模块中的科目分配和成本的一个对应关系。 1、首先是在物料主数据上销售视图中的物料科目分配组,S1主营、S2材料等字段,物料销售的时候会将这个物料产生的记录到对应的科目中。 首先是物料主数据中…

FreeRTOS【7】队列使用

1.开发背景 操作系统提供了多线程并行的操作,为了方便代码的维护,各个线程都分配了专用的内存并处理对应的内容。但是线程间也是需要协助操作的,例如一个主线程接收信息,会把接收的信息并发到其他线程,即主线程不阻塞&…

数分之SQL查询电商数据案例

1,Python连接SQL数据库 以下是使用Python连接MySQL数据库并进行操作的示例代码: import random import time import pymysql# 定义名字数据 xing ["王", "李", "张", "刘", "陈", "杨", "黄&q…

2024年 云南 融资融券怎么开通,利率多少?4.2

一个小动作,每年节约几万块? 勤俭节约的传统,真的在很多年轻人当中是被嫌弃的,有人要说“吃多了对身体也不好”、“反正食堂饭菜很便宜”之类 但是有效利用资源的观念还是需要培养的。最近了解到很多朋友在券商融资利率很高6%&a…

Pyinstaller打包exe文件解决指南

打包命令 打包 Python 文件 输入如下格式的命令即可 默认命令 Pyinstaller 文件名.py Pyinstaller -option1 -option2 -... 要打包的文件 Pyinstaller 文件名.pyPyinstaller -option1 -option2 -... 要打包的文件 参数选项比较多,这里我列一个表:…

Downie 4 for Mac:视频下载的新选择

对于Mac用户来说,想要轻松下载网上的视频内容,Downie 4无疑是一个绝佳的选择。这款专为Mac打造的视频下载工具,凭借其强大的功能和简洁的操作界面,让视频下载变得轻松又高效。 Downie 4支持从众多网站下载视频,包括各…

LeetCode --- 399周赛

题目列表 3162. 优质数对的总数 I 3163. 压缩字符串 III 3164. 优质数对的总数 II 3165. 不包含相邻元素的子序列的最大和 一、优质数对的总数I 这里由于数据范围比较小,我们可以直接暴力枚举,代码如下 class Solution { public:int numberOfPairs…

STP19NF20 丝印 19NF20 场效应管19A 200V 直插 TO-220

STP19NF20 功率MOSFET的应用领域相当广泛,主要包括: 1. 电源管理:用于高效率电源管理电路,如直流-直流转换器和交流-直流电源适配器。 2. 开关模式电源(SMPS):在需要高效能和紧凑型尺寸的开关…

汽车悬架分为哪几类

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