Spark 注册数据源

DataSourceRegister注册过程,自定阅读XXRelationProvider,DataSource 查找过程,DataFrameReader,DataFrameWriter,CheckpointRDDPartition,ReliableCheckpointRDD,SparkSession内部包含的变量SparkContext、sharedState、SQLContext、RuntimeConfig

阅读全文

Spark Core相关-2

调度过程,RDD的主要函数,DAGScheduler将各个RDD划分到不同stage,每个Stage包含若干个TaskSet,交给内部的并发队列处理事件;TaskScheduler有点像 YARN队列,创建调度池和本地性判断,之后交给SchedulerBackend;MemoryAllocator负责分配内存,包括off-heap和on-heap,其中的MemoryBlock包含了obj指向heap的对象、以及offset和length;TaskMemoryManager负责task的内存管理,MemoryConsumer的实现类负责消费这些内存;Task包括:ShuffleMapTask、ResultTask,TaskContext 会启动新线程运行Task;AppendOnlyMap类似HashMap但做了优化,shuffle和spill的几个类:ExternalSorter、ExternalAppendOnlyMap、ShuffleExternalSorter、UnsafeExternalSorter;ShuffleWriter和实现类体系负责写磁盘,ShuffleReader主要由ShuffleBlockFetcherIterator 去抓取数据,以及管理他们的ShuffleManager;Executor 调用 launchTask,在新线程中启动 TaskRunnerTaskRunner 又会启动 Task;Master和选举;Driver调度过程,Executor分配过程,尽可能跨Worker;集群模式下TaskSchedulerImpl->StandaloneSchedulerBackend->StandaloneAppClinet,跟Master通讯。Master调用launchExecutor给Wroker,Worker拼接ProcessBuilder启动新进程,CoarseGrainedExecutorBackend会跟Worker通讯。YARN cluster和client模式

阅读全文