大数据代表技术:Hadoop、Spark、Flink、Beam

2023-11-12

大数据代表技术:Hadoop、Spark、Flink、Beam

Hadoop:从2005年到2015年,说到大数据都是讲hadoop。Hadoop是一整套的技术框架,不是一个单一软件,它是一个生态系统。

Hadoop有两大核心:第一个是它解决了分布式存储的框架叫HDFS,这是一个分布式存储系统。第二个是解决了分布式计算框架叫MapReduce。这是它的两大关键技术,除此以外,还有其他相关技术,构成了一个完整的生态系统。

HDFS:是海量分布式文件存储系统;

YARN提供资源调度和管理服务,它负责为我们的上层的计算框架MapReduce提供资源的调度和管理服务。因为计算框架MapReduce在做计算时需要CPU、内存等资源,这是需要YARN帮忙调度。它是在整个集群去进行调度,而集群可能有几千台机器,这几千台机器资源就由YARN这个框架进行统一调度;

MapReduce是一个计算框架,主要完成计算任务;

Hive:数据仓库。数据仓库跟数据库是不一样的:数据库只能保存某一时刻的状态数据,比如一个商品库存的数据库,原来有10件,卖出去一件,那个十就会被抹掉,这个库存就变成九,也就是说它不能记录其历史状态信息的;但是数据仓库一般以天为单位或以周为单位,然后每天保存一次它的镜像,其可以保存在每天某个固定时刻的库存数据,也就是说数据仓库是一个时间维度上的连续数据,比如说第一天的库存状态信息,第二天的库存状态信息,而我们的数据库只能保存某一个时刻的状态。

数据仓库是可以反映时间维度信息的数据,这样可以帮我们做一些决策分析,比如数据仓库里的OLAP分析(利用数据仓库里的数据进行多维数据分析),它可以帮忙分析商品销量走势,分析商品销量变化原因。

传统数据仓库都是构建在关系型数据库上,但是到了大数据时代,传统数据仓库已经不能满足,以为数据量太大,而关系型数据库根本就不能保存这么多数据,所以现在的大数据仓库都是构建在我们底层的HDFS的基础上,如Hive数据仓库都是保存在分布式文件系统HDFS基础上的。因此可以将Hive看着一个编程接口,它将SQL语句自动转换为对HDFS的查询分析,得到结果。

Pig 也是一个进行数据处理的框架,它提供了一个语言叫Pig Latin,该语言与SQL语言非常相似,它可以帮你把数据进行集成、转换、加载,也就是说我们在把数据保存在数据之前必须将数据进行清洗、转换,这个过程就需要使用Pig,它可以快速完成数据清洗转换工作,然后将其保存到数据仓库当中去进行分析。

Mahout组件是一个数据挖掘库,它可以实现常用数据挖掘算法,如分类、聚类、回归等。该组件是针对MapReduce写的常见的数据算法。但从2015年开始,Spark逐渐取代了MapReduce,MapReduce不再更新,而是全面转向Spark,也就是说现在的Mahout使用的算法库都是用Spark写的,而不是使用MapReduce。

HBase:因为很多数据还是需要数据库的,因此存在基于Hadoop的分布式数据库。HBase的底层数据仍是借用分布式文件存储系统进行保存的。

zookeeper:为分布式协作服务

Flune:日志采集分析,是一个分布式的采集系统

Sqoop:完成Hadoop系统组件之间的互通

 

Spark:它诞生于2009年,而在2015年迅速崛起,下面是Spark的架构图:

底层是Spark的核心主页Spark Core,它提供了相关的API,它提供了相关的数据抽象RDD,Spark Core可以完成RDD的各种各样的操作、开发等,在这基础上,Spark又提供了多种组件,满足我们在企业当中的不同的应用需求。

Spark SQL:处理关系型数据库

Spark Streaming:处理流技术需求,进行流计算

MLlib:封装了一些常见的机器学习算法库(采用Spark写的,提供了整套现成接口)

GraphX:满足图计算需求,编写图计算应用程序

因此Spark是一种可以满足多种企业需求的技能框架。

Spark与Hadoop的区别:

Hadoop存在一些缺陷,严格说应该是MapReduce存在缺陷,MapReduce因为分为Map和Reduce两步,非常简单,但也由于过于简单,很多方面不能进行表达,也就是说其表达能力有限;其次是因为Hadoop中的MapReduce都是基于磁盘计算,Map和Reduce之间的交互都是通过磁盘来完成的,因此磁盘IO开销非常大;另外其延迟比较高,Map和Reduce之间存在一个任务衔接,因为Map和Reduce是分阶段的,只有等所有的Map任务完成以后,Reduce任务才能开启运行,因此存在一个任务等待衔接的开销。同时多阶段迭代执行时,也会严重影响其性能。

