大数据系统梳理

2023-11-09 10:08
文章标签 梳理 数据系统

本文主要是介绍大数据系统梳理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!













一、Spark基础知识梳理


  1.Spark是什么? 
Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发。Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于Hadoop MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,节省了磁盘IO耗时,号称性能比Hadoop快100倍。 

  2.Spark性能比Hadoop快原因分解: 
(1)传统Hadoop数据抽取运算模型是: 
 

ps:数据的抽取运算基于磁盘,中间结果也是存储在磁盘上。MR运算伴随着大量的磁盘IO。 
(2)Spark 则使用内存代替了传统HDFS存储中间结果: 
 

简述:第一代的Hadoop完全使用Hdfs存储中间结果,第二带的Hadoop加入了cache来保存中间结果。而Spark则基于内存的中间数据集存储。可以将Spark理解为Hadoop的升级版本,Spark兼容了Hadoop的API,并且能够读取Hadoop的数据文件格式,包括HDFS,Hbase等。 

  3.Spark架构图: 
 

(1)Bagel(pregel on spark):Bagel是基于Spark的轻量级的Pregel(Pregel是Google鼎鼎有名的图计算框架)的实现。 

(2)Shark(Hive on Spark):Shark基本上就是在Spark的框架基础上提供和Hive一样的HiveQL命令接口。可以理解为Shark On Spark,就是Hive On Hadoop,两者地位是一样的。ps:Shark可以通过UDF用户自定义函数实现特定的数据分析学习算法,使得SQL数据查询和运算分析功能结合在一起(最大化RDD的重复使用)。
(3)Streaming(Spark):Spark Streaming是构建在Spark上的处理实时数据的框架。其基本原理是将Stream数据分成小的时间片段(几秒),以类似batch批处理的方式来处理小部分数据。
  (4)RDD(Resilient Distributed Dataset,弹性分布式数据集):RDD是Spark操纵数据的一个高度抽象,即Spark所操作的数据集都是包装成RDD来进行操作的,例如Spark可以兼容处理Hadoop的HDFS数据文件,那么这个HDFS数据文件就是包装成Spark认识的RDD来完成数据抽取和处理的。RDD的一个英文定义是:RDDs are fault-tolerant, parallel data structures that let users explicitly persist intermediate results in memory, control their partitioning to optimize data placement, and manipulate them using a rich set of operators. 用我薄弱的英语能力翻译一下就是:RDD是一个能够让用户可以准确的将中间结果数据持久化到内存中的一个可用错的并行数据结构,可以控制(RDD数据集)分区,优化数据存储,并且有一组丰富的操作集可以操作这份数据。ps:RDD是Spark的一个核心抽象,Spark的数据操作都是基于RDD来完成。 

  (5)Map Reduce:MR 是Spark可以支撑的运算模式,比传统的Hadoop MR的性能更好,并且操作集更加丰富。Spark的MR计算引擎的架构图: 
 

ps:图中的FP不知道是什么,谁知道可以告诉我一下哈!
  (6)Spark的运行模式:apache Mesos和YARN计算两套资源管理框架,Spark最初设计就是跑在这两个资源管理框架之上的,至于Spark的本地运行模式和独立运行模式则是方便了调试。(至于图中的EC2,应该属跑在亚马逊云端的资源管理引擎上的吧,我猜?)。YARN资源管理框架也是Hadoop2.0的产物,大大优化了传统Hadoop通过JobTracker和TaskTracker来调度计算任务的方式,使集群更加平台化,可以部署多中计算引擎,比如传统的Hadoop MR和Spark都可以跑在同一个集群上,YARN这类资源管理框架出现之前是做不到的。 

  (7)Spark数据的存储:Spark支持多种数据底层存储,这点比Hadoop支持的数据文件格式广泛的多。Spark可以兼容HDFS,Hbase,Amazon S3等多种数据集,将这些数据集封装成RDD进行操作。 

  4.Spark照比传统Hadoop MR的改进点: 
