【赵渝强老师】大数据生态圈中的组件

news2024/9/24 17:08:22

在这里插入图片描述

  大数据体系架构中的组件非常多,每个组件又属于不同的生态圈系统。从最早的Hadoop生态圈体系开始,逐步有了Spark生态圈体系和Flink生态圈体系。因此在学习大数据之前有必要了解一下每一个生态圈体系中具体包含哪些组件,以及它们的作用又是什么。
  视频讲解如下:

大数据生态圈中的组件

【赵渝强老师】大数据生态圈中的组件

一、大数据的数据存储组件

  在大数据体系中使用了分布式存储的方式解决了海量数据的存储问题。它分为离线数据存储和实时数据存储。

(一)大数据离线数据存储组件

  大数据离线数据存储组件主要包括:HDFS、HBase和Hive。这三个组件都属于Hadoop生态圈体系。下面分别进行介绍。

  • HDFS
      它的全称是Hadoop Distributed File System,它是Hadoop分布式文件系统,用于解决大数据的存储问题。HDFS源自于Google的GFS论文,可用于运行在低成本的通用硬件上,是一个具有容错的文件系统。

  • HBase
      基于HDFS之上的分布式列式存储NoSQL数据库,起源于Google的BigTable思想。由于HBase的底层是HDFS,因此HBase中创建的表和表中数据最终都是存储在HDFS上。HBase的核心是列式存储,它适合执行查询操作。

  • Hive
      Hive是基于HDFS之上的数据仓库,支持标准的SQL语句。默认情况下,Hive的执行引擎是MapReduce。Hive可以把一条标准的SQL转换成是MapReduce任务运行在Yarn之上。

提示:Hive的执行引擎也可以是Spark,即:Hive on Spark。

(二)大数据实时数据存储组件

  大数据实时数据存储组件主要使用消息系统Kafka。

  • Kafka
      Kafka是由Apache软件基金会开发的一个开源流处理平台,它是一种高吞吐量的分布式发布订阅消息系统。Kafka的诞生是为了解决LinkedIn的数据管道问题。起初LinkedIn采用ActiveMQ进行数据交换。在2010年前后,Active MQ远远无法满足LinkedIn对数据传递系统的要求,经常由于各种缺陷导致消息阻塞或服务无法正常访问。为了解决这个问题,LinkedIn决定研发自己的消息传递系统。当时LinkedIn的首席架构师Jay Kreps组织团队进行消息传递系统的研发,进而有了现在的Kafka消息系统。

二、大数据的数据计算组件

  大数据生态圈提供了各种计算引擎。通过使用这些计算引擎来执行批处理的离线计算和流处理的实时计算;同时也提供了各种数据分析引擎,用于支持SQL语句

(一)大数据批处理的离线计算组件

  大数据批处理的离线计算组件主要包括:MapReduce、Spark Core和Flink DataSet。下面分别进行介绍。

  • MapReduce
      MapReduce是一种分布式计算模型,用以进行大数据量的计算,它是一种离线计算处理模型。MapReduce通过Map和Reduce两个阶段的划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。通过MapReduce既可以处理HDFS中的数据,也可以处理HBase中的数据。

提示:在Hadoop的安装包中已经集成了HDFS与Yarn。因此Hadoop安装成功后,可以直接执行MapReduce任务处理HDFS的数据。

  • Spark Core
      Spark Core是Spark的核心部分,也是Spark执行引擎。在Spark中执行的所有计算都是由Spark Core完成,它是一个种离线计算引擎。Spark Core提供了SparkContext访问接口用于提交执行Spark任务。通过该访问接口既可以开发Java程序,也可以开发Scala程序来分析和处理数据。SparkContext也是Spark中最重要的一个对象。

提示:Spark中的所有计算都是Spark Core离线计算,因此Spark生态圈体系中不存在真正的实时计算。

  • Flink DataSet
      Flink DataSet API是Flink中用于处理有边界数据流的功能模块,其本质就是执行批处理的离线计算,这一点与Hadoop中的MapReduce和Spark中的Spark Core其实是一样的。下表1列出了Flink DataSet API中的一些常见的算子。
    在这里插入图片描述

