Hadoop2.0探讨

这篇具有很好参考价值的文章主要介绍了Hadoop2.0探讨。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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对比

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

  • 不断完善的Hadoop生态系统

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

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

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

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

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

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

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

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

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

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

  • MapReduce1.0和Hadoop2.0

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

  • Yarn各个组成部分作用

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

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

  • ApplicationMaster

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

    • ApplicationMaster的主要功能

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

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

    • ApplicationMaster向ResourceManager申请资源

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

  • Yarn相对于MapReduce1.0的优势

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

    • Yarn上部署各种计算框架

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

  • Pig提供的相关操作

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

  • Pig能做什么?

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

    • Pig Latin的应用程序实例

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

      Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

  • Pig的应用场景

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

  • Pig的主要用户

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

8.4.2 Tez
  • Tez框架简要介绍

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

8.4.3 Spark和Kafka
  • Hadoop缺陷

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

  • Spark的优势

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

  • Kafka

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

    Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据

Hadoop2.0探讨,大数据应用,hadoop,hadoop,大数据文章来源地址https://www.toymoban.com/news/detail-726448.html

到了这里,关于Hadoop2.0探讨的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Hadoop实战】Windows环境下编译Hadoop2(2.10.2-R0)

    前提 根据Hadoop源码包解压之后编译帮助文件 BUILDING.txt 中关于windows的要求来准备环境 本机环境 JDK1.8 Windows 10 64位专业版 maven 3.9.2 git 2.41.0 ProtocolBuffer 2.5.0 这个要求要满足不然有报错(Github地址) cmake 2.36.4 Visual Studio 2022 Professional cygwin 安装包 IDEA 2022.2.5 编译方式 使用VS2022的

    2024年02月11日
    浏览(55)
  • Hadoop2复安装过程详细步骤

    1、在vmware中更改了虚拟机的网络类型,---NAT方式,(虚拟交换机的ip可以从vmvare的edit--vertual network editor看到) 2、根据这个交换机(网关)的地址,来设置我们的客户端windows7的ip(Vmnet8这块网卡) 3、启动linux主机,修改linux系统的ip地址(通过图形界面修改),修改完成之后在

    2024年02月07日
    浏览(41)
  • hadoop2.2.0伪分布式搭建

    1.准备Linux环境     1.0点击VMware快捷方式,右键打开文件所在位置 - 双击vmnetcfg.exe - VMnet1 host-only -修改subnet ip 设置网段:192.168.1.0 子网掩码:255.255.255.0 - apply - ok         回到windows -- 打开网络和共享中心 - 更改适配器设置 - 右键VMnet1 - 属性 - 双击IPv4 - 设置windows的IP:192

    2024年02月09日
    浏览(40)
  • hadoop2.4.1伪分布式搭建

    1.准备Linux环境     1.0点击VMware快捷方式,右键打开文件所在位置 - 双击vmnetcfg.exe - VMnet1 host-only -修改subnet ip 设置网段:192.168.1.0 子网掩码:255.255.255.0 - apply - ok         回到windows -- 打开网络和共享中心 - 更改适配器设置 - 右键VMnet1 - 属性 - 双击IPv4 - 设置windows的IP:192

    2024年02月07日
    浏览(49)
  • hadoop2.6.4伪分布式搭建

    1、jdk的安装与配置         解压jdk到我需要的目录                 tar -zxf jdk-8u333-linux-x64.tar.gz -C /home/hadoop/soft-install/bigdata/         配置环境变量                 vi /etc/profile                 export JAVA_HOME=/home/hadoop/soft-install/bigdata/jdk1.8.0_333     

    2024年02月06日
    浏览(39)
  • 【云计算】Hadoop2.x完全分布式集群(入门)

    【虚拟机】VMware Workstation 16 Pro 【镜像】CentOS-7-x86_64-DVD-1804.iso 【java】jdk-8u281-linux-x64.rpm 【Hadoop】hadoop-2.7.1.tar.gz 【SSH远程】SecureCRTPortable.exe 【上传下载】SecureFXPortable.exe 配网卡ens33 重启网络 私钥、公钥 克隆、改名、改IP 三台机都要做:👇 生成密钥 密钥发送 登录测试 had

    2024年04月12日
    浏览(44)
  • HDFS HA 集群搭建 - 基于Quorum Journal Manager(hadoop2.7.1)

    在Hadoop分布式文件系统(HDFS)中,检查点(Checkpointing)是一个关键的过程,它涉及到将文件系统的命名空间状态持久化到磁盘。这个状态由两部分组成:EditLogs和FsImage。 EditLogs:记录了自FsImage生成后对文件系统所做的所有修改。每次对文件系统的修改都会追加到EditLogs中。

    2024年01月16日
    浏览(45)
  • 华为云云耀云服务器L实例评测|伪分布式环境下部署hadoop2.10.1

    #【中秋征文】程序人生,中秋共享# 这是Maynor创作的华为云云耀云服务器L实例测评的第二篇,上篇传送门: 华为云云耀云服务器L实例评测|单节点环境下部署ClickHouse21.1.9.41数据库 云耀云服务器L实例简介 ​ 云耀云服务器L实例 是新一代的轻量应用云服务器,专门为中小企业

    2024年02月07日
    浏览(35)
  • hadoop大数据原理与应用-----初识hadoop习题集

    Hadoop的配置文件主要是`hadoop-env.sh`和`yarn-env.sh`,这两个文件位于Hadoop安装目录的`etc/hadoop`目录下。 1. `hadoop-env.sh`:在这个文件中,您可以配置Hadoop的环境变量,包括JAVA_HOME。通常,在这个文件中会有一个关于JAVA_HOME的配置项,您可以直接修改这个配置项来指定Java的安装路径

    2024年04月26日
    浏览(38)
  • 数据挖掘实验:使用 Hadoop 实现 WordCount 应用

    使用 Hadoop 实现WordCount 应用。 WordCount 是一个最简单的分布式应用实例,主要功能是统计输入目录中所有单词出现的总次数,如文本文件中有如下内容: Hello world 则统计结果应为: Hello 1 world 1 WordCount 可以使用多种方式实现,本次实验内容选择使用 Hadoop 实现 WordCount 程序,并

    2023年04月17日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包