随笔分类 - spark-core
spark-core
摘要:org.apache.spark.examples.SparkPi 27行 def main(args: Array[String]): Unit = { val spark = SparkSession .builder .appName("Spark Pi") .getOrCreate() va
阅读全文
摘要:一般提交任务都是spark-submit --class org.apache.spark.examples.SparkPi 类似的我们下面就以这个SparkPi 完成源码的跟进 寻找main函数类 我们跟进一个spark命令行的样例详细看看spark的源码 cat /opt/spark/spark
阅读全文
摘要:onstart revice方法总结 onstart 1.启动定时发送 向自己 ReregisterWithMaster(一直运行) 2.启动多线程 向master RegisterWorker msg: RegisterWorkerResponse 1.更新master 向自己 SendHeart
阅读全文
摘要:一.case msg: RegisterWorkerResponse 二.case SendHeartbeat 三.case WorkDirCleanup 四.case MasterChanged 五.case ReconnectWorker 六.case LaunchExecutor 七.case
阅读全文
摘要:一.case msg: RegisterWorkerResponse 二.case SendHeartbeat 三.case WorkDirCleanup 四.case MasterChanged 五.case ReconnectWorker 六.case LaunchExecutor 七.case
阅读全文
摘要:一.case msg: RegisterWorkerResponse 二.case SendHeartbeat 三.case WorkDirCleanup 四.case MasterChanged 五.case ReconnectWorker 六.case LaunchExecutor 七.case
阅读全文
摘要:receive 方法其实是大量的case,分别对应处理不同的场景 一.case msg: RegisterWorkerResponse 二.case SendHeartbeat 三.case WorkDirCleanup 四.case MasterChanged 五.case ReconnectWo
阅读全文
摘要:一.main函数详解 def main(argStrings: Array[String]): Unit = { Thread.setDefaultUncaughtExceptionHandler(new SparkUncaughtExceptionHandler( exitOnUncaughtEx
阅读全文
摘要:一.Master recive方法总结 1.1 公共方法介绍及发送的消息介绍 schedule():方法很重要,基本上所有的方法都会调用这个 launchDriver() launchExecutor() all: worker.send(LaunchDriver) worker.send(Laun
阅读全文
摘要:Master recive全部方法 一.case ElectedLeader => ...... 二.case CompleteRecovery => ...... 三.case RevokedLeadership => ...... 四.case WorkerDecommissioning =>
阅读全文
摘要:Master recive全部方法 一.case ElectedLeader => ...... 二.case CompleteRecovery => ...... 三.case RevokedLeadership => ...... 四.case WorkerDecommissioning =>
阅读全文
摘要:Master recive全部方法 一.case ElectedLeader => ...... 二.case CompleteRecovery => ...... 三.case RevokedLeadership => ...... 四.case WorkerDecommissioning =>
阅读全文
摘要:源码地址:"https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.1.3/spark-3.1.3.tgz" 一.spark源码中基础概念的介绍: 1、RpcEnv:RPC包装对象类似于sparkcontext对象2、RpcEndpoint
阅读全文
摘要:sparkcore 优化 数据倾斜处理 1.etl处理 2.并行度 3.过滤倾斜key(需要null,聚合需求(随机分区预聚合,最终hash散列聚合) 拆分(单独拿出来处理,最终union起来)) 4.reduce join 转mapjoin 5.两阶段聚合 6.无前缀聚合(随机前缀:大表加随机前缀
阅读全文
摘要:Spark-core概念补充 Spark相对于hadoop的优势 1.减少IO(如非必要不落盘) 2.并行度(多线程) 3.中间结果持久化(多次使用) 4.shuffle方案(不排序) 5.内存管理(静态内存,动态内存,内存可配置) 概念 Master节点,协调资源,连接worker节点运行Exxc
阅读全文
摘要:有了上面三篇的函数,平时开发应该问题不大了。这篇的主要目的是把所有的函数都过一遍,深入RDD的函数 RDD函数大全 数据准备 val sparkconf = new SparkConf().setAppName("test_Spark_sql").setMaster("local[2]") val
阅读全文
摘要:一:广播变量 //广播变量其实就是将一个变量传播到每个excetor,实现excetor共享同一个只读变量. //其中有一个难题就是,动态广播变量.我在实验过程中只是实现了不同job的广播变量更改,对于有N分钟修改一次还没有试验出更好的方法 import org.apache.spark.api.j
阅读全文
摘要:一:rdd聚合操作 1.count val conf = new SparkConf().setAppName("HelloWorld").setMaster("local") val sc = new JavaSparkContext(conf).sc val dataLength = sc.te
阅读全文
摘要:一:变换操作 rdd中有元组,元组只能是key,value结构,适用于下面很多方法 1.map val conf = new SparkConf().setAppName("HelloWorld").setMaster("local") val sc = new JavaSparkContext(c
阅读全文