分享

想问下关于task的执行问题

lsy1996 2017-4-10 09:50:29 发表于 疑问解答 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 4676
想请教下textfile这个函数是在driver上执行还是会被分配到task中执行?

如果在wordcount.scala中加入这一段
    val starttime1 = System.currentTimeMillis()
    val words = lines.flatMap(line => line.split(" "))
    val stoptime1 = System.currentTimeMillis()
    val between1 = stoptime1 - starttime1
    println("flatmap time is :" + between1 + "ms")
between1指的是一个task执行flatmap的时间吗?

已有(7)人评论

跳转到指定楼层
sstutu 发表于 2017-4-10 10:51:46
这个时间楼主可以测试下。
整体运行多长时间,输出的又是多长时间。
如果是知道分割时间,最好在flatMap中嵌入代码。当然需要自己二次修改代码的能力
回复

使用道具 举报

lsy1996 发表于 2017-4-10 11:04:26
sstutu 发表于 2017-4-10 10:51
这个时间楼主可以测试下。
整体运行多长时间,输出的又是多长时间。
如果是知道分割时间,最好在flatMap ...

我是用的100G的数据测试的,直接用的local单核,有800个task,看web ui上stage 0每个executor computing time是10s左右,但是between1输出到控制台上是8ms

回复

使用道具 举报

SuperDove 发表于 2017-4-10 11:21:31
lsy1996 发表于 2017-4-10 11:04
我是用的100G的数据测试的,直接用的local单核,有800个task,看web ui上stage 0每个executor computing  ...

因为你没有对words的这个RDD做action操作[mw_shl_code=applescript,true]    val starttime1 = System.currentTimeMillis()
    println(starttime1)
    val words = textrdd.flatMap(line => line.split(" "))
    words.foreach(println)
    val stoptime1 = System.currentTimeMillis()
    val between1 = stoptime1 - starttime1
    println(stoptime1)
    println("flatmap time is :" + between1 + "ms")[/mw_shl_code]
你可以把他做一个action操作,并且放在开始和结束时间计算之间试试
回复

使用道具 举报

lsy1996 发表于 2017-4-10 11:39:31
SuperDove 发表于 2017-4-10 11:21
因为你没有对words的这个RDD做action操作[mw_shl_code=applescript,true]    val starttime1 = System.cu ...

可是这样foreach操作不是也耗了时间吗?
回复

使用道具 举报

SuperDove 发表于 2017-4-10 12:23:17
lsy1996 发表于 2017-4-10 11:39
可是这样foreach操作不是也耗了时间吗?

不一定非得foreach,你把他的结果存储下来不就好了,你是说想看transformation操作么?
这个要看log日志的开始时间和结束时间
楼主可以放到集群上去,启动history服务,在网页的前端可以明显的查看各个步骤的时间
回复

使用道具 举报

lsy1996 发表于 2017-4-10 12:43:04
SuperDove 发表于 2017-4-10 12:23
不一定非得foreach,你把他的结果存储下来不就好了,你是说想看transformation操作么?
这个要看log日志 ...

就是想看wordcount里 flatmap和map各自用了多长时间
顺带问一句 textfile这个读文件函数会被task执行吗?还是就直接在driver里执行。。
回复

使用道具 举报

哈根达斯 发表于 2017-4-10 14:03:58
spark中所有任务都由driver解析,TaskSchedual调度。所有任务都在task中运行。map操作产生shufflemaptask,action操作产生resulttask。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条