【大数据】Hadoop 生态系统及其组件

2023-11-13

1.Hadoop 生态系统的组成

本篇文章将向大家介绍 Hadoop 生态系统的不同组件。也正是因为这些组件,使得 Hadoop 如此强大。通过学习 HDFS 和 HDFS组件MapReduceYARNHivePigHBase 和 HBase组件HCatalogAvroThriftDrillMahoutSqoopFlumeAmbariZookeeperOOzie 等 Hadoop 生态系统组件,深入了解 Hadoop 生态系统。

在这里插入图片描述

2.Hadoop 生态系统简介

2.1 HDFS

HDFS 是一个基于 Java 的 Hadoop 分布式文件系统Hadoop Distributed File System),是 Hadoop 生态系统中最重要的组成部分。HDFS 是 Hadoop 的主要存储系统,为大数据提供可扩展的、高容错的、可靠的和具有成本效益的数据存储。

HDFS 被设计用来部署在低廉的硬件上,在许多安装中已经被设为默认配置。它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。Hadoop 通过类似 Shell 的命令与 HDFS 直接交互。

HDFS 有两个主要组件:NameNodeDataNode

在这里插入图片描述
(1)NameNode

NameNode 也被称为主节点,但它并不存储实际的数据或数据集。NameNode 存储的是元数据,即文件的权限、某一上传文件包含哪些 Block 块、Bolck 块保存在哪些 DataNode 上等细节信息。它由文件和目录组成。

NameNode 的任务:

  • 管理文件系统的命名空间;
  • 控制客户端对文件的访问;
  • 操作文件命名空间的文件或目录操作,如打开,关闭,重命名等。

(2)DataNode

DataNode 负责将实际数据存储在 HDFS 中,并负责来自文件系统客户的读写请求。在启动时,每个 Datanode 连接到其相应的 Namenode 并进行握手。命名空间 ID 和 DataNode 的软件版本的验证是通过握手进行的。当发现不匹配时,DataNode 会自动关闭。

DataNode 的任务

  • DataNode 管理存储的数据。
  • DataNode 同时还要执行块的创建、删除,以及来自 NameNode 的块复制指令。

2.2 MapReduce

MapReduce 是 Hadoop 生态系统的核心组件,提供数据处理。MapReduce 是一个软件框架,用于轻松编写应用程序,处理存储在 Hadoop 分布式文件系统中的大量结构化和非结构化数据。

MapReduce 程序具有并行性质,因此对于使用集群的多台机器进行大规模数据分析非常有用,提高了计算速度和可靠性。

在这里插入图片描述
MapReduce 的每个阶段都有键值对作为输入和输出。Map 函数获取一组数据并将其转换为另一组数据,其中各个元素被分解为元组(键/值对)。函数将 Map 的输出作为输入,并根据键来组合这些数据元组,相应地修改键的值。

MapReduce的特点

  • 简单性:MapReduce 作业很容易运行。应用程序可以用任何语言编写,如 Java、C++ 和 Python。
  • 可扩展性:MapReduce 可以处理 PB 级的数据。
  • 速度:通过并行处理,需要几天才能解决的问题,通过 MapReduce 在几小时和几分钟内就能解决。
  • 容错性:MapReduce 会照顾到故障。如果一份数据不可用,另一台机器有一份相同密钥对的副本,可以用来解决相同的子任务。

2.3 YARN

YARNYet Another Resource Negotiator)作为一个 Hadoop 生态系统的组件,它提供了资源管理。YARN 也是 Hadoop 生态系统中最重要的组件之一。YARN 被称为 Hadoop 的操作系统,因为它负责管理和监控工作负载。它允许多个数据处理引擎(如实时流和批处理)来处理存储在一个平台上的数据。

