【SPARK】- RDD操作

spark相关流程

每个Spark应用都由一个驱动器程序(drive program)来发起集群上的各种并行操作。驱动器程序包含应用的main函数,驱动器负责创建SparkContext,SparkContext可以与不同种类的集群资源管理器(Cluster Manager),例如Hadoop YARN,Mesos进行通信,获取到集群进行所需的资源后,SparkContext将得到集群中工作节点(Worker Node)上对应的Executor(不同的Spark程序有不同的Executor,他们之间是相互独立的进程,Executor为应用程序提供分布式计算以及数据存储功能),之后SparkContext将应用程序代码发送到各Executor,最后将任务(Task)分配给executors执行

整体流程:Client提交应用----->Master找到一个Worker启动Driver----->Driver向Master或资源管理器申请资源,之后将应用转换为RDD Graph----->由DAG Schedule将RDD Graph转化为Stage的有向无环图提交给TaskSchedule------>再由TaskSchedule提交任务给Executor执行-------->其他组件协同工作

相关组件

  • ClusterManager:在Standalone模式中即为Master节点(主节点),控制整个集群,监控Worker.在YARN中为ResourceManager
  • Worker:从节点,负责控制计算节点,启动Executor或Driver。在YARN模式中为NodeManager,负责计算节点的控制。
  • Driver:运行Application的main()函数并创建SparkContect。
  • Executor:执行器,在worker node上执行任务的组件、用于启动线程池运行任务。每个Application拥有独立的一组Executor。
  • SparkContext:整个应用的上下文,控制应用的生命周期。
  • RDD:Spark的计算单元,一组RDD可形成执行的有向无环图RDD Graph。
  • DAG Scheduler:根据作业(Job)构建基于Stage的DAG,并提交Stage给TaskScheduler。
  • TaskScheduler:将任务(Task)分发给Executor。

RDD创建(常用)

一、从文件系统加载创建RDD          通过textFile(path)方法

1、从本地文件系统中加载数据

如:

2、从分布式文件系统HDFS中加载数据

三种方式等价

二、通过并行集合(数组)来创建    通过parallelize()方法

RDD操作

                                                                                                 DAG图  

对于RDD而言,每次转换操作都会产生不同的RDD,转换得到的RDD是惰性求值的,也就是说,整个转换过程只是记录了转换的轨迹,并不会发生真正的计算,只有到行动操作的时候,才会发生真正的计算,从DAG图的源头开始进行计算操作。

https://github.com/chris1132/spark_lecture/tree/master/src/main/scala/com/chovy/spark/RDD

常用转换操作

filter(func):筛选满足func的元素,返回一个新的数据集

map(func):将每个元素传递到函数func中,返回一个新的数据集

flatMap(func):与map相似,每个输入元素可以映射到0或多个输出结果

groupByKey():应用于(K,V)键值对的数据集,返回一个新的(K,Iterable)形式的数据集

reduceByKey(func):应用于(K,V)键值对的数据集,返回一个新的(K,V)形式的数据集,其中每个值是将每个key传到func函数中进行聚合

常用行动操作

count():返回数据集中的元素个数

collect():以数组的形式返回数据集中的所有元素

first():返回第一个元素

take(n):返回前n个元素

reduce(func):通过函数func聚合数据集中的元素(输入两个参数并返回一个值)

foreach(func):将数据集中的每个元素传递到函数func中运行

RDD惰性机制只要没有遇到行动类型操作,不会进行真正计算

如下图,在调用reduce方法时才会触发计算

流程

 

猜你喜欢

转载自blog.csdn.net/u010530712/article/details/82622728