大数据技术原理与应用学习笔记(八)

  • 本系列历史文章
  • Hadoop再探讨
    • Hadoop的优化与发展
      • Hadoop1.0到Hadoop2.0
      • 不断完善的Hadoop生态系统
    • HDFS2.0新特性
      • HDFS HA(高可用性)
      • HDFS Federation
    • YARN——新一代资源管理调度框架
      • MapReduce1.0中的缺陷
      • YARN设计思路
      • YARN体系结构
        • ResourceManager
        • ApplicationMaster
        • NodeManager
      • YARN的工作流程
      • 与MapReduce1.0的对比
      • YARN的发展目标
    • Hadoop生态系统中具有代表性的功能组件
      • Pig
        • Pig的概念与特点
        • Pig的应用场景
      • Tez
        • Tez的概念与特点
      • Spark和Kafka
        • Spark
        • Kafka

本系列历史文章

大数据技术原理与应用学习笔记(一)
大数据技术原理与应用学习笔记(二)
大数据技术原理与应用学习笔记(三)
大数据技术原理与应用学习笔记(四)
大数据技术原理与应用学习笔记(五)
大数据技术原理与应用学习笔记(六)
大数据技术原理与应用学习笔记(七)

Hadoop再探讨

Hadoop的优化与发展

在Hadoop1.0中仍存在很多不足:

  • 抽象层次低,需人工编码
  • 表达能力有限
  • 开发着自己管理Job间的依赖关系
  • 难以看到程序的整体逻辑
  • 执行迭代效率低
  • 资源浪费
  • 实时性差
    采取的改进措施如下:
  • 改进自身的核心组件(MapReduce和HDFS)
  • 其他组件的不断丰富(Pig、Tez、Spark、Kafka)

Hadoop1.0到Hadoop2.0

Hadoop更新到2.0后,以下方面做出了很大更新:
HDFS:

  • 由原来的单一名称节点(存在单点失效问题),增添设计了HDFS HA,提供名称节点热备份机制;
  • 由原来的单一命名空间(存在无法实现资源管理),增添设计了HDFS Federation来管理多个命名空间。
    MapReduce:
  • 由原来的资源管理效率低,增添设计了管理框架YARN。

不断完善的Hadoop生态系统

在Hadoop的优化和发展中,越来越多的组件被包含在Hadoop生态系统中,使得Hadoop平台的性能提升许多。

组件 功能
Pig 处理大规模数据的脚本语言,用户只需编写几条语句,系统会自动转换为MapReduce作业(可用来解决需人工编码的不足)
Spark 基于内存的分布式并行编程框架,具有较高的实时性,并且较好的支持迭代计算(可用来解决迭代效率低的不足)
Oozie 工作流和协作服务引擎,协调Hadoop上运行的不同任务(解决开发者自己管理Job间依赖关系的不足)
Tez 支持DAG作业的计算,对作业的操作进行重新分解和组合,形成DAG作业,减少不必要的操作(解决重复操作的不足)
Kafka 分布式发布订阅消息系统,一般作为企业大数据分析平台的数据交换枢纽,不同类型的分布式系统可以接入到Kafka,实现和Hadoop各组件之间不同类型数据的实时高效交换(解决了Hadoop组件和其他产品间缺乏统一、搞笑的数据交换中介)

HDFS2.0新特性

HDFS HA(高可用性)

HDFS HA(High Availability)是为了解决单点故障问题。HA集群设置两个名称节点,“活跃(Active)”和“待命(Standby)”。两种名称节点的状态同步,可以借助于一个共享存储系统来实现。一旦活跃名称节点出现故障,就可以立即切换到待命名称节点。Zookeeper确保一个名称节点在对外服务。名称节点维护映射信息,数据节点同时向两个名称节点汇报信息。

HDFS Federation

在Hadoop1.0中,仍然存在以下问题:

  • 不可水平扩展;
  • 单点故障(由HDFS HA解决);
  • 系统整体性能受单个名称节点吞吐量限制;
  • 单个名称节点难以提供不同程序间隔离性。

由此设计出了HDFS Federation,其设计了多个相互独立的名称节点,使HDFS命名空间可以横向扩展,不是真正的分布式设计,但远低于分布式设计的复杂性等。
所有名称节点共享底层数据节点的存储资源,拥有多个独立命名空间管理属于自己的一组块(块池)。
采取客户端挂载表访问
比Hadoop1.0的优势:

  • HDFS集群可扩展性
  • 系统整体性能高
  • 良好的隔离性

YARN——新一代资源管理调度框架

