Hadoop2.0探讨

文章目录

      • 8. Hadoop 再探讨
        • 8.1 Hadoop的优化与发展
        • 8.2 HDFS 的FA和Federation(Hadoop2.0新特性)
          • 8.2.1 HDFS HA
          • 8.2.2 HDFS Federation
        • 8.3 YARN
          • 8.3.1 MapReduce1.0的缺陷
          • 8.3.2 Yarn设计思路
          • 8.3.3 Yarn体系结构
          • 8.3.4 Yarn工作流程
          • 8.3.5 Yarn框架和MapReduce1.0框架对比分析
          • 8.3.6 Yarn框架的发展目标
        • 8.4 Hadoop生态系统中具有代表性的组件
          • 8.4.1 Pig
          • 8.4.2 Tez
          • 8.4.3 Spark和Kafka

8. Hadoop 再探讨

8.1 Hadoop的优化与发展
  • Hadoop1.0的局限和不足

    • 抽象层次低,需人工编码:编写一个非常简单的代码都需要人工编写MapReduce代码,进行编译打包运行
    • 表达能力有限:现实中的一些问题不是使用Map和Reduce就能完成的
    • 开发者需要自己管理作业(Job)之间的依赖关系:多个MapReduce任务之间的前后关系需要人工管理
    • 难以看到程序整体逻辑
    • 执行迭代操作效率低:每次迭代都需要将结果先写入到HDFS中,下一个MapReduce任务再从HDFS中读取数据
    • 资源浪费:整个任务执行过程中Map任务结束之后才能进行Reduce任务,导致Reduce一直处于空闲状态
  • Hadoop2.0的优化与发展

    • Hadoop自身两大核心组件,MapReduce和HDFS的架构设计改进
    • Hadoop生态系统其他组件的不断丰富,包括Pig、Tez、Spark和Kafka等
  • Hadoop1.0到Hadoop2.0对比

    image-20231010171751385

  • 不断完善的Hadoop生态系统

    image-20231010171906733

8.2 HDFS 的FA和Federation(Hadoop2.0新特性)
8.2.1 HDFS HA
  • 整体结构

    • 名称节点发生故障,则立即切换到待命节点
    • 共享存储系统保证(活跃)名称节点和(待命)名称节点的中保存信息的同步
    • 共享存储系统将活跃节点的Editlog不断的同步到待命节点

    image-20231010172530715

8.2.2 HDFS Federation
  • HDFS1.0中存在的问题

    • 单点故障问题:通过HA解决
    • 不可以水平扩展 :纵向扩展如加内存可能导致启动时间过长
    • 系统整体性能受限于单个名称节点的吞吐量:一秒钟可以接入多少外部节点还是由外部节点决定的
    • 单个名称节点难以提供不同程序之间的隔离性:一个程序消耗的资源非常大,可能导致另外的程序无法运行
    • HDFS HA是热备份,提供高可用性、但是无法解决可扩展性、系统性能和隔离性
  • HDFS Federation架构

    • 提供多个名称节点,由用户设置,名称节点之间彼此独立

    • Federation提供了向后的兼容性:单名称节点的应用程序可以无缝迁移到多名称节点

    • 所有的名称节点共享底层的数据节点

      image-20231010173845797

    • 通过用户挂载不同的命名空间,使用不同的名称节点,用户可以看到一个全局命名空间挂载表,用户可以看到每个子命名空间

      image-20231010174336426

  • HDFS Federation设计可解决单名称节点存在的问题

    • 集群扩展性问题:多个名称节点,每个名称节点可以独立的管理一个目录,让一个集群可以扩展到更多空间去
    • 性能更高效:多个名称节点各自管理数据,而且可以同时提供对外服务
    • 良好的隔离性:不同数据分给不同的名称节点去管理,有效的对应用程序进行隔离
8.3 YARN
8.3.1 MapReduce1.0的缺陷
  • 缺陷

    • 存在单点故障:只有一个JobTracker负责整个作业的管理调度

      image-20231010175118821

    • JobTracker"大包大揽"导致任务过重:资源管理调度分析、任务管理分配、任务监控以及失败的恢复

    • 容易出现内存溢出:只考虑MapReduce的任务数量,不考虑单个MapReduce任务消耗的资源,多个耗内存的任务一起执行,可能会导致内存溢出

    • 资源划分不合理:将资源等分为slot,Map的slot和Reduce的slot隔离,Map在运行时,Reduce的slot资源浪费

8.3.2 Yarn设计思路
  • 将JobTracker三大功能拆分

    image-20231010175713803

  • MapReduce1.0和Hadoop2.0

    • MapReduce1.0既是一个计算框架,也是一个资源调度框架
    • Hadoop2.0将MapReduce1.0中的资源管理调度功能单独分离出来,形成了YARN,使得Yarn成为了纯粹的资源管理调度框架
    • 而被剥离了资源管理调度功能的MapReduce框架就变成了MapReduce2.0,它是运行在Yarn上的纯粹计算框架,不再负责资源调度管理任务,而是由Yarn提供资源管理调度服务
