码迷,mamicode.com
首页 > 其他好文 > 详细

spark原理

时间:2019-10-04 13:12:04      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:examples   driver   操作   ack   数据库   nod   抽取   多个   info   

原理:

RDD:
使用内存--基本处理单位RDD:弹性分布式数据集

spark处理的时候,处理的是RDD数据(相当于是将块数据加载到内存中)

类似: 

[1,2,3,4,5,...]        1个节点处理 [1,2]   1个节点处理[3,4,5] ......

 

stage:

一个 Job 会被分成一个或多个Stage, 类似airflow的DAG

技术图片

 

 

partition:

把RDD分成多个分区运行在分布式的节点上,一个分区对应一个task

 

相关概念:

技术图片

 

 

spark生态圈:

技术图片

 

 

? Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的  (就是上面的Apache Spark)
? Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。即用spark操作hive,和上面的用hive操作spark引擎正好相反。
? Spark Streaming:对实时数据流进行处理和控制。Spark Streaming允许程序能够像普通RDD一样处理实时数据。 在kafka的基础上进行一些算子运算。
? MLlib:一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。GraphX:控制图、并行图操作和计算的一组算法和工具的集合。
? GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作

 

集群组件说明:

Cluster Manager:集群管理器。在Standalone模式中即为Master主节点,控制整个集群,监控Worker。在YARN模式中为Resourcemanager
? Worker节点:从节点,负责控制计算节点,启动Executor或者Driver。在Standalone模式中指的是通过slave文件配置的Worker节点,在Spark on Yarn模式下就是NoteManager节点
? Driver:运行Application的主函数, java的入口函数main,如上面例子中的org.apache.spark.examples.JavaSparkPi
? Executor:执行器,是为某个Application运行在worker node上的一个进程。其进程名称为CoarseGrainedExecutorBackend。一个CoarseGrainedExecutorBackend有且仅有一个Executor对象, 负责将Task包装成taskRunner,并从线程池中抽取一个空闲线程运行Task, 这个每一个CoarseGrainedExecutorBackend能并行运行Task的数量取决于分配给它的cpu个数

 

三种模式对比:

技术图片

 

spark原理

标签:examples   driver   操作   ack   数据库   nod   抽取   多个   info   

原文地址:https://www.cnblogs.com/hongfeng2019/p/11621794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!