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

图解 Hadoop 生态系统及其组件

  • 1.HDFS
  • 2.MapReduce
  • 3.YARN
  • 4.Hive
  • 5.Pig
  • 6.Mahout
  • 7.HBase
  • 8.Zookeeper
  • 9.Sqoop
  • 10.Flume
  • 11.Oozie
  • 12.Ambari
  • 13.Spark

在了解 Hadoop 生态系统及其组件之前,我们首先了解一下 Hadoop 的三大组件,即 HDFS、MapReduce、YARN,它们共同构成了 Hadoop 分布式计算框架的 核心

  • HDFSHadoop Distributed File System):HDFS 是 Hadoop 的 分布式文件系统,它是将大规模数据分散存储在多个节点上的基础。HDFS 主要负责数据的存储和管理,可以将大数据集分成多个数据块,并将这些数据块分配到不同的计算节点上存储,提高数据的可靠性和处理效率。

  • MapReduce:MapReduce 是 Hadoop 的 分布式计算框架,它提供了一种简单的编程模型,通过将大规模数据分解成多个小任务并行处理,可以大大提高数据处理的效率。MapReduce 模型包括 Map 和 Reduce 两个阶段,其中 Map 阶段将数据分解成多个小块进行处理,Reduce 阶段将处理结果合并。

  • YARNYet Another Resource Negotiator):YARN 是 Hadoop 的 资源管理器,它负责为多个应用程序分配和管理计算资源,可以有效地提高计算资源的利用率。YARN 可以将集群中的计算资源划分为多个容器,为不同的应用程序提供适当的资源,并监控和管理各个应用程序的运行状态。

在这里插入图片描述

1.HDFS

HDFS 是 Hadoop 的分布式文件系统,旨在在廉价硬件上存储大型文件。它具有高度容错能力,并为应用程序提供高吞吐量。 HDFS 最适合那些拥有非常大数据集的应用程序。

Hadoop HDFS 文件系统提供 Master 和 Slave 架构。主节点运行 Namenode 守护进程,从节点运行 Datanode 守护进程。

在这里插入图片描述

2.MapReduce

MapReduce 是 Hadoop 的数据处理层,它将任务分成小块,并将这些小块分配给通过网络连接的许多机器,并将所有事件组装成最后的事件数据集。 MapReduce 所需的基本细节是键值对。所有数据,无论是否结构化,在通过 MapReduce 模型传递之前都需要转换为键值对。在 MapReduce 框架中,处理单元被移至数据,而不是将数据移至处理单元。

在这里插入图片描述

3.YARN

YARN 代表 Yet Another Resource Negotiator,它是 Hadoop 集群的资源管理器。 YARN 用于实现 Hadoop 集群中的资源管理和作业调度。 YARN 的主要思想是将作业调度和资源管理拆分到各个进程中进行操作。

YARN 提供了两个守护进程;第一个称为资源管理器(Resource Manager),第二个称为节点管理器(Node Manager)。这两个组件都用于处理 YARN 中的数据计算。资源管理器运行在 Hadoop 集群的主节点上,并协商所有应用程序中的资源,而节点管理器托管在所有从节点上。节点管理器的职责是监视容器、资源使用情况(例如 CPU、内存、磁盘和网络)并向资源管理器提供详细信息。

在这里插入图片描述

4.Hive

Hive 是 Hadoop 的 数据仓库 项目。 Hive 旨在促进非正式数据汇总、即席查询和大量数据的解释。借助 HiveQL,用户可以对 HDFS 中的数据集存储执行即席查询,并使用该数据进行进一步分析。 Hive还支持自定义的用户定义函数,用户可以使用这些函数来执行自定义分析。

让我们了解 Apache Hive 如何处理 SQL 查询:

  • 用户将使用命令行或 Web UI 向驱动程序(例如 ODBC / JDBC)提交查询。
  • 驱动程序将借助查询编译器来解析查询以检查语法 / 查询计划。
  • 编译器将向元数据数据库发送元数据请求。
  • 作为响应,Metastore 将向编译器提供元数据。
  • 现在编译器的任务是验证规范并将计划重新发送给驱动程序。
  • 现在驱动程序将向执行引擎发送执行计划。
  • 该程序将作为映射缩减作业执行。执行引擎将作业发送到名称节点作业跟踪器,并为该作业分配一个存在于数据节点中的任务跟踪器,并在此处执行查询。
  • 查询执行后,执行引擎将从数据节点接收结果。
  • 执行引擎将结果值发送给驱动程序。
  • 驱动程序会将结果发送到 Hive 接口(用户)。