8.3.3 Yarn体系结构
  • Yarn体系结构

    image-20231010192632194

  • Yarn各个组成部分作用

    • ResourceManager
      • 处理客户端请求
      • 启动/监控 ApplicaionMaster
      • 监控NodeManager
      • 资源分配与调度
    • ApplicationMaster
      • 为应用程序申请资源,并分配给内部任务
      • 任务调度、监控与容错(失败恢复)
      • 运行MapReduce所需要的资源(cpu)等由applicationMaster向ResourceManager申请
    • NodeManager
      • 是单个节点上的资源管理
      • 处理来自ResourceManager的命令
      • 处理来自ApplicationMaster的命令
  • ResourceManager作用、

    • ResourceManager包括了Scheduler(调度器)和Applications Manager(应用程序管理器)

      image-20231010193608662

    • 将内存资源以容器的形式分配,而不是以slot的形式分配

      image-20231010193904297

  • ApplicationMaster

    image-20231010194140334

    • ApplicationMaster的主要功能

      • 当用户作业提交时,ApplicationMater与ResourceManager协商获取资源,ResourceManager会以容器的形式给ApplicationMaster分配资源
      • 把获得的资源进一步分配给内部的各个任务(Map任务和Reduce任务),实现资源的“二次分配”
      • 与NodeManager保持交互通信进行应用程序的启动、运行、监控和停止,监控申请到的资源的使用情况,对所有任务的执行进度和状态进行监控,并在任务发生失败时执行失败恢复(即重新申请资源重启任务)
      • 定时向ResourceManager发送“心跳”信息,报告资源的使用情况和应用的进度信息
      • 当作业完成时,ApplicationMaster向ResourceMnager注销容器,执行周期完成
    • NodeManager:驻留在一个Yarn集群中的每一个节点的代理

      • 容器生命周期管理:容器具体运行Map任务或者Reduce任务,还可以支持其他的计算框架
      • 监控每个容器资源(CPU、内存等)使用情况
      • 跟踪节点健康状态
      • 以“心跳”的方式与ResourceManager保持通信
      • 向ResourceManager汇报作业的资源使用情况和每个容器的运行状态
      • 接受ApplicationMaster的启动/停止容器的各种请求
    • NodeManager的主要说明

      image-20231010195605400

  • YARN和Hadoop平台其他组件的统一部署

    image-20231010195755992

8.3.4 Yarn工作流程
  • Yarn提交作业之后的全流程执行过程

    • 用户编写客户端应用程序,向Yarn提交应用程序,提交内容包括:Applications Master程序、启动Applications Master命令、以及用户程序

      image-20231010200030626

    • ResourceManager负责接受和处理来自客户端请求

       image-20231010200221109

    • ApplicationMaster被创建会首先向ResourceManager注册:为了ResourceManager能够实时监控ApplicationMaster

      image-20231010200411906

    • ApplicationMaster向ResourceManager申请资源

      image-20231010200535296

    • ResourceManager以“容器”的形式向ApplicaionMaster分配资源

      image-20231010200655616

    • 资源二次分配,在容器中将资源分配给Map任务和Reduce任务

      image-20231010200830634

    • 各个任务向ApplicationMaster汇报自己的状态和进度

      image-20231010201042955

  • 应用承租运行完成,注销关闭ApplicationMaster

    image-20231010201141438

8.3.5 Yarn框架和MapReduce1.0框架对比分析
  • 大部分API以及接口是兼容的

    image-20231010201238686

  • Yarn相对于MapReduce1.0的优势

    • 大大减少了承担中心服务功能ResourceManager的资源消耗
    • ApplicationMaster来完成需要大量资源消耗的任务调度和监控
    • 多个作业对应多个ApplicationMaster,实现了监控分布化
    • MapReduce1.0既是一个计算框架,又是一个资源管理调度框架,但是,只能支持MapReduce编程模型
    • Yarn是一个纯粹的资源调度管理框架,在它上面可以运行包括MapReduce在内的不同类型的计算框架,只要编程实现相应的ApplicationMaster.
    • Yarn中的资源管理比MapReduce1.0更高效,以容器为单位,而不是以slot为单位
8.3.6 Yarn框架的发展目标
  • 目标:在一个Yarn上运行多个计算框架

    image-20231010202132949

  • 为什么要实现“一个集群多个框架”?

    image-20231010202251106

    • 为了避免不同类型的应用之间互相干扰,企业需要把内部的服务器拆分成多个集群,分别安装运行不同的计算框架,“即一个框架一个集群”

      • 但是这样导致集群资源利用率低
      • 数据无法共享
      • 维护代价高
    • Yarn的实现优势

      image-20231010202736590

    • Yarn上部署各种计算框架

      image-20231010202840148

