将Python脚本提交到Spark Cluster

时间:2018-03-03 06:01:39

标签: apache-spark pyspark spark-submit

我试图将以下python脚本提交到Spark Cluster。我有2个奴隶正在运行

from sklearn import grid_search, datasets
from sklearn.ensemble import RandomForestClassifier
# Use spark_sklearn’s grid search instead:
from spark_sklearn.grid_search import GridSearchCV
digits = datasets.load_digits()
X, y = digits.data, digits.target
param_grid = {"max_depth": [3, None],
              "max_features": [1, 3, 10],
              "min_samples_split": [2, 3, 10],
              "min_samples_leaf": [1, 3, 10],
              "bootstrap": [True, False],
              "criterion": ["gini", "entropy"],
              "n_estimators": [10, 20, 40, 80]}
gs = grid_search.GridSearchCV(RandomForestClassifier(), param_grid=param_grid)
gs.fit(X, y)

我使用shell中的以下命令提交应用程序

./bin/spark-submit --master spark://122.138.1.66:7077 '/script/trainspark.py'

但是我没有在"运行应用程序"主GUI中的部分。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

要在spark上提交python脚本,可以使用三种类型的集群部署:

  1. Apache Spark独立集群
  2. 纱线
  3. Mesos

对于独立模式

  1. 如果在提交火花时使用--deploy-mode cluster,则python脚本将按预期运行,但没有UI,并且不会以群集模式运行。
  2. 如果在提交火花时使用--deploy-mode client,则python脚本将在群集模式下运行,并且应用程序将显示在UI上。    为此,必须将指向火花主URL节点ip的火花主URL设置为(spark://x.x.x.x:7077,并在conf中提供应用程序名称,该名称将显示在UI上。只需在主节点上运行python脚本,而无需在从属节点上复制python脚本。