spark是否可以进行链式任务

查看数: 9624 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-12-2 16:04

正文摘要:

本帖最后由 seraph50 于 2015-12-2 16:47 编辑 我有如下图所示的任务需求: 任务3的输入数据是任务1和任务2的输出数据,像这种任务,如何用spark的编程模型来实现?

回复

seraph50 发表于 2015-12-3 12:09:58
提示: 作者被禁止或删除 内容自动屏蔽
xuanxufeng 发表于 2015-12-2 17:12:56
MapReduce 方式 Map 函数
public class LineLengthCountMapper
extends Mapper<LongWritable,Text,IntWritable,IntWritable> {
@Override
protected void map(LongWritable lineNumber, Text line, Context context)
throws IOException, InterruptedException {
context.write(new IntWritable(line.getLength()), new IntWritable(1));
}
}

Spark 方式 Map 函数

lines.map(line => (line.length, 1))

上代码中 map() 操作是一个 RDD
有了RDD链式实现就简单多了
xuanxufeng 发表于 2015-12-2 17:08:31
seraph50 发表于 2015-12-2 16:45
我不是想问DAG啊。我是有个是计算需求如图展示的,但我不知道怎么套用spark的编程模型。

首先第一个问题,spark是可以进行链式任务的,这点是肯定的。
至于如何将mapreduce转换为spark编程模型,则是需要楼主首先懂spark是什么?
spark的本质是通过RDD来操作的。所以实现链式是特别简单的。
如何转换编程模型,其实也很简单。
首先楼主需要懂scala,不懂的话,只能自己打基础。
这篇文章对楼主有所帮助
如何将 MapReduce 转化为 Spark
http://www.aboutyun.com/thread-16414-1-1.html



seraph50 发表于 2015-12-2 16:45:14
提示: 作者被禁止或删除 内容自动屏蔽
xuanxufeng 发表于 2015-12-2 16:39:46
seraph50 发表于 2015-12-2 16:28
图上的那种任务用spark是否可以实现?能否详细讲下呢

spark会提交任务,然后对任务分解。分解的过程,如果有多个阶段,那就如楼主图,spark任务有的比楼主的还复杂。

为每一个job计算出一个DAG,并且去跟踪已经实现的RDD和stage,并且为每一个job找到一个最小的调度去运行,然后将stages封装为taskset提交给taskScheduler。



链接:http://pan.baidu.com/s/1qWovXzY 密码:1ekk
seraph50 发表于 2015-12-2 16:28:15
提示: 作者被禁止或删除 内容自动屏蔽
starrycheng 发表于 2015-12-2 16:26:41
seraph50 发表于 2015-12-2 16:11
速度来人啊。求解惑

楼主spark是天生的,mapreduce链式则是后来发展的
spark使用的是DAG
seraph50 发表于 2015-12-2 16:11:45
提示: 作者被禁止或删除 内容自动屏蔽
关闭

推荐上一条 /2 下一条