MapReduce1.0中的缺陷

  • 存在单点故障
  • JobTracker“大包大揽”任务过重
  • 容易出现内存溢出
  • 资源划分不合理

YARN设计思路

将原来的JobTracker拆分(原Master端)

  • 资源管理→ResourceManager
  • 任务调度→ApplicationMaster
  • 任务监控→ApplicationMaster

YARN体系结构

ResourceManager

  • 处理客户端请求
  • 启动、监控ApplicationMaster
  • 资源分配与调度
  • 监控NodeManager

ApplicationMaster

  • 为应用程序申请资源,并分配给内部任务
  • 任务监控、调度与容错

NodeManager

  • 单个节点上的资源管理
  • 处理来自ResourceManager的命令
  • 处理来自ApplicationMaster的命令

YARN的工作流程

  • 首先由用户编写客户端应用程序,向YARN提交;
  • YARN中,ResourceManager 负责接受和处理来自客户端的请求,为其分配一个容器,并在其中启动一个ApplicationMaster;
  • 启动后,向ResourceManager注册;
  • ApplicationMaster轮询向ResourceManager申请资源;
  • ResourceManager以“容器”形式向ApplicationMaster申请资源;
  • 在容器中启动任务(二次分配后)
  • 各任务向ApplicationMaster汇报自己的状态和进度;
  • 运行完成后ApplicationMaster向ResourceManager的应用程序管理器注销并关闭自己。

与MapReduce1.0的对比

优势:

  • YARN减少了中心服务功能ResourceManager的资源消耗
  • YARN是纯粹的资源调度管理框架
  • YARN中的资源管理比MapReduce1.0更加高效

YARN的发展目标

实现 “一个集群,多个框架”

Hadoop生态系统中具有代表性的功能组件

Pig

Pig的概念与特点

  • 提供了类似SQL的Pig Latin语言,允许用户通过编写简单的脚本来实现复杂的数据分析,而不需要编写复杂的MapReduce应用程序
  • Pig会自动把用户编写的脚本转换成MapReduce作业在Hadoop集群上运行,而且具备对生成的MapReduce程序进行自动优化的功能(用户在编写Pig程序的时候,不需要关心程序的运行效率,这就大大减少了用户编程时间)
  • 通过配合使用Pig和Hadoop,在处理海量数据时就可以实现事半功倍的效果,比使用Java、C++等语言编写MapReduce程序的难度要小很多,并且用更少的代码量实现了相同的数据处理分析功能

Pig的应用场景

  • 数据查询只面向相关技术人员
  • 即时性的数据处理需求,这样可以通过pig很快写一个脚本开始运行处理,而不需要创建表等相关的事先准备工作

Tez

Tez的概念与特点

  • Tez是Apache开源的支持DAG作业的计算框架,它直接源于MapReduce框架
  • 核心思想是将Map和Reduce两个操作进一步拆分(Map被拆分成Input、Processor、Sort、Merge和Output) Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等
  • 分解后的元操作可以任意灵活组合,产生新的操作。这些操作经过一些控制程序组装后,可形成一个大的DAG作业
  • 通过DAG作业的方式运行MapReduce作业,提供了程序运行的整体处理逻辑,就可以去除工作流当中多余的Map阶段,减少不必要的操作,提升数据处理的性能

Spark和Kafka

Spark

Spark最初诞生于伯克利大学的APM实验室,是一个可应用于大规模数据处理的快速、通用引擎,如今是Apache软件基金会下的顶级开源项目之一。Spark在借鉴Hadoop MapReduce优点的同时,很好地解决了MapReduce所面临的问题。Spark最大的特点是内存计算,带来了更高的迭代运算效率
其基于DAG的任务调度执行机制,优于MapReduce的迭代执行机制。所以当前,Spark正以其结构一体化、功能多元化的优势,逐渐成为当今大数据领域最热门的大数据计算平台。关于Spark后面的学习笔记还会提到。

Kafka

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