8.4 Hadoop生态系统中具有代表性的组件
8.4.1 Pig
  • Pig简要介绍

    image-20231010203117223

    image-20231010203149723

  • Pig提供的相关操作

    • 过滤,分组,连接,排序等
  • Pig的优势

    image-20231010203307471

  • Pig能做什么?

    • 加载数据,表达转换数据,存储最终结果

      image-20231010203419592

    • 企业将数据收集通过Pig进行数据加工:对收集过来的数据进行抽取、转换、加载,之后再放入数据仓库(Hive)

      image-20231010203607711

    • Pig Latin的应用程序实例

    image-20231010203830006

    • 将执行代码转换为流程图,使用MapReduce解决

      image-20231010203913989

  • Pig的应用场景

    image-20231010204557530

  • Pig的主要用户

    image-20231010204629960

8.4.2 Tez
  • Tez框架简要介绍

    image-20231010204721729

  • Tez将Map和Reduce拆分成更细粒度的字任务

    image-20231010204854402

    • 分解后的元操作可以任意灵活组合,产生新的操作
    • 经过一些控制程序组装后,可以形成一个大的DAG作业
    • 通过DAG作业的方式运行MapReduce作业,提供程序运行的整体处理逻辑
    • Hortonworks把Tez应用到数据仓库Hive的优化中,使得性能提升了约100倍
  • HiveQL在MapReduce和Tez中的执行情况对比

    • 在MapReduce中三次写入HDFS的行为降低性能

    image-20231010205334881

    • Tez的优化主要体现在
      • 去除连续两个作业之间的“写入HDFS”
      • 去除每个工作流中多余的Map阶段
  • Tez可应用于多个框架

    image-20231010205739565

  • Tez在Hadoop生态系统中的作用

    image-20231010205809967

  • Tez+Hive与Impala、Dremel、Drill区别

    image-20231010205959262

8.4.3 Spark和Kafka
  • Hadoop缺陷

    image-20231010210054034

  • Spark的优势

    image-20231010210147242

  • Kafka

    • 一种高吞吐量的分布式发布订阅消息系统,用户通过Kafka系统可以发布大量的消息,同时也能实时订阅消费消息
    • 可以同时男足在线实时处理和批量离线处理
  • Kafka作用

    image-20231010210349285

image-20231010210529435

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asp.net酒店餐饮管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net酒店餐饮管理系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 ASP.NE 酒店餐饮管理系统 二、功能…

AMD AFMF不但能用在游戏,也适用于视频

近期AMD发布了AMD Software Adrenalin Edition预览版驱动程序,增加了对平滑移动帧(AMD Fluid Motion Frames,AFMF)功能的支持,也就是AMD的“帧生成”技术,与DLSS 3类似,作为FidelityFX Super Re…

毅速丨模具3D打印材料有哪些选择

当前1.2709和CX是市面上最常用的3D打印模具钢材料,模具3D打印有没有更多的材料选择呢? 据了解,上海毅速推出的几款3D打印新材料正在被越来越多的行业所采用。如毅速的EM191S高性能高抛光不锈钢粉末,这款材料的抗开裂和耐腐蚀性能是…

LeetCode【240】搜索二维矩阵

题目&#xff1a; 思路&#xff1a; 1、单靠对角线元素无法判定位置 2、主要逐行进行二分 代码&#xff1a; public boolean searchMatrix(int[][] matrix, int target) {int rows matrix.length;int columns matrix[0].length;// 按行进行二分for (int i 0; i < rows…

与HTTP相关的各种概念

网络世界 网络世界中最重要的一个名词就是互联网&#xff08;Internet&#xff09;,它以TCP/IP协议族为基础&#xff0c;构建成了一望无际的信息传输网络。而我们通常所说的“上网”&#xff0c;主要就是访问互联网的一个子集——万维网&#xff08;World Wide Web&#xff09…

MDK自动生成带校验带SVN版本号的升级文件

MDK自动生成带校验带SVN版本号的升级文件 获取SVN版本信息 确保SVN安装了命令行工具&#xff0c;默认安装时不会安装命令行工具 编写一个模板头文件 svn_version.temp.h, 版本号格式为 1_0_0_SVN版本号 #ifndef __SVN_VERSION_H #define __SVN_VERSION_H#define SVN_REVISIO…

网络-HTTPS

文章目录 前言一、HTTPS简介优点SSL/TSL工作流程 加密1、对称加密2、非对称加密 二、使用HTTPS1.openSSL生成私钥&#xff08;1&#xff09;node服务端&#xff08;2&#xff09;nginx配置https服务&#xff08;前端&#xff09; nginx服务 总结 前言 Http 存在不安全、无状态…