在这里插入图片描述

5.Pig

Pig 由 Yahoo 开发,用于分析存储在 Hadoop HDFS 中的大数据。 Pig 提供了一个分析海量数据集的平台,该平台由用于通信数据分析应用程序的高级语言组成,并与用于评估这些程序的基础设施相链接。

Pig 具有以下关键属性:

  • 优化机会:Pig 提供了查询优化,帮助用户专注于意义而不是效率。
  • 可扩展性:Pig 提供了创建用户定义函数以进行特殊用途处理的功能。

在这里插入图片描述

6.Mahout

Mahout 是一个用于 创建机器学习应用程序的框架。它提供了一组丰富的组件,您可以通过选择的算法构建定制的推荐系统。 Mahout 的开发目的是提供执行、可扩展性和合规性。

以下是定义这些关键抽象的 Mahout 接口的重要包:

  • DataModel
  • UserSimilarity
  • ItemSimilarity
  • UserNeighborhood

在这里插入图片描述

7.HBase

HBase 是继 Google Bigtable 之后创建的分布式、开源、版本化、非关系型数据库。它是 Hadoop 生态系统的重要组件,利用 HDFS 的容错功能,提供对数据的实时读写访问。 HBase 尽管是数据库,但也可以称为数据存储系统,因为它不提供触发器、查询语言和二级索引等 RDBMS 功能。

HBase 具有以下功能:

  • 它提供持续的模块化可扩展性。
  • 它提供定期的读取和写入。
  • 直观且可配置的表分片。
  • RegionServer 之间的自动故障转移支持。
  • 它提供中央基类,用于支持带有 Apache HBase 表的 Hadoop MapReduce 作业。
  • 使用 Java API 进行客户端访问很简单。
  • 查询谓词通过服务器端过滤器下推。
  • 它提供了 Thrift 网关和 REST-ful Web 服务,支持 XML、Protobuf 和二进制数据编码选择。

在这里插入图片描述

8.Zookeeper

Zookeeper 充当 Hadoop 不同服务之间的协调者,用于维护配置信息、命名、提供分布式同步、提供群组服务。 Zookeeper 用于修复这些新部署在分布式环境中的应用程序的错误和竞争条件。

在这里插入图片描述

9.Sqoop

Sqoop 是一个数据传输工具,用于在 Hadoop 和关系数据库之间传输数据。它用于将数据从关系数据库管理系统(MySQL 或 Oracle)或大型机导入到 Hadoop(HDFS),并在 Hadoop MapReduce 中转换数据。它还用于将数据导出回 RDBMS。 Sqoop 使用 map-reduce 来导入和导出数据,因此它具有并行处理和容错特性。

在这里插入图片描述

10.Flume

Flume 是一种类似于 Sqoop 的日志传输工具,但它适用于非结构化数据(日志),而 Sqoop 用于结构化和非结构化数据。 Flume 是一个可靠、分布式且可用的系统,用于高效地收集、聚合大量日志数据并将其从许多不同的源移动到 HDFS。它不仅限于日志数据聚合,还可以用于传输大量事件数据。

Flume 具有以下三个组件:

  • Source
  • Channel
  • Sink

在这里插入图片描述

11.Oozie

Oozie 是一个 工作流调度框架,用于调度 Hadoop Map / Reduce 和 Pig 作业。 Apache Oozie 工作流程是 Hadoop Map / Reduce 作业、Pig 作业等操作的集合,排列在控制依赖 DAG(有向无环图)中。从一个动作到另一个动作的 “控制依赖性” 表明,除非第一个动作完成,否则另一个动作不会开始。

Oozie 工作流有以下两个节点,即 控制流节点操作节点

  • 控制流节点Control Flow Nodes):这些节点用于提供控制工作流执行路径的机制。

  • 操作节点Action Node):操作节点提供了一种机制,工作流通过该机制触发计算 / 处理任务的执行,例如 Hadoop MapReduce、HDFS、Pig、SSH、HTTP 作业 。