在这里插入图片描述

  • 灵活性:除了 MapReduce(批处理),还能实现其他专门的数据处理模式,如交互式和流式。由于 YARN 的这一特点,其他应用程序也可以在 Hadoop2 中与 MapReduce 程序一起运行。
  • 效率:由于许多应用程序在同一个集群上运行,因此,Hadoop 的效率提高了,而对服务质量没有太大影响。
  • 共享:提供一个稳定、可靠、安全的基础,并在多个工作负载中共享操作服务。

2.4 Hive

Hive 是一个开源的数据仓库系统,用于查询和分析存储在 Hadoop 文件中的大型数据集。Hive 主要做三个功能:数据汇总、查询和分析

Hive 使用的语言称为 HiveQL(HQL),与 SQL 类似。HiveQL 自动将类似 SQL 的查询翻译成 MapReduce 作业,并在Hadoop上执行

在这里插入图片描述
Hive 的主要部分

  • Metastore:元数据存储。
  • 驱动:管理 HiveQL 语句的生命周期。
  • 查询编译器:将 HiveQL 编译成有向无环图(DAG)。
  • Hive 服务器:提供一个 Thrift 接口和 JDBC / ODBC 服务器。

2.5 Pig

Pig 是一个高级语言平台,用于分析和查询存储在 HDFS 中的巨大数据集。Pig 作为 Hadoop 生态系统的一个组成部分,使用 PigLatin 语言,它与 SQL 非常相似。它的任务包括加载数据,应用所需的过滤器并以所需的格式转储数据。对于程序的执行,Pig 需要 Java 运行环境。

在这里插入图片描述
Apache Pig 的特点

  • 可扩展性:为了进行特殊的处理,用户可以创建自己的功能。
  • 优化机会:Pig 允许系统自动执行优化,这使得用户可以关注语义而不是效率。
  • 处理所有种类的数据:Pig 既能分析结构化的数据,也能分析非结构化的数据。

2.6 HBase

HBase 是 Hadoop 生态系统的一个组成部分,它是一个分布式数据库,被设计用来在可能有数十亿行和数百万列的表中存储结构化数据。HBase 是一个建立在 HDFS 之上,可扩展的、分布式的 NoSQL 数据库。HBase 提供实时访问 HDFS 中的数据的读取或写入。

在这里插入图片描述
HBase 有两个组件,即 HBase MasterRegionServer

(1)HBase Master

  • 它不是实际数据存储的一部分,但在所有 RegionServer 之间协商负载平衡。
  • 维护和监控 Hadoop 集群。
  • 执行管理(创建、更新和删除表的界面)。
  • 控制故障转移。
  • 处理DDL操作。

(2)RegionServer

  • 处理来自客户端的读、写、更新、删除请求。
  • RegionServer 进程在 Hadoop 集群的每个节点上运行。RegionServer 运行在 HDFS 的 DateNode 上。

2.7 HCatalog

HCatalog 是 Hadoop 的一个表和存储管理层。HCatalog 支持 Hadoop 生态系统中的不同组件,如MapReduce、Hive 和 Pig,以方便从集群中读写数据。HCatalog 是 Hive 的一个关键组件,使用户能够以任何格式和结构存储他们的数据。默认情况下,HCatalog 支持 RCFileCSVJSONsequenceFileORC 文件格式。

2.8 Avro

Acro 是 Hadoop 生态系统的一部分,是一个最流行的数据序列化系统,为 Hadoop 提供 数据序列化和数据交换服务。这些服务可以一起使用,也可以独立使用。大数据可以使用 Avro 交换用不同语言编写的程序。

使用序列化服务,程序可以将数据序列化为文件或消息。它将数据定义和数据一起存储在一个消息或文件中,使得程序可以很容易地动态理解存储在 Avro 文件或消息中的信息。

  • Avro 模式:它依靠模式进行序列化 / 反序列化。Avro 需要模式来进行数据的写入 / 读取。当 Avro 数据存储在一个文件中时,它的模式也随之存储。因此,文件可以在以后被任何程序处理。
  • 动态类型化:它指的是在不生成代码的情况下进行序列化和反序列化。它是对代码生成的补充,在 Avro 中,静态类型的语言可以作为一种可选的优化。