Spark是继承了MapReduce的一些核心设计思想,对其进行改进,因此Spark本质上也属于MapReduce。Spark避免了MapReduce的一些缺陷:为了弥补表达有限,Spark不仅有Map和Reduce函数,还提供了更多比较灵活的数据操作类型,如filter、sort、groupby等,因此Spark编程模型更灵活,表达能力也更强大。另外MapRedcue是基于磁盘的计算框架,它是不断地读入磁盘、写磁盘,但Spark却提供了内存计算,可以高效地利用内存,包括很多数据交换都是在内存中完成的,因此可明显提供运行内存,尤其是进行迭代的时候,MapReduce进行迭代需要反复读写磁盘,Spark用内存去读写数据,不存在反复读写磁盘的问题。最后Spark是基于DAG(有向无环图)的任务调度执行机制,它可以进行相关优化,其可以形成流水线,通过有向无环图,就可以避免数据反复落地,不用落地就可以把它的输出直接作为另一个输入,这样形成流水线很快可以完成数据的高效处理。

Spark替代的是Hadoop中的MapReduce,因为Spark是一个计算框架,不能进行存储

Spark可以用Scala、python、Java、R语言进行开发,但是首选是Scala语言,因为Spark这个框架本身是用Scala语言开发的,用Scala开发的应用程序才是最高校的应用程序。

 

Flink:与Spark功能相似

Flink是有柏林理工大学团队开发完成的,在2008年已形成雏形。Flink已形成了完备的形成,可以与Hadoop进行交互,它也是一个和Spark一样的计算框架,用Hadoop进行存储,然后用Flink进行计算。

Spark与Flink的区别:

Flink以前有一部分是用Java编写的,后来一部分用Scala编写的,Spark是用Scala编写的

在接口方面,Spark提供了Java、Python、R、Scala语言,Flink也提供了相同的接口

计算模型方面,Flink是真正能满足实时性要求的计算框架,Spark是批处理的计算框架,而基于批处理的计算框架,都不能帮你真正实时响应(毫秒级),而Flink是可以的。Spark之所有能做流计算,是因为它将流切成一段一段,每一个小段做一个批处理,用每一个小段批处理去模拟批处理,而切成小段,最小的单位是秒,实现不了毫秒级。而Flink模型在设计时,是真正面向流数据的,它是以一行一行为计算单位,可以实现毫秒级计算,这个与Storm相似。

 

Beam:是一整套编程接口,它可以通过统一接口将程序运行到不同的平台上去

这个统一接口是基于Dataflow框架,它与其他框架不能完全兼容

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

大数据代表技术:Hadoop、Spark、Flink、Beam 的相关文章