大数据技术原理与应用学习笔记(八)相关推荐

  1. 《大数据技术原理与应用》笔记

    一.大数据概述 大数据的特征(4V): 1.Volume,数据量大 2.Variety,数据类型多 大数据由结构化和非结构化数据组成: 10%的结构化数据,存储在数据库中: 90%的非结构化数据,与人 ...

  2. 关于大数据技术原理与应用的学习(6)

    学习目标: 大数据技术原理与应用 学习内容: 6云数据库 6.1概述 6.2产品 6.3UMP系统 6.4Amazon云数据库 6.5微软云数据库SQL Azure 学习时间: 2022/03/31 ...

  3. 关于大数据技术原理与应用的学习(1)

    学习目标: 大数据技术原理与应用 学习内容: 大数据概述 1.1大数据时代 1.2大数据的概念和影响 1.3大数据的应用 1.4大数据的关键技术 1.5大数据与云计算.物联网的关系 学习时间: 202 ...

  4. 关于大数据技术原理与应用的学习(4)

    学习目标: 大数据技术原理与应用 学习内容: 分布式数据库HBase 4.1HBase简介 4.2HBase数据模型 4.3HBase实现原理 4.4HBase运行机制 4.5HBase应用方案 4. ...

  5. 关于大数据技术原理与应用的学习(3)

    学习目标: 大数据技术原理与应用 学习内容: 分布式文件系统HDFS 3.1HDFS简介 3.2HDFS相关概念 3.3HTFS体系结构 3.4HTFS存储元原理 3.5HDFS数据读写 3.6HDF ...

  6. 关于大数据技术原理与应用的学习(5)

    学习目标: 大数据技术原理与应用 学习内容: 5.NoSQL数据库 例如: 5.1NoSQL数据库 5.2与关系数据库的比较 5.3四大类型 5.4理论基石 5.5从NoSQL到NewSQL 5.6文 ...

  7. 大数据第二阶段Python基础编程学习笔记(待完善)

    大数据第二阶段Python基础编程学习笔记(待完善) 第一章 Python基础语法 3.8 1-1Python概述 python基础部分: ●Python基础语法: 标识符,关键字,变量,判断循环.. ...

  8. [渝粤教育] 厦门大学 大数据技术原理与应用 参考 资料

    教育 -大数据技术原理与应用-章节资料考试资料-厦门大学[] 第1章 大数据概述 单元测验 1.[单选题]第三次信息化浪潮的标志是: A.个人电脑的普及 B.互联网的普及 C.云计算.大数据.物联网技 ...

  9. 大数据技术原理与应用课后题(林子雨)

    大数据技术原理与应用(林子雨) 第1章 大数据概述 1单选(2分) 第三次信息化浪潮的标志是: A.个人电脑的普及 B.云计算.大数据.物联网技术的普及 C.虚拟现实技术的普及 D.互联网的普及 正确 ...

  10. 大数据技术原理与应用 第一篇 大数据基础

    目录 第一章 大数据概述 一. 大数据时代 1.1 三次信息化浪潮 1.2 信息科技发展 1.3 数据产生方式的变革 1.4 大数据的影响 二. 大数据的概念 2.1 大数据的特征 2.2 大数据关键 ...

最新文章

  1. YOLOV4各个创新功能模块技术分析(一)
  2. hdu-5778 abs(暴力枚举)
  3. 如何使用ModelSim作前仿真與後仿真? (真oo无双前辈)
  4. Lambda表达式介绍
  5. Uncaught TypeError: Cannot read property 'style' of null
  6. 何时使用[self release]
  7. 树的合并(ybtoj-树上dp)
  8. 2015年《大数据》读者意见调查问卷
  9. python中索引和下标_Series下标索引、标签索引、切片索引、布尔索引
  10. oracle中的中文排序,Oracle中的中文排序方式
  11. python语言基础笔记_Python语言 基础知识笔记
  12. 螃蟹保存方法保存时间_蜂巢蜜应该怎么保存,蜂巢蜜怎么保存的时间更长
  13. mapgis二次开发教程
  14. Html监听Fbx文件加载,一些three.js的基础——加载FBX模型
  15. iPhone屏幕尺寸(包含7p)
  16. 软件测试架构师——众里寻她千百度
  17. 用Android和node.js实现扫码登录
  18. 多元函数牛顿法求函数极小值
  19. spring学习-4-事务
  20. 多个点坐标存储在str中,如何转换成LineString?

热门文章

  1. unity shader可视化工具——Shader Graph
  2. 靠政府补贴实现华丽财报的科大讯飞,它背后蕴含着怎样的生机
  3. 浏览器插件开发--获取淘宝的品牌类型
  4. 番茄花园xp开机音乐_抱歉,Windows XP的开机音乐骗了你20年
  5. 计算机制作ppt教程,电脑制作ppt详细步骤_新手制作ppt详细步骤图文教程
  6. LoadRunner11下载、安装与破解
  7. 虚拟偶像出道,技术「造星」推动下的粉丝经济
  8. 百度网盘偷偷更新,终于实现免费不限速了!
  9. 手机测试耳机音质的软件,10首曲目,测试出你耳机的真实水平!——教你简单快速测出你的耳机音质究竟怎么样?...
  10. 七段式svpwm和5段式的区别_SVPWM实现概述