2.9 Thrift

Thrift 是一个用于可扩展的跨语言服务开发的软件框架,同时是一种用于 RPC(远程程序调用)通信的接口定义语言。Hadoop 做了大量的 RPC 调用,因此有可能出于性能或其他原因使用 Thrift。

在这里插入图片描述

2.10 Drill

Hadoop 生态系统组件的主要目的是大规模数据处理,包括结构化和半结构化数据。Drill 是一个低延迟的 分布式查询引擎,旨在扩展到几千个节点并查询 PB 级的数据。Drill 是第一个具有无模式模型的分布式 SQL 查询引擎。

Drill 有专门的内存管理系统,可以消除垃圾回收,优化内存分配和使用。Drill 与 Hive 发挥得很好,允许开发者重用他们现有的 Hive 部署。

  • 可扩展性:Drill 在各层提供可扩展的架构,包括查询层、查询优化和客户端 API。我们可以根据企业的具体需求来扩展任何一层。
  • 灵活性:Drill 提供了一个分层的列式数据模型,可以表示复杂的、高度动态的数据,并允许高效的处理。
  • 动态模式发现:Drill 不要求数据的模式或类型规范,以便开始查询执行过程。相反,Drill 以称为记录批次的单位开始处理数据,并在处理过程中即时发现模式。
  • Drill 分散的元数据:与其他 SQL Hadoop 技术不同,Drill 没有集中的元数据要求。Drill 用户不需要为了查询数据而在元数据中创建和管理表。

2.11 Mahout

Mahout 是用于创建可扩展的机器学习算法和数据挖掘库的开源框架。一旦数据被存储在 HDFS 中,Mahout 提供了数据科学工具来自动寻找这些大数据集中有意义的模式。

Mahout的算法包括

  • 聚类
  • 协同过滤
  • 分类
  • 频繁模式挖掘

2.12 Sqoop

Sqoop 将数据从外部来源导入相关的 Hadoop 生态系统组件,如 HDFS、Hbase 或 Hive。它还可以将数据从 Hadoop 导出到其他外部来源。Sqoop 与关系型数据库一起工作,如 Teradata、Netezza、Oracle、MySQL。

在这里插入图片描述
Sqoop 的特点:

  • 从大型机导入顺序数据集:Sqoop 满足了将数据从大型机转移到 HDFS 的日益增长的需求。
  • 直接导入 ORC 文件:改善压缩和轻量级索引,提高查询性能。
  • 平行数据传输:实现更快的性能和最佳的系统利用率。
  • 高效的数据分析:通过将结构化数据和非结构化数据结合在读取数据湖的模式上,提高数据分析的效率。
  • 快速的数据拷贝:从外部系统到 Hadoop。

2.13 Flume

Flume 有效地收集、汇总和移动大量的数据,并将其从原点送回 HDFS。它是容错和可靠的机制。Flume 允许数据从源头流入 Hadoop 环境。它使用一个简单的可扩展的数据模型,允许在线分析应用。使用 Flume,我们可以从多个服务器立即获得数据到 Hadoop。

在这里插入图片描述

2.14 Ambari

Ambari 是一个用于配置、管理、监控和保护 Apache Hadoop 集群的管理平台。由于 Ambari 提供了一致的、安全的操作控制平台,Hadoop 管理变得更加简单。

在这里插入图片描述

Ambari的特点

  • 简化安装、配置和管理:Ambari 轻松有效地创建和管理大规模的集群。
  • 集中的安全设置:Ambari 减少了在整个平台上管理和配置集群安全的复杂性。
  • 高度的可扩展性和可定制性:Ambari 具有高度的可扩展性,可将定制服务纳入管理。
  • 对集群健康的全面可视性:Ambari 通过整体的监控方法,确保集群的健康和可用。

