分享

请问谁能给我讲下spark的读写过程啊?比如wordcount

lsy1996 发表于 2017-4-19 09:49:15 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 5101
看了书感觉还是有点不懂

已有(5)人评论

跳转到指定楼层
qcbb001 发表于 2017-4-19 11:16:37
这问题太笼统了,不明白,需要明白哪里不明白。才有针对性。
先看下下面两篇吧,都是相关内容
Spark大数据处理之从WordCount看Spark大数据处理的核心机制(1)
http://www.aboutyun.com/forum.php?mod=viewthread&tid=14544

Spark入门之运行wordcount

http://www.aboutyun.com/forum.php?mod=viewthread&tid=17088



回复

使用道具 举报

lsy1996 发表于 2017-4-19 15:41:08
qcbb001 发表于 2017-4-19 11:16
这问题太笼统了,不明白,需要明白哪里不明白。才有针对性。
先看下下面两篇吧,都是相关内容
Spark大数 ...

就是对于block的读写这块不太明白,比如block是在函数执行textfile之后就生成的吗之类的
回复

使用道具 举报

desehawk 发表于 2017-4-19 16:55:41
本帖最后由 desehawk 于 2017-4-19 17:15 编辑
lsy1996 发表于 2017-4-19 15:41
就是对于block的读写这块不太明白,比如block是在函数执行textfile之后就生成的吗之类的

楼主可能误解了。
hadoop才有block, spark有blockmanager,但是管理的并非block


在函数执行textfile之后,生成的是rdd
回复

使用道具 举报

lsy1996 发表于 2017-4-20 10:07:39
desehawk 发表于 2017-4-19 16:55
楼主可能误解了。
hadoop才有block, spark有blockmanager,但是管理的并非block

但是blockmanager管理的不是block吗?可能是我意思没有表达清楚,我在网上查的资料是在storage模块内部,RDD被视为由不同的block组成,对于RDD的存取是以block为单位进行的。
另外我想问问,如果有个spark集群,其中数据存储在其中一台机器(比如master)的磁盘上,那提交作业之后数据是怎样流动的呢?
回复

使用道具 举报

xingoo 发表于 2017-4-22 13:24:57
lsy1996 发表于 2017-4-20 10:07
但是blockmanager管理的不是block吗?可能是我意思没有表达清楚,我在网上查的资料是在storage模块内部, ...

你的理解是有点问题的,spark中数据不是根据任务的分配来流动的,而是根据数据所在的位置来分配任务的。

比如你的集群一共有三台机器,ABC,A为 master,你的数据都在这个master上面。
那么当你进行wordcount时,触发action操作时,会开始切分任务。任务根据rdd的位置进行分配....
然后定位到数据只存在于A节点一个地方,那么任务只会分配给A节点来做...

整个集群相当于单节点运行。

并不会自动把你的数据打散,分配到其他的机器。除非你使用了重分区....并且设置了相应的分区个数。

比如你再读取到数据后,此时分区数为1.然后你重新分区,并设置分区数为3,并且进行shuffle。
那么数据会分散到三台机器上,按照默认的hash规则重新打散数据进行重组。
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条