在这里插入图片描述

12.Ambari

Ambari 用于配置、管理和监控 Apache Hadoop 集群。

它向系统管理员提供以下任务:

  • Hadoop 集群的配置:它提供了一种在任意数量的节点上安装 Hadoop 服务的媒介。它还处理集群的 Hadoop 服务配置。

  • Hadoop 集群的管理:它提供了一个中央控制来管理 Hadoop 服务,例如整个集群的启动、停止和重新配置。

  • Hadoop 集群监控:它提供了一个用于监控 Hadoop 集群的仪表板(例如节点关闭、剩余磁盘空间不足等)。

在这里插入图片描述

13.Spark

Spark 是一个通用且快速的集群计算系统。它是一个非常强大的大数据工具。 Spark 提供了 Python、Scala、Java、R 等多种语言的丰富 API。 Spark 支持 Spark SQL、GraphX、MLlib、Spark Streaming、R 等高级工具。这些工具用于执行不同类型的操作,我们将在 Spark 部分中看到。

在这里插入图片描述

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

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

相关文章

Linux

文章目录 一、引言1.1 开发环境1.2 生产环境1.3 测试环境1.4 操作系统的选择 二、Linux介绍2.1 Linux介绍2.2 Linux的版本2.3 Linux和Windows区别 三、Linux安装3.1 安装VMware3.2 安装Xterm3.3 在VMware中安装Linux3.3.1 选择安装方式3.3.2 指定镜像方式3.3.3 选择操作系统类型…

API接口接入电商平台案例,数据采集获取商品历史价格信息示例

商品历史价格接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取天猫商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、最低价、当前价格、价格信息等详细信息 。 获取商品历史价格接口API是一种用于获取电商平台上商品历…

基于jeecg-boot的flowable流程审批时增加下一个审批人设置

更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbcio-boot 前端代码:https://gitee.com/nbacheng/nbcio-vue.git 在线演示(包括H5) : http://122.227.135.243:9888 因为有时…

【Kafka】Kafka Stream简单使用

一、实时流式计算 1. 概念 一般流式计算会与批量计算相比较。在流式计算模型中,输入是持续的,可以认为在时间上是无界的,也就意味着,永远拿不到全量数据去做计算。同时,计算结果是持续输出的,也即计算结果…

Qt应用开发(基础篇)——消息对话框 QMessageBox

一、前言 QMessageBox类继承于QDialog,是一个模式对话框,常用于通知用户或向用户提出问题并接收答案。 对话框QDialog QMessageBox消息框主要由四部分组成,一个主要文本text,用于提醒用户注意某种情况;一个信息文本informativeTex…

深度解析 PostgreSQL Protocol v3.0(一)

引言 PostgreSQL 使用基于消息的协议在前端(也可以称为客户端)和后端(也可以称为服务器)之间进行通信。该协议通过 TCP/IP 和 Unix 域套接字支持。 《深度解析 PostgreSQL Protocol v3.0》系列技术贴,将带大家深度了…

视频剪辑音效处理软件有哪些?视频剪辑软件那个好用

音效是视频剪辑的重要部分,能起到画龙点睛的作用。在短视频平台中,一段出彩的音效能将原本平平无奇的视频变得生动有趣。那么,视频剪辑音效处理软件有哪些?本文会给大家介绍好用的音效处理软件,同时也会介绍视频剪辑音…

【Pandas 入门-5】Pandas 画图

Pandas 画图 除了结合 matplotlib 与 seaborn 画图外,Pandas 也有自己的画图函数plot,它的语法一般为: DataFrame.plot(xNone,yNone, kindline,subplotsFalse, titleNone)x横坐标数据y纵坐标数据kind默认是线图,还可以是‘bar’…

深入理解 JVM 之——动手编译 JDK

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 本篇为深入理解 Java 虚拟机第一章的实战内容,推荐在学习前先掌握基础的 Linux 操作、编译原理基础以及扎实的 C/C 功底。 该系列的 GitHub 仓库:https://github.com/Doge2077/lear…

C语言 - 结构体、结构体数组、结构体指针和结构体嵌套

