在Yarn上运行Spark官方python机器学习示例失败

时间:2017-03-01 04:13:27

标签: python hadoop apache-spark machine-learning yarn

我可以通过以下方式成功运行纱线上的pi.py示例:./bin/spark-submit --master yarn --deploy-mode cluster examples/src/main/python/pi.py

但是当我运行./bin/spark-submit --master yarn --deploy-mode cluster examples/src/main/python/ml/logistic_regression_with_elastic_net.py时,失败了。错误消息:Container exited with a non-zero exit code 1

通过比较这两个文件,我发现将此from pyspark.ml.classification import LogisticRegression添加到pi.py后,运行pi.py也失败了。

但我不知道如何解决它。我有另一个问题:当我运行ml示例时,我必须将自己的数据文件上传到hdfs,所以我尝试使用--files,是不是?如果它是正确的,因为我不知道hdfs上的数据文件的路径,python脚本无法获取数据文件。 (我可以看到文件上传到hdfs之后的路径,即hdfs://master:9000/user/root/.sparkStaging/application_1488329960574_0011/mnist8m_800但是为时已晚,我可以在提交时指定路径吗?)

1 个答案:

答案 0 :(得分:1)

要运行 logistic_regression_with_elastic_net ,您需要将示例libsvm数据上传到HDFS,如下所示:

$ hdfs dfs -mkdir -p data/mllib
$ hdfs dfs -put data/mllib/sample_libsvm_data.txt data/mllib

然后示例将适用于yarn-client和yarn-cluster模式。

据我所知,--files上传的文件无法使用spark会话读取(如回归示例中所示)。