我将现有脚本从BigInsights移植到Bluemix上的Spark。我试图对Bluemix上的Spark运行以下命令:
cend(foo)
但是,我收到以下错误:
./spark-submit.sh --vcap ./vcap.json --deploy-mode cluster \
--master https://x.x.x.x:8443 --jars ./truststore.jar \
--packages org.elasticsearch:elasticsearch-spark_2.10:2.3.0 \
./export_to_elasticsearch.py ...
如何传递Error: Unrecognized option: --packages
参数?
答案 0 :(得分:1)
Bluemix使用自定义Spark版本,其自定义spark-submit.sh
脚本仅支持原始脚本参数的子集。您可以在documentation上看到可以使用的所有配置属性和参数。
此外,您可以从this link下载该脚本的Bluemix版本,在那里您可以看到没有参数--packages
。
因此,您的方法的问题是Spark-submit的Bluemix版本不接受--packages
参数,可能是出于安全原因。但是,或者,您可以下载所需包的jar(也可能是依赖项的胖jar)并使用--jars
参数上传它们。 注意:为避免每次调用spark-submit时都需要上传jar文件,您可以使用curl预先上传它们。可以在this link上找到此过程的详细信息。
答案 1 :(得分:1)
添加到Daniel的帖子中,在使用该方法预先上传您的软件包时,您可能希望将软件包上传到" $ {cluster_master_url} / tenant / data / libs", Spark服务设置这四个spark属性" spark.driver.extraClassPath"," spark.driver.extraLibraryPath"," spark.executor.extraClassPath"和&#34 ; spark.executor.extraLibraryPath"到./data/libs / *