2.15 Zookeeper

Zookeeper 用于维护配置信息、命名、提供分布式同步和提供组服务。Zookeeper 管理和协调一个大型的机器集群。

在这里插入图片描述

Zookeeper 的特点:

  • 快速:Zookeeper 在对数据的读取比写入更常见的工作负载中是快速的。理想的读 / 写比率是 10 : 1 10:1 10:1
  • 有序:Zookeeper 维护所有事务的记录。

2.16 Oozie

Oozie 是一个工作流调度系统,用于管理 Apache Hadoop 作业。Oozie 将多个作业按顺序组合成一个逻辑的工作单元。Oozie 框架与 Apache Hadoop 栈完全集成,以 YARN 为架构中心,支持 Apache MapReduce、Pig、Hive 和 Sqoop 的 Hadoop 作业。

在这里插入图片描述

在 Oozie 中,用户可以创建工作流的有向无环图,它可以在 Hadoop 中并行和顺序运行。Oozie 是可扩展的,可以管理 Hadoop 集群中成千上万的工作流的及时执行。Oozie 也是非常灵活的。人们可以轻松地启动、停止、暂停和重新运行工作。它甚至可以跳过一个特定的故障节点,或在 Oozie 中重新运行它。

Oozie 作业有两种基本类型

  • Oozie 工作流:它用于存储和运行由 Hadoop 作业组成的工作流,例如 MapReduce、pig、Hive。
  • Oozie 协调员:它根据预定的时间表和数据的可用性来运行工作流作业。

参考:https://data-flair.training/blogs/hadoop-ecosystem-components/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【大数据】Hadoop 生态系统及其组件 的相关文章

