![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
文章平均质量分 92
代码健身摩托gucci上海
这个作者很懒,什么都没留下…
展开
-
spark shuffle·读写流程 和 rdd持久化
1.对比mapreduce和spark mapreduce里 map的第3条就是说,比如我存了很多条数据,如果一条一条写进磁盘,肯定有很多次IO,我先归并到一个缓存里面再溢写磁盘。spark与其的差别就是用map代替了buffer,因为map存的key唯一,用map的话可以直接完成combiner操作,且map的key里也有分区的key,避免了一定的排序操作。除此之外,spark溢写也是必须触发磁盘的但是多次利用的数据可以放入内存=======================================原创 2022-12-03 16:10:45 · 384 阅读 · 0 评论 -
spark-core-源码、Worker启动、sparksubmit提交、Driver启动
在提交我们写好的jar包时候,用到submit命令,他的源码解析流程如上图位于deploy里的SparkSubmit里面,根据main方法一点点run进去,分配我们传的参数,尤其是MainClass这个东西就是我们要先执行的一个位置,他根据我们设置的deploy-mode来进行选择在分配参数的时候,deploy-mode如果是client模式,直接MainClass为我们jar包去执行。原创 2022-11-24 09:42:18 · 514 阅读 · 0 评论 -
spark分布式计算框架
MapReduce是计算逻辑清晰的,只有两个步骤,任务是JVM进程级别,每执行到什么步骤 去申请具体的资源。而spark根本不知道具体有几个stage,逻辑未知,每个人的job stage等根本不知道。它是默认倾向于抢占资源的,他会在sparkContext()这个函数执行的时候,直接根据下面textFile()代码逻辑抢占所有资源,任务以JVM线程的级别泡在Excutor里面。原创 2022-11-18 19:54:45 · 1131 阅读 · 0 评论 -
spark-core 源码
就是计算一下你读取的文件一共将分成多少个切片(或者说分区) 首先切片大小肯定小于物理文件块的大小用的是 InputFormat接口下的 FileInputFormat2.compute这个函数是指明 我已经分区好了,未来我这个计算要向分区所在的哪个地方移动去,也就是计算向数据移动 我要找文件所在物理块号这个函数其实返回的就是一个迭代器,里面有hasNext()和getNext()方法1. cartesian笛卡尔积笛卡尔积操作 cartesian函数。原创 2022-11-14 16:45:03 · 876 阅读 · 0 评论