摘要: 今天碰到一个问题,需要通过JDBC链接数据库,使用Spark读取并处理数据,想到使用JdbcRDD,JdbcRDD的类定义如下private[spark] class JdbcPartition(idx: Int, val lower: Long, val upper: Long) extends ... 阅读全文
posted @ 2015-07-27 14:18 gOOner黑骑士 阅读(1913) 评论(0) 推荐(0) 编辑
摘要: 对于ResultTask,直接执行func操作,最后告知任务是否执行完成;而对于ShuffleMapTask,则需要将中间结果存储到实例化DirectTaskResult,以备下一个task使用,同时还要返回实例化的MapStatus。Executor.run中,当Task执行完毕调用execBac... 阅读全文
posted @ 2015-07-26 21:58 gOOner黑骑士 阅读(732) 评论(0) 推荐(0) 编辑
摘要: 前面说到向executorActor(task.executorID)发送LaunchTask(task)消息,在CoarseGrainedExecutorBackend中定义receive接收launchTask消息,执行executor.launchTaskoverride def receiv... 阅读全文
posted @ 2015-07-26 21:57 gOOner黑骑士 阅读(1000) 评论(0) 推荐(0) 编辑
摘要: 前面提到,submitMissingTask是分发任务的开始,首先submitMissingTasks判断该stage是否为shuffle map stage,是则getPreferredLocs,实例化一个ShuffleMapTasks返回一组task集合,否则是final stage,getPr... 阅读全文
posted @ 2015-07-26 21:51 gOOner黑骑士 阅读(775) 评论(0) 推荐(0) 编辑
摘要: 回到dagScheduler.runJob,submit提交作业返回waiter,waiter.awaitResult阻塞线程,判断Job是否执行成功def runJob[T, U: ClassTag]( rdd: RDD[T], func: (TaskContext, Iter... 阅读全文
posted @ 2015-07-26 21:43 gOOner黑骑士 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 基本概念:Job,Stage,Task,DagScheduler,TaskScheduler……RDD的操作可以分为Transformations和Actions,Transformations是lazy的不立即执行,Action则会触发作业的提交和执行。例如本例中的foreachdef forea... 阅读全文
posted @ 2015-07-26 10:14 gOOner黑骑士 阅读(293) 评论(0) 推荐(0) 编辑
摘要: LocalWordCount中,需要首先创建SparkConf配置Master、AppName等环境参数,如果程序中没有设置,则会读取系统参数。然后,以SparkConf作为参数创建SparkContext,初始化Spark环境。val sparkConf = new SparkConf().set... 阅读全文
posted @ 2015-07-16 22:05 gOOner黑骑士 阅读(339) 评论(0) 推荐(0) 编辑
摘要: Apache Spark版本迭代速度很快,但是基本框架和经典组件保持这统一模式,所以学习Spark源码,我选择的是Apache Spark-1.0.0版本,通过分析几个主要模块的工作原理,理解Spark的运行过程。通过LocalWordCount程序,调试Spark源码:LocalWordCount... 阅读全文
posted @ 2015-07-15 16:27 gOOner黑骑士 阅读(263) 评论(0) 推荐(0) 编辑
摘要: Spark读入本地文件后,成为MapPartitionsRDD,可以使用zipWithIndex,转换成ZippedWithIndexRDD:查看结果,每一行变为二元组“(内容,索引)”,索引从0开始:(# Apache Spark,0)("",1)(Spark is a fast and gene... 阅读全文
posted @ 2015-07-09 15:52 gOOner黑骑士 阅读(1656) 评论(0) 推荐(1) 编辑
摘要: cat命令:cat file1.txt file2.txt > file.txt或者:cat file1.txt file2.txt >> file.txt单个>与双>>的区别:>:单>表示新建文件,如果此文件有的话,则覆盖;>>:双>>表示追加内容,可以将第二个文件追加到第一个文件后面,也就是合并... 阅读全文
posted @ 2015-07-09 10:34 gOOner黑骑士 阅读(860) 评论(0) 推荐(0) 编辑