一、Spark核心API
----------------------------------------------------------------------------------------------
[SparkContext]:连接到Spark集群,入口点
[HadoopRDD]:读取Hadoop上面的数据
[RDD]:弹性分布式数据集
不可变的数据分区集合
基本操作(map, filter, persist)
分区列表 //数据
应用给每个分区的函数列表 //行为
到其他RDD的依赖列表
针对KV类型的RDD分区类,可选
首选位置列表,可选
发现:调用TextFile()方法,返回的是一个HadoopFile文件
[DAGScheduler]:高级调度器,实现按照Stage(由Shuffle制造)层面的调度
[TaskScheduler]:任务调度器,实现按照Task层面的调度
专业术语:
[Application】:用户提交的应用,每个应用对应一个spark context,包含多个job
【Job】: 由actoin(执行操作)来划分,job是阶段stage的集合,提交给调度的顶层的工作项目
【stage】: 由shuffle来划分,stage是Task的集合,计算job中的中间结果,同一RDD的每个分区都会应用相同的计算函数。
[Task】:单独的工作单元,每个发送给一台主机。一台节点机器上面可以有多个Task,数量一般由core决定
二、Actoin发生之后,Spark的具体执行流程
-----------------------------------------------------------------------------------
总览:客户端创建sc对象,调用sc的textFile方法以创建系列HadoopRDD对象,将上面的RDD对象返回给客户端,由客户端触发
执行函数
调用执行函数collect之后执行细节 :