Spark master 会自动将其他库复制到 worker 中吗?

Posted

技术标签:

【中文标题】Spark master 会自动将其他库复制到 worker 中吗?【英文标题】:Spark master copies the additional libraries to worker automatically? 【发布时间】:2016-01-05 17:54:18 【问题描述】:

我通过独立集群配置构建了 Spark 集群。

    我将 PYSPARK_PYTHON 设置如下。

PYSPARK_PYTHON=/usr/bin/python2.7

    我只在 Spark master 上安装了 Python 包(SciPy,numpy)。然后我写了如下代码。
从 pyspark 导入 SparkContext 从 sklearn 导入数据集,支持向量机 默认运行(sc): iris = datasets.load_iris() 数字 = [ datasets.load_digits(), datasets.load_digits()] 定义学习(x): clf = svm.SVC(gamma=0.001, C=100.) clf.fit(x.data[:-1], x.target[:-1]) 返回 clf.predict(x.data[-1]) 返回 sc.parallelize(digits).map(learn).collect() 如果 __name__ == '__main__': 打印运行(SparkContext())

我使用 spark-submit 将此代码提交给 spark master。

spark-submit --master spark://192.168.18.31:7077 /master/scipy_example.py

我认为这段代码行不通,因为我没有在 worker 上安装 sci-py。但它有效。这样对吗?我确认此代码也通过 Web-UI 在集群上运行。

【问题讨论】:

检查工作节点是否预先安装了任何python包。使用pip freeze 是全部代码吗? 是的,这就是我在 Spark 上运行的所有代码。 【参考方案1】:

我发现 spark-submit 将 python 库从 master 复制到 worker。

请参阅下面的代码。

https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/deploy/SparkSubmit.scala#L485

我还听说它非常受欢迎但没有记录的功能。

【讨论】:

您应该已经复制了实际代码:该引用已过期并指向不可执行的大括号

以上是关于Spark master 会自动将其他库复制到 worker 中吗?的主要内容,如果未能解决你的问题,请参考以下文章

Redis的复制(Master/Slave)

redis的主从复制master/slaver

redis的复制(Master/Slave)

mysql5.7.26 基于GTID的主从复制环境搭建

redis之master.slave主从复制

Redis学习十:Redis的复制(Master/Slave)重要