spark任务shell运行_spark学习(1)简介

简介

spark是一个快速且通用的计算平台。支持python, scala, java, R 等。可运行在Hadoop集群上,建立在hadoop的分布式hdfs上。

软件栈

0a8d3210568bf4fe8378a8cca7124cdd.png
  1. spark Core: 实现spark基本功能,包含任务调度、内存管理、错误恢复以及与存储系统交互等。还包含对RDD(弹性分布式数据集)的API定义
  2. Spark SQL: 用来操作结构化数据包,可以使用sql或者hql 来进行查询,与rdd操作完美结合
  3. Spark Streaming: 提供对实时数据进行流式计算的组件,API与RDD API 高度对应。
  4. MLlib: 包含常用的机器学习的程序库,包括分类、聚类、回归、协同过滤等,还提供模型评估、数据导入等额外功能
  5. Graph X : 提供对于图的操作,可以 并行进行图计算
  6. 集群管理器cluster master: 支持hadoop Yarn, Apache Mesos ,此外spark附带了一个自带的独立调度器方便入门

核心概念

72f39478cc8a9515cef1b1c5174babbf.png

spark的整体流程为:

client提交应用->master找到Driver->Driver向clusterManager申请资源->应用转为rdd Graph -> DAGScheduler将rdd Graph转换为Stage的DAG提交给TaskScheduler->TaskScheduler提交任务给excutor执行

  1. Driver: 运行Application的main()函数并创建SparkContext,为应用逻辑执行的起点,负责作业的调度即Task任务的分发
  2. SparkContext: 代表与计算集群的一个连接,控制整个应用的生命周期。任何一个spark程序开始时都需要先创建SparkContext对象,然后才可以进行Rdd创建
  3. Cluster Manager: 在standalone模式中未master节点,在Yarn模式中为集群管理器,负责控制整个集群以及worker监控
  4. Worker: 从节点,负责控制单个计算节点,启动executor或Driver。在Yarn模式中为NodeManager,负责计算节点的资源控制
  5. Executor: 执行器,在worker node上执行任务的组件、用于启动线程池运行任务,每个application拥有独立的一组executor
  6. RDD: spark基本计算单元,一组RDD可形成执行的有向无环图(DAG) RDD Graph
  7. DAG Scheduler: 根据作业(job)构建基于Stage的DAG, 并提交Stage给TaskScheduler
  8. TaskScheduler:将任务task 分发给 Executor进行执行

Spark作业运行逻辑

67c92e8f21b5f475fb67b3207a22f326.png

spark Application中,执行逻辑会形成有向无环图DAG。Action算子触发后,累积算子形成DAG,然后由调度器调度图中的任务进行计算(spark为懒执行,只有执行action操作时,才会进行真正的计算)

spark会根据rdd之间的不同依赖关系切分形成不同的stage来进行执行,一个stage包含一些列函数执行流水线,图中的A、B、C、D分别代表不同的rdd,Rdd内的方框代表不同的分区。

一个例子

spark-shell例子

69e62db1518209eb40768dcc579068a7.png

spark-shell 执行时指定 --master local[线程数] 启动本地调试模式,执行filter操作,filter操作会构建成一个rdd graph, 当执行take这个action时,图执行,返回结果

spark独立应用

使用Intellij写的一个wordcount程序

d67fb20c22e88b10ebb49d81f15f2233.png

【注意】

case(x, y) => x + y

x 代表返回值, y代表对rdd各个元素的遍历

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值