我对火花还不熟悉,并了解到转换发生在工人身上,而操作发生在驱动程序上,但是中间动作(如果操作是可交换的和结合的)也可以发生在工人身上,这给出了实际的并行性。
我如何才能找到相关的哪一部分发生在驱动程序和什么在执行者?
更新1:我所说的运行关联的设置是由多个VM组成的集群设置。
更新2
我将集群设置为独立模式,就好像它是一个3节点集群、1个主/驱动程序(实际机器:工作站)和2个VM从/执行器一样。从主节点提交类似于这个./bin/spark-submit --master spark://192.168.0.11:7077 examples/src/main/python/mllib/correlations_example.p
y的作业
我的相关示例文件是correlations_example.py:
data = sc.parallelize(np.array([range(10000000), range(10000000, 20000000),range(20000000, 30000000)]).transpose())
print(Statistics.corr(data, method="pearson"))
sc.stop()
我总是得到一个连续的时间线,因为:
这不意味着根据事件的时间线,它不是并行发生的吗?我是不是做错了工作提交或相关计算在星火不是平行的?
更新3:我甚至尝试添加另一个执行器,仍然是相同的seqquential treeAggreagate。我设置了火花集群,如这里所提到的:http://paxcel.net/blog/how-to-setup-apache-spark-standalone-cluster-on-multiple-machine/
发布于 2017-06-29 06:15:36
你的说法不完全准确。驱动程序的容器执行器在客户端/边缘节点或集群上启动,具体取决于火花提交模式(例如客户端或纱线)。操作由工人执行,结果被发回给司机(例如,收集)
这个问题已经得到了答复。有关详细信息,请参阅下面的链接。When does an action not run on the driver in Apache Spark?
https://stackoverflow.com/questions/44827282
复制