随机推荐

  • Unity制作FPS Demo

    等到把这个Unity FPS Demo 僵尸杀手 完成后再详细补充一下 使用Unity制作FPS游戏的经历 今天做个标识
  • 算法入门Bu1:排序

    算法入门 BuBuBu 相关数据结构 栈 队列 链表 树 并差集 堆 图等 相关算法 排序 枚举 深度和广度优先搜索 图的遍历 图中最短路径算法 最小生成树算法 割点和割遍算法 二分图的最大匹配算法等 排序算法 简单的桶排序 特点 如果需要
  • Java HashMap底层实现

    HashMap 是 Java 使用频率最高的用于映射 键值对 处理的数据类型 JDK1 8 对 HashMap 底层的实现进行了优化 例如引入红黑树的数据结构和扩容的优化等 在JDK1 8以前HashMap是由数组 链表的数据结构组成的 J
  • 【整理】串口(RS232/RS485等)通讯中RTS/CTS,DTR/DSR的含义详解

    整理 串口 RS232 RS485等 通讯中RTS CTS DTR DSR的含义详解 RS232 crifan 7年前 2013 10 17 14942浏览 0评论 背景 之前就折腾过很多关于RTS CTS DTR DSR的内容 整理 RT
  • excel 文档管理服务器,Excel Server Tutorial

    在企事业单位的实际业务中所需要使用的信息 除了数据之外 还包括文档 文档是各种类别和格式的 它们可能是Word文件 如企业的规章制度 可能是AutoCAD文件 如产品设计图纸 也可能是视频 音频文件 如内部培训资料 等等 通常的管理信息系统
  • 计算之魂思考题1.4赛跑问题

    一 问题 假设由25名短跑者争夺比赛前三名 赛场上有5条赛道 一次可以有5名选手同时比赛 比赛不计时 只看相应名次 假设选手发挥稳定 也就是说如果约翰比张三跑得快 张三比凯莉跑得快 那么约翰一定比凯莉跑得快 最少需要几次比赛才能决出前三名
  • 墨者学院的靶场之SQL注入漏洞测试(布尔盲注)

    这是我作为小白第一次成功的把key找出来了 分享一下 墨者学院的靶场SQL注入漏洞测试 布尔盲注 IP地址 219 153 49 228 端口 40205 协议 http 首先我输入了IP地址和端口号 看到这个后 我按了F12看了后台的代码
  • 【华为OD机试】食堂供餐【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 某公司员工食堂以盒饭方式供餐 为将员工取餐排队时间降低为0 食堂的供餐速度必须要足够快 现在需要根据以往员工取餐的统计信息 计算出一个刚好能达成排队时间为0的最低供餐
  • 【华为OD机试真题】【python】 网上商城优惠活动(一)【2022 Q4

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 某网上商场举办优惠活动 发布了满减 打折 无门槛3种 优惠券 分别为 1 每满100元优惠10元 无使用数限制 如100 199元可以使用1张减
  • Ubuntu18.04/16.04调整屏幕分辨率至1920*1080

    Ubuntu在设置 显示里面的分辨率选择没有1920 1080 我们可以手动增加该分辨率配置 然后进行设置 参考文字和图片 crtl alt t 打开终端窗口 获取添加分辨率的格式 输入 cvt 1920 1080 查看显示器信息及已经支持
  • 安卓HAL层 so库文件加载原理

    本文分析代码基于安卓6 0 上层app通过jni调用hal层的hw get module函数获取硬件模块 这个函数是上层与hal打交道的入口 这里我们就具体来看看hw get module的实现 文件路径 vim hardware libh
  • andorid 与滑动相关的一些知识---getscrollY onscrollchange() scrollby scrollto等

    Android系统手机屏幕的左上角为坐标系 同时y轴方向与笛卡尔坐标系的y轴方向想反 通过提供的api如getLeft getTop getBottom getRight可以获得控件在parent中的相对位置 同时 也可以获得控件在屏幕中的
  • python怎么升级python的pip

    报错提示 WARNING You are using pip version 19 1 1 however version 20 0 2 is available You should consider upgrading via the
  • ouldn‘t check the working tree for unmerged files because of an error. detected dubious ownership in

    IDEA的git的clone操作中如果出现问题 couldn t check the working tree for unmerged files because of an error detected dubious ownershi
  • LangChain 的聊天模型

    各位人工智能爱好者 大家好 今天 我们就来详细了解一下 LangChain 聊天模型 LangChain是一个很棒的工具 它提供了与各种语言模型交互的标准接口 包括基于文本的大型语言模型 LLM 和聊天模型 LangChain模型的概念 模
  • 【Linux命令详解

    文章标题 简介 一 参数列表 二 使用介绍 1 使用基本模式搜索 2 忽略大小写匹配 3 反向匹配 4 递归搜索目录 5 显示文件名 6 显示行号 7 显示上下文行 8 启用扩展正则表达式 9 将模式视为固定字符串 10 使用颜色高亮显示匹
  • Docker部署服务

    部署Nginx 寻找镜像 docker search nginx 默认最新版 官网查看不同的版本信息 下载镜像 docker pull nginx root iZwz9hv1phm24s3jicy8x1Z docker images REP
  • C语言打印输出斐波那契数前20项案例讲解

    我们先看什么是斐波那契数 斐波那契数列指的是这样一个数列 1 1 2 3 5 8 13 21 34 55 89 我们通过观察可以得出斐波那契数列的特点 1 第一项和第二项都是1 2 这个数列从第3项开始 每一项都等于前两项之和 思路分析 1
  • 2023年第二届全国大学生数据统计与分析竞赛题目B:电影评分的大数据分析第二问

    详细代码 企鹅2869955900 import pandas as pd import matplotlib pyplot as plt import numpy as np plt rcParams font sans serif Si
  • 【大数据】Hadoop 生态系统及其组件

    Hadoop 生态系统及其组件 1 Hadoop 生态系统的组成 2 Hadoop 生态系统简介 2 1 HDFS 2 2 MapReduce 2 3 YARN 2 4 Hive 2 5 Pig 2 6 HBase 2 7 HCatalog