(二)大数据流处理的实时计算组件

  大数据流处理的实时计算组件主要包括:Spark Streaming和Flink DataStream。下面分别进行介绍。

  • Spark Streaming
      Spark Streaming是核心Spark API的扩展,它可实现可扩展、高吞吐量、可容错的实时数据流处理。但是Spark Streaming底层的执行引擎依然是Spark Core,这就决定了Spark Streaming并不是真正的流处理引擎,它是通过时间的采样间隔把流式数据编程小批量数据进行处理,其本质任然是批处理的离线计算。Spark Streaming访问接口是StreamingContext。

  • Flink DataStream
      Flink DataStream API可以从多种数据源创建DataStreamSource,如:消息队列Kafka、文件流和Socket连接等等;然后,通过Transformation的转换操作进行流式数据的处理;最后由Sink组件将处理的结果进行输出。

(三)大数据数据分析组件

  为了支持使用SQL处理大数据便有了各种大数据分析引擎,主要包括:Hive、Spark SQL、Flink SQL等下面分别进行介绍。

  • Hive
      Hive是基于HDFS之上的数据仓库,支持标准的SQL语句。默认情况下,Hive的执行引擎是MapReduce。Hive可以把一条标准的SQL转换成是MapReduce任务运行在Yarn之上。
    提示:Hive的执行引擎也可以是Spark,即:Hive on Spark。

  • Spark SQL
      Spark SQL是Spark用来处理结构化数据的一个模块,它的核心数据模型是DataFrame,其访问接口是SQLContext。这里可以把DataFrame理解成是一张表。当DataFrame创建成功后,Spark SQL可支持DSL语句和SQL语句来分析处理数据。由于Spark SQL底层的执行引擎是Spark Core,因此Spark SQL执行的本质也是执行的一个Spark Core任务。

  • Flink Table & FlinkSQL
      与Hadoop的Hive和Spark SQL类似,在Flink的生态圈体系中也提供了两个关系型操作的API:Table API 和SQL。Flink Table API 是用于Scala 和Java 语言的查询API,允许以非常直观的方式组合关系运算符的查询,如 select、filter 和 join;Flink SQL API支持的是实现了标准SQL的Apache Calcite。通过这套接口,能够使用SQL语句处理DataSet数据流和DataStream数据流。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在移动应用程序中集成模糊方法的基于物联网的天气监测系统的实现

这篇论文的标题是《IMPLEMENTATION OF WEATHER MONITORING SYSTEM BASED INTERNET OF THINGS USING INTEGRATED FUZZY METHOD IN MOBILE APPLICATIONS》,作者是 Muhammad Malik Amin,来自 Politeknik Negeri Jakarta 的 D-IV INSTRUMENTASI DAN KONTROL …

WebAssembly内存结构学习记录

参考: 大文件上传深入研究:https://juejin.cn/post/6870837414852886542 WorkerWasm切片上传:https://juejin.cn/post/7221003401996091429 Wasm实现MD5文件编码:https://juejin.cn/post/7319541565318398003 SharedArrayBuffer与…

Python | 使用Pygments生成漂亮的代码段截图

在创建技术文档或教程时,包含代码段的图像以说明特定的示例或概念可能会有所帮助。但是,对代码文件进行屏幕截图可能看起来不专业,并且难以阅读。本文将探索如何使用库pygments将编程代码转换为Python中美丽的图像片段。 Pygments库 Pygmen…

基于Java+SpringBoot+Vue+MySQL的失物招领管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的失物招领管理系统【附源码文档】、前后…

Java 入门指南:Java 并发编程 —— 并发容器 LinkedBlockingQueue

BlockingQueue BlockingQueue 是Java并发包(java.util.concurrent)中提供的一个阻塞队列接口,它继承自 Queue 接口。 BlockingQueue 中的元素采用 FIFO 的原则,支持多线程环境并发访问,提供了阻塞读取和写入的操作&a…

JavaEE---Spring MVC(4)

MVC学习小案例1 在这里我们要实现一个计算器的功能 在这之前,先解决一个bug! 写好代码之后开始运行,运行发现不对,sum计算不出来,然后我百思不得其解, 1.对着后端代码一顿输出,还是没觉得有问题. 2.对着前端代码一顿输出,也没看出任何问题 3.是不是我前后端交互出错了呢?查找…

Python案例 | 四阶龙格库塔法简介

1.引言 在数值分析中,龙格-库塔法(Runge-Kutta methods)是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。这些技术由数学家卡尔龙格和马丁威尔海姆库塔于1900年左右发明。 龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高…