随机推荐

  • 青龙面板打不开解决办法

    原因是cdn 自己修改一下就可以了 进入文件夹etc找到hosts etchosts 把这二个添加 104 16 88 20 cdn js delivr net 直接复制在最后一行 就可以解决问题了 或者 1 登陆linux 2 进入青龙容
  • alter database open resetlogs

    问题解决 先要弄清楚alter database open resetlogs是什么意思 为什么要用resetlogs打开数据库 这个命令发出后oracle都做了什么 alter database open resetlogs是要打开数据时
  • pytorch——torch.squeeze() 和torch.unsqueeze()的用法

    torch squeeze torch squeeze 这个函数主要对数据的维度进行压缩 去掉维数为1的的维度 比如是一行或者一列这种 一个一行三列 1 3 的数去掉第一个维数为一的维度之后就变成 3 行 torch squeeze a 就
  • 项目答辩PPT(一)

    以 运动APP 为例展开 1 项目整体介绍 定位和需求 在银行工作的王小姐是个健身爱好者 从制订健身计划 到约人一起跑步 再到周末预订场地和家人打一场羽毛球赛 她用一部手机轻松搞定 现在有了手机APP 运动方便多了 王小姐的运动方式是如今都
  • QT创建右键快捷菜单

    0 目标 在Qcommbobox右键出来菜单 点击BCC校验 自动算出校验值填入编辑框 1 UI界面选择Action editor 新建action 记住对象名 actionBCC 右键action 点击转到槽 选择triggered 点击
  • 指针(一)——指针与二级指针

    一 指针理解 指针是一个变量 用来存放地址的变量 指针变量 是一个变量 是指有一个存储空间 里面放的是指针 变量指针 变量的地址 指针的存在是为了方便计算机的内存管理 经过计算和权衡 我们发现 一个字节给一个地址是比较合适的 在32位的机器
  • 给wangeditor添加上标、下标功能

    我使用的wangeditor没有上标和下标功能 以下是自己添加功能的方法 1 设计功能的函数和原型 Sup menu 构造函数 function Sup editor this editor editor this elem div cla
  • 高性能MySQL实战(一):表结构

    最近因需求改动新增了一些数据库表 但是在定义表结构时 具体列属性的选择有些不知其所以然 索引的添加也有遗漏和不规范的地方 所以我打算为创建一个高性能表的过程以实战的形式写一个专题 以此来学习和巩固这些知识 1 实战 我使用的 MySQL 版
  • 【深度学习】 Python 和 NumPy 系列教程(七):Python函数

    目录 一 前言 二 实验环境 三 Python函数基础 1 定义函数 2 参数传递 3 函数调用 4 返回值 5 函数文档字符串 四 将函数存储在模块中 1 创建模块 2 导入模块 a import 模块名 b from 模块名 impor
  • github.io出现的问题及解决方案

    github io出现的问题及解决方案 个人博客 github io出现的问题及解决方案 1 你的连接不是专用连接 放假回家后打开自己的博客 发现无法打开博客 一开始以为是调样式时不小心搞坏了 打开别人的githunb io博客发现都会出问
  • Python删除字符串中连续重复字符,保留所有去重后字符

    看了很多攻略 但都是全部去除字符串中所有的重复字符或者全部去除字符串所有相邻的重复字符 如果希望得到字符串中相邻字符去重后的全部字符 比如字符串a abbcccd222aaabbbddfff6e 去重后能得到 abcd2abdf6e 那可以
  • CMake中if的使用

    CMake中的if命令用于有条件地执行一组命令 其格式如下 if
  • 判断字符串是否为回文串的Java实现方法(收藏自力扣)

    先把字符串转成字符数组 可以调用toCharArray 方法 public char toCharArray 将此字符串转换为一个新的字符数组 Returns 一种新分配的字符数组 其长度是该字符串的长度 其内容被初始化为包含由该字符串表示
  • 时间序列模型Prophet使用详细讲解

    之前我们已经讲过了如何在Windows系统下安装Python版本的Prophet 详细见这里 接下来的几个部分 我们说下如何使用Prophet 以此来体验下Prophet的丰富内容 内容会比较多 主要翻译自官方文档 教程中使用的数据集可在
  • DAP数据分析平台权限体系说明

    数据对于企业来说是非常重要的 所以产品的安全性需要有所保证 而权限分配就是一种保障方式 通过不同权限查看到不同的数据进行数据隔离 保障数据的安全性 DAP数据分析平台通过授权管理进行角色授权 配置授权 业务授权实现三权分立 不同的用户能看到
  • 后端解决跨域

    对于跨域 相信同学们都有所了解 前端的跨域的若干种方式 大家也都知道 什么 JSONP iframe domain 等等 但是我们今天的主题 不是前端跨域 而是后端跨域 一旦提及到跨域 就会想到同源策略 那我们就先来回顾跨域和同源策略 什么
  • upload-labs第五关 pass-05 大小写绕过

    六 pass 05 大小写绕过 源码 is upload false msg null if isset POST submit if file exists UPLOAD ADDR deny ext array php php5 php4
  • 封装浏览器外壳

    Net本身包含WebBrower控件 可惜内核是IE http www cnblogs com M Silencer p 5846494 html 参考以上文章 通过一些控件可以再窗体中嵌入webkit内核的浏览器 目前在尝试CefShar
  • 快手广告推广效果由哪些因素决定?快手广告能满足哪些推广目标?

    快手广告用户与你的行业用户一致快手用户为三线城市 95后年轻用户为主 同时其用户人群也在大城市进行渗透 那么快手广告推广效果由哪些因素决定 快手广告能满足哪些推广目标 一 快手广告推广效果由哪些因素决定 1 广告的推广效果可以分为曝光效果
  • 大数据代表技术:Hadoop、Spark、Flink、Beam

    大数据代表技术 Hadoop Spark Flink Beam Hadoop 从2005年到2015年 说到大数据都是讲hadoop Hadoop是一整套的技术框架 不是一个单一软件 它是一个生态系统 Hadoop有两大核心 第一个是它解决