(1)迭代运算,一次创建数据集。多次使用,减少了IO的开销;(2)允许多种计算模型(包含map-reduce);(3)支持非OO式算法实现,对机器学习算法,图计算能力有很好的支持。 

  5.Spark的适用场景: 
Spark立足于内存计算,从而不再需要频繁的读写HDFS,这使得Spark能更好的适用于: 
(1) 迭代算法,包括大部分机器学习算法Machine Learning和比如PageRank的图形算法。 
(2) 交互式数据挖掘,用户大部分情况都会大量重复的使用导入RAM的数据(R、Excel、python) 
(3) 需要持续长时间维护状态聚合的流式计算。 

二、Hadoop YARN 基础知识梳理

  1.Yarn是什么: 
Yarn (Hadoop MapReduceV2)是Hadoop 0.23.0版本后新的map-reduce框架或这更准确的说是框架容器。 
架构图: 
 

名词解释: 
(1) ResourceManager:以下简称RM。YARN的中控模块,负责统一规划资源的使用。 
ps:ResourceManager是YARN资源控制框架的中心模块,负责集群中所有资源的统一管理和分配。它接收来自NM的汇报,建立AM,并将资源派送给AM。 
(2) NodeManager:以下简称MM。YARN中的资源结点模块,负责启动管理container。 
(3) ApplicationMaster以下简称AM。YARN中每个应用都会启动一个AM,负责向RM申请资源,请求NM启动container,并告诉container做什么事情。 
(4) Container:资源容器。YARN中所有的应用都是在container之上运行的。AM也是在container上运行的,不过AM也是在Container上运行的,不过AM的container是向RM申请的。 

  简述:新一代的YARN容器框架,是传统的MR Hadoop容器框架的升级版本,之前的MR部署架构依赖于JobTracker和TaskTracker的交互模式,而新一代的YARN容器框架,则采用了ResourceManager和NodeManager的交互模式,更高层次的抽象和架构设计,是的YARN容器框架能够支撑多种计算引擎运行,包括传统的Hadoop MR和现在的比较新的SPARK。 

  2.Hadoop YARN产生的背景: 
(1)直接源于MRv1(传统的Hadoop MR)如下几个缺陷: 
受限的扩展性;单点故障;难以支持MR之外的计算; (2)多计算框架各自为战,数据共享困难。比如MR(离线计算框架),Storm实时计算框架,Spark内存计算框架很难部署在同一个集群上,导致数据共享困难。 
简述:Hadoop Yarn的出现则解决了上述问题。 

  3.Hadoop 1.0到Hadoop 2.0(基于YARN)的演变: 
 

简述:hadoop2.0在传统的MapReduce计算框架和存储框架HDFS之间加了一个YARN层,使得集群框架可以支撑多中计算引擎,包括上文中的SPARK。 

  4.以Yarn为核心的Hadoop2.0生态系统: 
 


  简述:图片简单明了,不多说了。 

  5.运行在YARN上的计算框架: 
(1)离线计算框架:MapReduce 
(2)DAG计算框架:Tez 
(3)流式计算框架:Storm 
(4)内存计算框架:Spark 
(5)图计算框架:Giraph,Graphlib 

  6.Spark On Yarn的调度管理: 

     


  7.传统MapReduce 在YARN上的调度: 
 

ps:梳理了一下Spark和YARN的基础概念,初步了解一下哈,细节部分有待深挖!

这篇关于大数据系统梳理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/375478

相关文章

梳理2024年,螺丝钉们爱用的3款剪辑软件

这年头,视频到处都是,就跟天上的星星一样数不清。不管你是公司里的新面孔,还是职场上的老狐狸,学会怎么剪视频,就好比找到了赢的秘诀。不管是给上司汇报工作,展示你的产品,还是自己搞点小视频记录生活,只要是剪辑得漂亮,肯定能一下子吸引大家的目光,让人记得你。咱们今天就来侃侃现在超火的三款视频剪辑工具,尤其是PR剪辑,你肯定听说过,这货在剪辑界可是大名鼎鼎,用它剪视频,既专业又麻利。 NO1. 福昕轻松

C语言程序设计 笔记代码梳理 重制版

