【发布时间】:2017-06-30 19:54:08
【问题描述】:
我是 Spark 的新手,我了解到转换发生在工人身上,动作发生在司机身上,但中间行动(如果操作是可交换和关联的)也可能发生在工人身上,这也提供了实际的并行性。
我怎样才能找到驱动程序发生了哪些相关性以及执行程序发生了什么?
更新 1:我所说的运行关联的设置是由多个 VM 组成的集群设置。 在此处查找来自 Spark Web UI 的图像:Distributed cross correlation matrix computation
更新 2
我将集群设置为独立模式,例如它是一个 3 节点集群、1 个主/驱动程序(实际机器:工作站)和 2 个 VM 从属/执行程序。
像这样提交工作
./bin/spark-submit --master spark://192.168.0.11:7077 examples/src/main/python/mllib/correlations_example.py
从主节点
我的相关示例文件是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()
我总是得到一个连续的时间表:
这是否意味着它不会根据事件的时间轴并行发生?我在 Spark 中的作业提交或相关计算不并行时做错了吗?
更新 3: 我什至尝试添加另一个执行程序,仍然是相同的顺序树聚合。 我设置了火花簇,如此处所述: http://paxcel.net/blog/how-to-setup-apache-spark-standalone-cluster-on-multiple-machine/
【问题讨论】:
-
我不明白你的更新。那么现在的问题是什么?
-
你问了两次是不是同一个问题?
-
不,这个问题是关于 Spark 相关性的实现,它基于查看代码并找出驱动程序发生了什么以及执行程序发生了什么。我链接的问题是关于我的实验。
-
假设这件事的执行者身上发生了一切,除了微风矩阵中的返回结果。
标签: apache-spark pyspark apache-spark-mllib