Java 基础 锁
摘要:滴滴面试,分布式の锁,我:?。故记录 https://www.cnblogs.com/wuhan729/p/8601108.html 单进程的锁 在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量(sy
阅读全文
Spark 累加器使用
摘要:1.使用foreach碰到了问题 没看过累加器的时候,写了这么个代码,发现map里头foreach完了还是0啊?咋回事啊? 1 def calNrOfEachDataMap(data:RDD[String],neededDataMap:Set[Map[Int,String]]): Map[Map[I
阅读全文
Spark 宽依赖与窄依赖
摘要:原始的RDD通过一系列的转换就就形成了DAG,根据RDD之间的依赖关系的不同将DAG划分成不同的Stage(按宽依赖划分Stage) 窄依赖是指父类分区的数据,被子类RDD中的指定的唯一一个分区消费 宽依赖就是子类的分区的数据,要依赖多个父类RDD的分区,由于有Shuffle的存在,只能在paren
阅读全文
Spark Persist与Cache checkpoint
摘要:1.为什么要Cache / persist 由于spark中的RDD都是只读不可变的对象,也就是RDD的每一个transformation操作都会产生一个新的RDD。所以Spark任务中的一个优化原则就是避免创建重复的RDD而尽量复用同一个RDD。 当迭代使用到一个RDD的时候,我们不希望它重新从头
阅读全文