自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

隔壁老杨的专栏

关注大数据,hadoop,hbase,spark,姑娘等相关话题

  • 博客(108)
  • 收藏
  • 关注

spark transform系列__groupByKey

这个操作的作用根据相同的key的所有的value存储到一个集合中的一个玩意.def groupByKey(): RDD[(K, Iterable[V])] = self.withScope {  groupByKey(defaultPartitioner(self))}在 做groupByKey的操作时,由于需要根据key对数据进行重新的分区操作,因此这个操作需要有一个partition...

2016-01-29 09:15:58 151

原创 spark transform系列__Coalesce

Coalesce/repartitioncoalesce这个操作是把当前的RDD中的partition根据一个新的传入的parition的个数,对partition中的结果集进行重新组合成一个新的结果集的函数.这个函数需要传入两个参数:参数1:需要重新进行分区的分区个数.参数2:是否执行shuffle操作,默认为false.def coalesce(numPartition

2016-01-28 18:17:34 1005

原创 spark transform系列__Cartesian

Cartesian这个操作返回两个RDD的笛卡尔集.如果两个RDD中某一个RDD的结果集为空集时,这个结果集也是一个空集.这个操作不会执行shuffle的操作.def cartesian[U: ClassTag](other: RDD[U]): RDD[(T, U)] = withScope {  new CartesianRDD(sc, this, other)}从上面的

2016-01-28 18:15:50 1716 1

原创 spark transform系列__join

JoinJoin包含有join,fullOuterJoin,leftOuterJoin,rightOuterJoin四种实现,下面先根据join的实现流程进行分析,再对join分析的结果的基础上,最后根据后面三种join的实现,说明下这几种JOIN的差别所在.Join的函数中,需要一个Partitioner的实例,默认是HashPartitioner,join的实现中,是直接通过调用 

2016-01-28 18:11:52 1931

原创 spark transform系列__cogroup

Cogroupcogroup的函数实现:这个实现根据两个要进行合并的两个RDD操作,生成一个CoGroupedRDD的实例,这个RDD的返回结果是把相同的key中两个RDD分别进行合并操作,最后返回的RDD的value是一个Pair的实例,这个实例包含两个Iterable的值,第一个值表示的是RDD1中相同KEY的值,第二个值表示的是RDD2中相同key的值.由于做cogroup的操作

2016-01-28 18:08:49 1976

原创 spark transform系列__aggregateByKey

aggregateByKey这个函数可用于完成对groupByKey,reduceByKey的相同的功能,用于对rdd中相同的key的值的聚合操作,主要用于返回一个指定的类型U的RDD的transform,在这个函数中,需要传入三个参数:参数1:用于在每个分区中,对key值第一次读取V类型的值时,使用的U类型的初始变量,参数2:用于在每个分区中,相同的key中V类型的值合并到参数1创建

2016-01-28 18:07:29 3202

原创 spark transform系列__distinct

Distinct的操作其实是把原RDD进行MAP操作,根据原来的KEY-VALUE生成为KEY,value使用null来替换,并对新生成的RDD执行reduceByKey的操作,这个reduceByKey的操作中,传入的x,y都是null,这个地方执行reduceByKey的函数(下面的红色部分,直接返回传入的第一个值),执行完成reducebykey的操作后,这个时候新的RDD就只相同的ke

2016-01-28 18:05:07 7544

原创 spark transform系列__union

UnionUnion的transform主要是把两个RDD合并成一个RDD的动作,在union的操作中,如果要进行合并的两个rdd的partitioner的算子实例是同一个实例时,表示这两个rdd有相同的分区方法,合并后的RDD为PartitionerAwareUnionRDD实例.否则生成UnionRDD实例. Union的实现代码:def union(other: RDD[T]

2016-01-28 18:01:00 2260

原创 spark transform系列__intersection

这个transform返回的是进行操作的两个RDD中,key-value都相同的所有的数据集的新的RDD.说白了就是把两个RDD中数据完全相同的数据进行保留,不相同的数据直接丢弃掉.这个操作会执行shuffle操作. 实现代码: def intersection(other: RDD[T]): RDD[T] = withScope {这里首先执行对第一个rdd的map操作,执行

2016-01-28 17:58:09 2051

原创 spark transform系列__mapPartitions

mapPartitions/mapPartitionsWithIndex这两个transform中:mapPartitions与map的区别是map中是对每个partition中的iterator执行map操作,对map过程中的每一条record进行传入的function的处理,而mapPartitions是把partition中整个iterator传给function进行处理.如果是map操

2016-01-28 17:55:16 1132

原创 spark transform系列__sample

Sample是对rdd中的数据集进行采样,并生成一个新的RDD,这个新的RDD只有原来RDD的部分数据,这个保留的数据集大小由fraction来进行控制,这个分析中,不分析sample的两个算法的具体实现,如果后期有必要时,可以分析这两个算法的具体的实现.首先,先看看sample的实现代码:def sample(    withReplacement: Boolean,    fr

2016-01-28 17:45:27 5183

原创 spark transform系列__reduceByKey

reduceByKey通过PairRDDFunctions进行的实现,reduceByKey的操作是把两个V类型的值进行处理,并最终返回的还是一个V类型的结果(V类型就是value的类型).针对一个reduceByKey的操作,需要执行shuffle的操作,也就是说如果包含有reduceByKey时,会生成两个执行的stage,第一个stage会根据shuffle的partition与分区的算子,

2016-01-28 17:22:25 1712

原创 spark transform系列__sortByKey

该函数主要功能:通过指定的排序规则与进行排序操作的分区个数,对当前的RDD中的数据集按KEY进行排序,并生成一个SHUFFLEdrdd的实例,这个过程会执行shuffle操作,在执行排序操作前,sortBy操作会执行一次到两次的数据取样的操作,取出RDD中每个PARTITION的部分数据,并根据进行分区的partition的个数,按key的compare大小把某个范围内的key放到一个指定的par

2016-01-28 17:14:15 1260

原创 spark transform系列__groupByKey

这个操作的作用根据相同的key的所有的value存储到一个集合中的一个玩意.def groupByKey(): RDD[(K, Iterable[V])] = self.withScope {  groupByKey(defaultPartitioner(self))}在做groupByKey的操作时,由于需要根据key对数据进行重新的分区操作,因此这个操作需要有一个partiti

2016-01-28 11:35:54 1316

原创 关于Hbase的cache配置

关于Hbase的cache配置

2014-07-15 16:25:03 5468

关于Hbase的cache配置

关于Hbase的cache配置在hbase中的hfilecache中,0.96版本中新增加了bucket cache,bucket cache通过把hbase.offheapcache.percentage配置为0来启用,如果hbase.offheapcache.percentage的配置值大于0时,直接使用堆外内存来管理hbase的cache,通过把hfile.block.ca...

2014-07-15 16:24:40 301

hadoop ha配置

HADOOP HA配置hadoop2.x的ha配置,此文档中描述有hdfs与yarn的ha配置。此文档的假定条件是zk已经安装并配置完成,其实也没什么安装的。hdfs ha配置首先,先配置core-site.xml配置文件:<property>在老版本中使用mr1时,还可能使用fs.default.name来进行配置  <name>fs...

2014-05-15 20:30:07 229

原创 hadoop-ha配置

HADOOP HA配置hadoop2.x的ha配置,此文档中描述有hdfs与yarn的ha配置。此文档的假定条件是zk已经安装并配置完成,其实也没什么安装的。hdfs ha配置 首先,先配置core-site.xml配置文件:在老版本中使用mr1时,还可能使用fs.default.name来进行配置  fs.defaultFS此处配置的mycluster目前还没

2014-05-15 20:25:05 3716

原创 hadoop-mapreduce中reducetask运行分析

ReduceTask的运行Reduce处理程序中需要执行三个类型的处理,1.copy,从各map中copy数据过来2.sort,对数据进行排序操作。3.reduce,执行业务逻辑的处理。ReduceTask的运行也是通过run方法开始,通过mapreduce.job.reduce.shuffle.consumer.plugin.class配置shuffle的plugin,

2014-05-14 13:30:00 1966

hadoop-mapreduce中reducetask运行分析

ReduceTask的运行 Reduce处理程序中需要执行三个类型的处理, 1.copy,从各map中copy数据过来 2.sort,对数据进行排序操作。 3.reduce,执行业务逻辑的处理。 ReduceTask的运行也是通过run方法开始, 通过mapreduce.job.reduce.shuffle.consumer.plugin.c...

2014-05-14 13:29:25 331

hadoop-mapreduce中maptask运行分析

MapTask运行通过执行.run方法: 1.生成TaskAttemptContextImpl实例,此实例中的Configuration就是job本身。 2.得到用户定义的Mapper实现类,也就是map函数的类。 3.得到InputFormat实现类。 4.得到当前task对应的InputSplit. 5.通过InputFormat,得到对应的Rec...

2014-05-13 12:48:31 164

原创 hadoop-mapreduce中maptask运行分析

MapTask运行通过执行.run方法:1.生成TaskAttemptContextImpl实例,此实例中的Configuration就是job本身。2.得到用户定义的Mapper实现类,也就是map函数的类。3.得到InputFormat实现类。4.得到当前task对应的InputSplit.5.通过InputFormat,得到对应的RecordReader。6.生成Re

2014-05-13 12:42:03 2784

hbase hfilev2文件

HFileV2文件 HFileV2文件写入通过StoreFile.Writer-->HFileWriterV2进行写入。 文件格式通过hfile.format.version配置。默认为2,也只有2这个值在0.96可用。 可通过cf中配置DATA_BLOCK_ENCODING配置dataBlock的encoding,  可配置值:NONE,PREFIX...

2014-05-10 21:58:16 145

原创 hbase hfilev2

HFileV2文件HFileV2文件写入通过StoreFile.Writer-->HFileWriterV2进行写入。文件格式通过hfile.format.version配置。默认为2,也只有2这个值在0.96可用。可通过cf中配置DATA_BLOCK_ENCODING配置dataBlock的encoding,可配置值:NONE,PREFIX,DIFF,FAST_DIFF,PREF

2014-05-10 21:57:51 1632

Hbase MemStoreLAB

关于MemStore的补充 在通过HStore.add向store中添加一个kv时,首先把数据写入到memstore中。这一点没有什么说明; publiclong add(final KeyValue kv) { lock.readLock().lock(); try { returnthis.memstore.add(kv);  } fi...

2014-05-10 10:17:45 237

原创 hbase memstorelab

关于MemStore的补充在通过HStore.add向store中添加一个kv时,首先把数据写入到memstore中。这一点没有什么说明;publiclongadd(finalKeyValue kv) {lock.readLock().lock();try{returnthis.memstore.add(kv);}finally{lock.readLock().un

2014-05-10 10:15:46 1137

spark shuffle部分分析

spark shuffle流程分析 回到ShuffleMapTask.runTask函数 现在回到ShuffleMapTask.runTask函数中:  override def runTask(context: TaskContext): MapStatus = { 首先得到要reduce的task的个数。 valnumOutputSplits...

2014-05-09 13:37:38 194

原创 spark shuffle过程分析

spark shuffle流程分析回到ShuffleMapTask.runTask函数现在回到ShuffleMapTask.runTask函数中:overridedef runTask(context:TaskContext): MapStatus = {首先得到要reduce的task的个数。valnumOutputSplits=dep.partitioner.num

2014-05-09 13:36:18 3348

Task的执行过程分析

Task的执行过程分析 Task的执行通过Worker启动时生成的Executor实例进行, case RegisteredExecutor(sparkProperties) =>  logInfo("Successfully registered with driver") // Make this host instead of hostPort ...

2014-05-08 12:32:00 256

原创 Task的执行过程分析

Task的执行过程分析Task的执行通过Worker启动时生成的Executor实例进行,caseRegisteredExecutor(sparkProperties)=>logInfo("Successfullyregistered with driver")//Make this host instead of hostPort ?executor=newExecuto

2014-05-08 12:31:27 3812

Spark中的Scheduler

Spark中的Scheduler scheduler分成两个类型,一个是TaskScheduler与其实现,一个是DAGScheduler。 TaskScheduler:主要负责各stage中传入的task的执行与调度。 DAGScheduler:主要负责对JOB中的各种依赖进行解析,根据RDD的依赖生成stage并通知TaskScheduler执行。 实例生...

2014-05-03 21:23:35 170

原创 Spark中的Scheduler

Spark中的Schedulerscheduler分成两个类型,一个是TaskScheduler与其实现,一个是DAGScheduler。TaskScheduler:主要负责各stage中传入的task的执行与调度。DAGScheduler:主要负责对JOB中的各种依赖进行解析,根据RDD的依赖生成stage并通知TaskScheduler执行。实例生成TaskSchedule

2014-05-03 21:17:30 2265

RDD的依赖关系

RDD的依赖关系 Rdd之间的依赖关系通过rdd中的getDependencies来进行表示, 在提交job后,会通过在 DAGShuduler.submitStage-->getMissingParentStages privatedef getMissingParentStages(stage: Stage): List[Stage] = { va...

2014-05-03 01:39:03 134

原创 RDD的依赖关系

RDD的依赖关系Rdd之间的依赖关系通过rdd中的getDependencies来进行表示,在提交job后,会通过在DAGShuduler.submitStage-->getMissingParentStagesprivatedefgetMissingParentStages(stage: Stage): List[Stage] = {valmissing =newHash

2014-05-03 01:32:19 3227

从wordcount分析spark提交job

从WordCount开始分析 编写一个例子程序 编写一个从HDFS中读取并计算wordcount的例子程序: package org.apache.spark.examples   import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ ...

2014-05-02 12:51:37 173

原创 spark 启动job的流程分析

从WordCount开始分析编写一个例子程序编写一个从HDFS中读取并计算wordcount的例子程序:packageorg.apache.spark.examplesimportorg.apache.spark.SparkContextimportorg.apache.spark.SparkContext._objectWordCount{defm

2014-05-02 12:47:18 4574

spark编译与onyarn的运行

Spark on yarn执行流程源代码分析 目前的分析主要基于spark0.9.0的cdh5的版本进行分析, 源代码下载地址:https://github.com/cloudera/spark.git 下载方式:git clone url ./spark 进入spark目录,执行git checkout cdh5-0.9.0_5.0.0   ...

2014-04-28 14:40:43 125

原创 spark编译与onyarn的运行

Spark on yarn执行流程源代码分析目前的分析主要基于spark0.9.0的cdh5的版本进行分析,源代码下载地址:https://github.com/cloudera/spark.git下载方式:gitclone url ./spark进入spark目录,执行gitcheckoutcdh5-0.9.0_5.0.0源代码编译使用sbt编译spa

2014-04-28 14:35:06 2257

UserScan的处理流程分析

UserScan的处理流程分析 前置说明 Userscan是通过client或cp中发起的scanner操作。 在Scan中通过caching属性来返回可以返回多少条数据,每次进行next时。 通过batch属性来设置每次在rs端每次next kv时,可读取多少个kv,(在同一行的情况下) 在生成Scan实例时,最好是把family与column都设...

2014-04-25 16:46:55 429

原创 UserScan的处理流程分析

UserScan的处理流程分析前置说明Userscan是通过client或cp中发起的scanner操作。在Scan中通过caching属性来返回可以返回多少条数据,每次进行next时。通过batch属性来设置每次在rs端每次nextkv时,可读取多少个kv,(在同一行的情况下)在生成Scan实例时,最好是把family与column都设置上,这样能保证查询的最高效.cli

2014-04-25 16:41:13 2119

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除