前言 本篇以笔记为主的C语言详解,全篇一共十章内容,会持续更新基础内容,争取做到更详细。多一句没有,少一句不行!  形而上学者谓之道,形而下学者谓之器 形而上学者谓之道,形而下学者谓之器 第1章 C语言的流程 1.C程序经历的六个阶段 编辑(Edit)预处理(Preprocess)编译(Compile)汇编(Assemble)链接(Link)执行(Execute)  2.

0906作业+思维导图梳理

一、作业: 1、创捷一个类似于qq登录的界面 1)源代码 #include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget){ui->setupUi(this);//QPushbutton:登录、退出this->join = new QP

简单梳理UE4的Houdini官方插件代码

前言 Houdini官方插件名字叫 “Houdini Engine”,它搭建了Houdini数据与UE4数据间的桥梁。我接触这个插件已经有段时间了,我想是时候梳理一下插件的结构了。(当前我用的UE4版本是4.24.2,Houdini版本18.0.348) 需要说明的是,这篇博客主要是从代码出发的。我准备先分析插件整体的代码结构,再逐个翻阅每个文件试图搞明白他角色。但如果不准备研究代码结构和实现

梳理轻量级建模软件Silo中的所有操作(2):修改

前言 修改(Modify)类操作是建模时使用最为频繁的操作,因此几乎每个操作都分配了快捷键。 本篇包含的快捷键有27个: 操作快捷键追加面(P)追加边(Shift+E)倒角(B)布尔减(,)布尔合(Ctrl+,)布尔交(Shift+<)分离(Ctrl+B)桥接(Shift+B)割裂(X)挤出(Z)补洞(Shift+F)拍扁(Alt+Shift+F)插入型缩放(I)局部缩放(Ctrl+E)局部

Java学习Day37:HTML 第六章:黄金国(项目思路梳理)

第一天:后端思路梳理及代码实现 1.数据库设计 数据库设计使用一张表(course)设计 CREATE TABLE course(id INT PRIMARY KEY AUTO_INCREMENT COMMENT '课程ID',cname VARCHAR(255) NOT NULL COMMENT '课程名称',price DOUBLE NOT NULL COMMENT '售卖价格

【Linux】常见指令及权限相关知识详细梳理

1.Linux基本指令 1. ls指令         语法: ls [选项][目录或文件]         功能:对于目录,该命令列出该目录下的所有子目录与文件。                    对于文件,将列出文件名以及其他信息。         常用选项:         -a 列出目录下的所有文件,包括以 . 开头的隐含文件。         -d 将目录象文件一样显示,而不

完整指南:CNStream流处理多路并发框架适配到NVIDIA Jetson Orin (二) 源码架构流程梳理、代码编写

目录 1 视频解码代码编写----利用jetson-ffmpeg 1.1 nvstream中视频解码的代码流程框架 1.1.1 类的层次关系 1.1.2 各个类的初始化函数调用层次关系 1.1.3 各个类的process函数调用层次关系 1.2 编写视频解码代码 1.2.1 修改VideoInfo结构体定义 1.2.2 修改解封装代码 1.2.3 decode_impl_nv.h

16、关于信贷业务中会计记账方法的种类|总账与分户账关系的梳理!

导语: 会计基础是账务账户的理论框架基础,我相信大部分人是没有财务知识基础的,那么在没有基础的情况下,也许一个简单的概念就能阻碍你的设计,本文将最基本的会计知识梳理。 原文链接https://mp.weixin.qq.com/s/9MyU9dFJ1zkcfkb6UsqSMQ 01 会计记账方法的种类 会计记账方法(bookkeeping methods)是根据单位所发生的经济业务

【AI大模型】相关知识梳理

为了系统性梳理AI,大模型,训练和推理,数学,机器学习,python等基础知识,并在此基础上深入理解经典论文,本人将持续更新有关这些方向的基础知识博客,博客 将保持一如既往的 通俗易懂的风格。并且结合代码来深入理解。 Transformer 提出背景和原因与RNN结构相比的优势基本实现流程TokenizationPosition embeddingbn,ln和rmsnrompost-norm和