工厂验收(FAT)和现场验收(SAT)的含义

工厂验收(Factory Acceptance Test,FAT)和现场验收(Site Acceptance Test,SAT)是在工程领域中常见的术语,用于确保设备在制造商及用户之间达成一致的验收标准,保证设备能够正常、安全…

【图灵完备 Turing Complete】游戏经验攻略分享 Part.2 算术运算

算术运算部分算是开始有难度了。 前几关按照自己思路来,二进制速算应该没问题。 画真值表,卡诺图,推表达式。 下面几关,几个输出信号分开来看,有三个输出就画三个卡诺图,有几个画几个,分而治之。…

Shadow Dom 是什么

概念 官方:https://developer.mozilla.org/zh-CN/docs/Web/API/Web_components/Using_shadow_DOM 核心:影子 DOM(Shadow DOM)允许你将一个 DOM 树附加到一个元素上,并且使该树的内部对于在页面中运行的 JavaScript 和…

Java笔试面试题AI答之正则表达式(3)

文章目录 13. 简述Java String支持哪几种使用正则表达式的方法?14. 请列举常见校验数字的表达式 ?15. 请列举常见校验字符的表达式 ?1. 汉字2. 英文和数字3. 特定长度的字符串4. 由26个英文字母组成的字符串5. 由数字和26个英文字母组成的字符…

JVM面试(五)垃圾回收机制和算法

概述 了解Java虚拟机的垃圾回收机制(Garbage Collection,简称GC),我们也要像其作者John McCarthy一样,思考一下三个问题: 哪些内存需要回收?什么时候回收?如何回收? 虽…

pytorch+深度学习实现图像的神经风格迁移

本文的完整代码和部署教程已上传至本人的GitHub仓库,欢迎各位朋友批评指正! 1.各代码文件详解 1.1 train.py train.py 文件负责训练神经风格迁移模型。 加载内容和风格图片:使用 utils.load_image 函数加载并预处理内容和风格图片。初始化…

网络攻击全解析:主动、被动与钓鱼式攻击的深度剖析

在当今这个互联网高度普及与深度融合的时代,网络攻击,这一赛博空间的隐形威胁,正以前所未有的频率和复杂度挑战着网络安全乃至国家安全的底线。为了更好地理解并防范这些威胁,本文将深入剖析网络攻击的主要类型——主动攻击、被动…

程序设计基础

一、程序 1.什么是程序? 程序可以看作是对一系列动作的执行过程的描述。 计算机程序是指为了得到某种结果而由计算机等具有信息处理能力的装置执行的代码化指令序列。 程序的几个性质: ● 目的性 ● 分步性 ● 有限性 ● 可操作性 ● 有序性 2…

Splasthop 安全远程访问帮助企业对抗 Cobalt Strike 载荷网络攻击

一、背景 根据 FreeBuf(标题为:潜藏系统2个月未被发现,新型网络攻击瞄准中国高价值目标)和 The Hacker News(标题为:New Cyberattack Targets Chinese-Speaking Businesses with Cobalt Strike Payloads&a…

农产品自主供销系统小程序的设计

管理员账户功能包括:系统首页,个人中心,农产品管理,资讯信息管理,订单管理,资讯回复管理 微信端账号功能包括:系统首页,农产品,购物车,我的 开发系统&#…

接口自动化测试学习 —— Mock服务实现

1.Mock实现原理和实现机制 在某些时候,后端在开发接口的时候,处理逻辑非常复杂,在测试的时候,后端在未完成接口的情况下该如何去测试呢? 我们需要测试,但是有些请求又需要修改一下参数,或者改变…

说明书keithley2420吉时利2410数字源表

说明书keithley2420吉时利2410数字源表 产品概述 Keithley 2420 高压源表是一款 60W 仪器,设计用于提供和测量 5V(源)和 1V(测量)至 60V 的电压和 100pA 至 3A 的电流。2420 型的生产测试应用包括必须在更高电流水平下…

微信和苹果叫板的资本

这两天,关于苹果用户还能不能使用微信这么一个新闻炒得沸沸扬扬的。其实,在很多年前我就说过,腾讯和苹果必有一战。那么这一战到了今天终于到来了。 原因其实也很简单。这个事件的背后,并不是简单的腾讯和苹果彼此之间抽成争夺的问…