
Spark
文章平均质量分 83
guyy_moon
这个作者很懒,什么都没留下…
展开
-
Apache Spark——Shuffle 过程
如果我们将 map 端划分数据、持久化数据的过程称为 shuffle write,而将 reducer 读入数据、aggregate 数据的过程称为shuffle read。那么我们来了解一下,在spark中,如何将shuffle write和shuffle read加入到逻辑或者物理执行图中并高效实现。Shuffle write spark的shuffle通常使用HashMap对...原创 2018-04-13 17:26:52 · 373 阅读 · 0 评论 -
Spark——countByKey()与reduceByKey()
1.transformation & action transformation :是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD或者从RDD生成一个新的RDD action : 是得到一个值,或者一个结果(直接将RDDcache到内存中) 所有的transformation都是采用的懒策略,就是如果只是将transformation提交是不会执行计算的,...原创 2018-04-17 19:44:23 · 4927 阅读 · 1 评论 -
Spark——Job逻辑执行图
Job逻辑执行图典型的Job逻辑执行图如上所示,经过下面四个步骤可以得到最终执行结果:1.从数据源(可以是本地file,内存数据结构, HDFS,HBase等)读取数据创建最初的RDD。2.对RDD进行一系列的transformation()操作,每一个transformation()会产生一个或多个包含不同类型RDD。3.对最后的final RDD进行action()操作,每个partition...原创 2018-04-18 20:46:35 · 2277 阅读 · 0 评论 -
Spark中的groupByKey 、aggregateByKey、reduceByKey 的区别
1.函数用法 (1)groupByKey的函数用法 groupByKey(numPartitions) (2) aggregateByKey 的函数原型def aggregateByKey[U: ClassTag](zeroValue: U, partitioner: Partitioner) (seqOp: (U, V) => U, combOp:...原创 2018-05-30 17:54:51 · 10938 阅读 · 0 评论 -
Spark-性能调优
常用参数配置--num-executors N--executor-cores N :这个参数决定了每个Executor进程并行执行task线程的能力。因为每个CPU core同一时间只能执行一个task线程。--driver-memory Ng --executor-memory Ng :每个Executor进程的内存设置4G~8G较为合适--conf spar...原创 2018-06-20 14:46:37 · 279 阅读 · 0 评论 -
Spark的排序原理
就比较新的Spark来说,题主要找的 RDD 层面的 sortByKey() 实现在Spark的 shuffle 当中的。 sortByKey() 采用的是tera-sort风格的实现,其自身包含一个使用range partitioning的shuffle操作。Stage 0:Sample。创建 RangePartitioner,先对输入的数据的key做sampling来估算key的...原创 2018-07-10 17:06:00 · 2281 阅读 · 0 评论