[数据结构]——单链表超详细总结

带你走进链表的世界 目录&#xff1a;一、线性表的概念二、顺序表三、链表3.1 链表的概念3.2 链表的分类3.3 无头单向非循环链表的实现3.4 带头双向循环链表的实现 四、顺序表和链表的区别和联系 目录&#xff1a; 链表是个优秀的结构&#xff0c;没有容量概念&#xff0c;可以…

基于PHP的芒果销售交易平台

有需要请加文章底部Q哦 可远程调试 基于PHP的芒果销售交易平台 一 介绍 芒果销售交易平台基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。用户可注册登录&#xff0c;购物下单&#xff0c;评论等。管理员登录后台可对芒果&#xff0c;用户&#xff0c;订…

解决win10因为WSL问题无法正常启动docker

解决win10无法成功启动dockerdesktop因为WSL问题无法启动 问题起因解决方法 问题起因 因为需要在windows复现一个CVE漏洞&#xff0c;就需要安装在WIN10上装docker&#xff0c;但是在启动的时候出现下面报错。 然后查了一下是因为WSL的版本太低了。更新以后发现打开docker仍然…

【PyTorch2 之027】在 PyTorch 中的R-CNN、Fast R-CNN和 Faster R-CNN

一、说明 亮点&#xff1a;对象检测是计算机视觉中最重要的任务之一。在这篇文章中&#xff0c;我们将概述最有影响力的对象检测算法家族之一&#xff1a;R-CNN、Fast R-CNN 和 Faster R-CNN。我们将重点介绍它们中的每一个的主要新颖性和改进。 最后&#xff0c;我们将专注于 …

【SOA-KELM分类】基于海鸥算法优化核极限学习机分类研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【C/C++数据结构 - 2】:稳定性与优化揭秘,揭开插入排序、希尔排序和快速排序的神秘面纱!

文章目录 排序的稳定性插入排序插入排序的优化 希尔排序快速排序 排序的稳定性 稳定排序&#xff1a;排序前2个相等的数在序列中的前后位置顺序和排序后它们2个的前后位置顺序相同。&#xff08;比如&#xff1a;冒泡、插入、基数、归并&#xff09; 非稳定排序&#xff1a;排…

商品API接口优秀案例 │ 国家电网办公物资电商化采购项目API解决方案

苏宁易购集团股份有限公司&#xff08;以下简称“苏宁”&#xff09;作为中国领先的O2O智慧零售商&#xff0c;在互联网、物联网、大数据盛行的时代&#xff0c;持续推进智慧零售和线上线下融合战略&#xff0c;全品类经营&#xff0c;全渠道运营&#xff0c;开放苏宁物流云、数…

video_topic

使用qt5,ffmpeg6.0,opencv&#xff0c;os2来实现。qt并非必要&#xff0c;只是用惯了。 步骤是&#xff1a; 1.读取rtsp码流&#xff0c;转换成mat图像 2.发送ros::mat图像 项目结构如下&#xff1a; videoplayer.h #ifndef VIDEOPLAYER_H #define VIDEOPLAYER_H#include …

机器学习笔记 - 车道检测的几种深度学习方法

一、简述 人们在打造自动驾驶汽车时首先想到的就是实现车道检测。这是 Tesla 和 mobileye 所说的“强制性”任务,也是 Sebastian Thrun(自动驾驶汽车教父)在接受采访时所说的首要任务。 这个方向有很多传统的 OpenCV 算法,这些算法由不再使用的非常旧的函数组成。目前全部都…

LabVIEW玩转魔方

LabVIEW玩转魔方 使用LabVIEW创建一个3D魔方&#xff0c;并找出解谜题的秘密&#xff0c;给朋友留下深刻深刻的印象。游戏中内置的机制使每张脸都能独立转动&#xff0c;从而混合颜色。要解决难题&#xff0c;每个面必须是相同的纯色 魔方的奥秘在于它的简单性和不可解性。这是…

基于springboot实现音乐网站与分享平台项目【项目源码+论文说明】

摘要 本论文主要论述了如何使用JAVA语言开发一个音乐网站与分享平台 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述音乐网站与分享平台的当前背景以及系统开…

Python 人工智能 Machine Learning 机器学习基础知识点详细教程(更新中)

Artificial Intelligence 人工智能基本介绍 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它试图了解智能的实质&#xff0c;并生产出一种新的能以人类智…

VMware使用ubuntu安装增强功能实现自动缩放

VMware使用ubuntu安装增强功能实现自动缩放 1.下载 VMware Tools2.安装tool 1.下载 VMware Tools 1.需要先弹出DVD 2.虚拟机-安装VMware Tools 进入终端 3.把media下的VMware压缩包拷贝到home/下 4.去home下解压 2.安装tool 进入vmware-tools-distrib sudo ./vmware-ins…