posted @ 2016-08-05 11:30
随笔分类 - Spark
摘要:Shuffle是MR的核心和最重要的地方,也是性能弹性最大的地方 在Spark中,1.1版本之前,框架默认采用的shuffle是hash,1.1之后,默认采用了sort 从下图可以看出在数据量小,mapper和reducer都比较小的时候,二者的性能几乎一样,当数据量大的情况下,sort shuff
阅读全文
摘要:RDD的好处很多,缺点在于不支持增量的迭代计算,比如在task的前半段只做一半数据的处理,后续的task再加上后一半处理,这种需求不支持 还有就是不支持细粒度的更新和写操作 rdd.Partitions() : 需要知道数据分配在哪里,返回一个array,里面是partition对象,该对象指向了数
阅读全文
posted @ 2016-08-05 11:27
摘要:在spark中,原始的sortByKey是以map为操作对象,按照key进行排序,value跟随 如果我们要设置多维排序,就需要自定义这个key对象 下面以三维度为例: 该class需要 extends Ordered[T] with Serializable , 然后将这个类的对象作为sortBy
阅读全文
posted @ 2016-07-13 15:16
摘要:1. 我们发现计算步骤特别耗时,就在之前进行persist 2. 如果我们的计算链条特别长,就在之前进行persist 3. 在checkpoint之前,必须进行persist checkpoint是属于transform操作,也就是说,在最后的action被触发后,计算完成,框架发现在中间有一个c
阅读全文
posted @ 2016-07-11 00:18
摘要:调度模型的好坏,是由底层的抽象模型所决定的,spark的底层抽象是RDD spark调度模型系统,分为底层调度模型(TASKscheduler)和高层调度模型(DAGscheduler) 调度过程 1. application driver发出请求,这个application首先创建sparkcon
阅读全文
posted @ 2016-07-06 10:33
摘要:testFile可以接受一个HDFS文件,可以是一个本地系统的文件,或者是任意hadoop支持的文件系统的URI,返回一个RDD[String] 1.调用hadoopFile,生成一个HadoopRDD 2.将HadoopRdd的key省去,只留value,生成一个mapPartitionRDD 一
阅读全文
posted @ 2016-07-05 15:44
摘要:这个类是用于记录HDFS的Block对应的所有datanode的信息 源码如下: 不得不说在DFSInputStream.java中,叫blockSeekTo的方法 通过输入一个文件的偏移量,返回在哪个datanode上去取是最好的 内部实现有2步: 1. 首先找到根据这个偏移量,对应的block有
阅读全文
posted @ 2016-07-05 14:25
摘要:分布式数据并行环境下,保持数据的本地性是非常重要的内容,事关分布式系统性能高下。 概念: block : HDFS的物理空间概念,固定大小,最小是64M,可以是128,256 。。也就是说单个文件大于block的大小,肯定会被切分,被切分的数目大概是:比如文件是250M,block是64M,就会被分
阅读全文
posted @ 2016-07-05 11:46
浙公网安备 33010602011771号