结构体的意义 问题:学籍管理需要每个学生的下列数据:学号、姓名、性别、年龄、分数,请用 C 语言程序存储并处理一组学生的学籍。 单个学生学籍的数据结构: 学号(num): int 型姓名(…

常见网络通信协议(http、https、ws)及安全协议(SSL、TLS、XTLS)

文章内容删除了一大半不合适的内容,发不出来,你懂得。🥰 一、常见网络通信协议1.1、HTTP 协议1.11 HTTP 协议简介1.12 HTTP 协议的工作流程1.13 HTTP 协议的常用方法1.14 HTTP 协议的常见状态码1.15 HTTP 的缺点 1.2 HTTPS 协议1.21 HTTPS 协…

结合OB Cloud区别于MySQL的4大特性,规划降本方案

任何一家企业想要获得持续性的发展与盈利,“降本增效”都是难以绕开的命题。但是“一刀切”的降本影响往往不太可控,成本的快速收缩往往会给业务带来低效运营和增长缓慢的风险。所以我们所说的降本,是指在成本降低的同时,效率不降…

js 正则表达式 验证 :页面中一个输入框,可输入1个或多个vid/pid,使用英文逗号隔开...

就是意思一个输入框里面&#xff0c;按VID/PID格式输入,VID和PID最大长度是4,最多50组 1、页面代码 <el-form ref"ruleForm" :model"tempSet" :rules"rules" label-position"right"> <!-- 最多 50组&#xff0c;每组9个字符…

【C语言】字符函数,字符串函数,内存函数

大家好&#xff01;今天我们来学习C语言中的字符函数&#xff0c;字符串函数和内存函数。 目录 1. 字符函数 1.1 字符分类函数 1.2 字符转换函数 1.2.1 tolower&#xff08;将大写字母转化为小写字母&#xff09; 1.2.2 toupper&#xff08;将小写字母转化为大写字母&…

ZigBee案例笔记 -- RFID卡片读写(模拟饭卡)

RFID模拟饭卡应用 RFID&#xff08;射频识别技术&#xff09;RFID通讯协议RFID发展历史RFID操作流程说明RFID卡片读写流程RFID寻卡RFID防碰撞RFID选卡RFID卡密验证RFID读卡RFID写卡读写数据流程 RFID饭卡模拟案例驱动代码串口协议饭卡操作案例结果优化建议 RFID&#xff08;射频…

Cordova Android 生成的 APK 中添加代码混淆

要在 Cordova Android 生成的 APK 中添加代码混淆&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. 在项目根目录下&#xff0c;找到 platforms/android/ 目录&#xff0c;进入该目录。 2. 打开 build.gradle 文件&#xff0c;并在 android { ... } 部分添加以下代码&…

关于两个不同数据库的两张表建立数据库链接,关联查询数据

一、数据库链接 数据库链接&#xff08;database link&#xff09;是用于跨不同数据库之间进行连接和数据传输的工具或方法。它允许在一个数据库中访问另一个数据库中的对象和数据。 二、具体操作 以Oracle数据库为例 --1.建立链接tjpt CREATE DATABASE LINK tjpt CONNECT…

go语言--锁

锁的基础&#xff0c;go的锁是构建在原子操作和信号锁之上的 原子锁 原子包实现协程的对同一个数据的操作&#xff0c;可以实现原子操作&#xff0c;只能用于简单变量的简单操作&#xff0c;可以把多个操作变成一个操作 sema锁 也叫信号量锁/信号锁 核心是一个uint32值&#…

基于单片机的串行通信发射机设计

一、项目介绍 串行通信是一种常见的数据传输方式&#xff0c;允许将数据以比特流的形式在发送端和接收端之间传输。当前实现基于STC89C52单片机的串行通信发射机&#xff0c;通过红外发射管和接收头实现自定义协议的数据无线传输。 二、系统设计 2.1 单片机选择 在本设计中&…

前端基础2——CSS样式

文章目录 一、使用方式1.1 内联方式1.2 内部方式1.3 外部导入方式&#xff08;推荐&#xff09; 二、选择器类型2.1 元素选择器2.2 ID选择器2.3 类选择器2.4 派生选择器 三、常用属性3.1 内边距和外边距3.2 文本3.3 边框3.4 背景3.5 定位3.6 浮动3.7 字体3.8 其他属性 四、案例…