摘要:
一直想不明白什么是RDD,为什么叫RDD,RDD的第一个单词Resilient意义是什么?为什么这样设计RDD。
短短的几百字,是在慢慢摸索过程中的一点理解,说说我对RDD中的R的理解。
RDD还包含了一个分布式的概念,后面再找时间来研究 阅读全文
摘要:
RDD是每个分区独立执行,并行执行的,执行路径 Executor.launchTask() Task.runTask() RDD.iterator RDD.compute() or from checkpoin 有2种类型的Task, ShuffleMapTask 和 ResultTask。分别对应 阅读全文
摘要:
RDD的依赖构成了它的血统(linage) 叫族谱更容易理解 有2种依赖关系:窄依赖和宽依赖 构成窄依赖关系的RDD,每一个分区对应一个task(一个线程),所有task可以并行运行; 宽依赖关系的RDD,要等到父RDD所有分区计算结束后,进行Shuffle,然后才能开始计算。 一个RDD可以依赖多 阅读全文
摘要:
为了让Task对象能够重用,在Executor中,每一个分区数据都会有一个Task去进行计算,计算完以后,就要释放taslk的内存,包括堆内和堆外内存,并且,要把Thread Local的内存也释放掉(TLA)。 org.apache.spark.scheduler.Task run() { try 阅读全文
摘要:
这个可能是DAG的魅力之一了。RDD的运行是懒执行的,DAG能够整合rdd的运行过程,让很多的操作集中在一个线程里运行连续执行,避免了磁盘和网络io 阅读全文
摘要:
spark源码里面,使用得很多的一个方法 ClosureCleaner.clean() 阅读全文
摘要:
使用自定义排序方法实现二次排序 阅读全文
摘要:
spark进行二次排序,这里使用一种错误的做法,导致2个问题:
1, 按照复合key的字典排序结果并非我们所期望
2, 复合key的做法,使rdd的dize增加了1倍 阅读全文
摘要:
spark编译出错, kafka缺少guava依赖 阅读全文
摘要:
kafka -> storm -> hbase,完成wordcount的计算 阅读全文