【问题标题】:Error: Unrecognized option: --packages错误:无法识别的选项:--packages
【发布时间】:2016-05-13 12:12:55
【问题描述】:

我正在将现有脚本从 BigInsights 移植到 Bluemix 上的 Spark。我正在尝试针对 Bluemix 上的 Spark 运行以下命令:

./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

如何传递--packages 参数?

【问题讨论】:

    标签: apache-spark ibm-cloud


    【解决方案1】:

    Bluemix 使用定制的 Spark 版本,定制的 spark-submit.sh 脚本仅支持原始脚本参数的子集。您可以在其documentation 上看到您可以使用的所有配置属性和参数。

    另外,您可以从this link 下载脚本的Bluemix 版本,在那里您可以看到--packages 没有参数。

    因此,您的方法的问题在于 Bluemix 版本的 spark-submit 不接受 --packages 参数,这可能是出于安全原因。但是,或者,您可以下载所需包的 jar(可能是依赖项的胖 jar)并使用 --jars 参数上传它们。 注意: 为避免每次调用 spark-submit 时都需要上传 jar 文件,您可以使用 curl 预先上传它们。此过程的详细信息可以在this link 上找到。

    【讨论】:

    • 我只需要下载一个jar,还是每个spark包可以有多个jar?
    • @SHC 这取决于。许多包都是无依赖构建的,但有些包需要你下载依赖包。
    • 感谢您的回复。然而,这种解决方案有局限性。打包为 fat jar 的 Elasticsearch 大约有 100Mb,这使得提交速度很慢。
    • @SHC 显然你可以通过 curl 上传最大 200mb 的文件,这样你就不需要在每次调用 spark-submit 时上传它们。更多详情:console.ng.bluemix.net/docs/services/AnalyticsforApacheSpark/…
    【解决方案2】:

    添加到 Daniel 的帖子中,在使用预上传包的方法时,您可能希望将包上传到“${cluster_master_url}/tenant/data/libs”,因为 Spark 服务设置了这四个 spark 属性“spark .driver.extraClassPath”、“spark.driver.extraLibraryPath”、“spark.executor.extraClassPath”和“spark.executor.extraLibraryPath”到./data/libs/*

    参考:https://console.ng.bluemix.net/docs/services/AnalyticsforApacheSpark/index-gentopic3.html#spark-submit_properties

    【讨论】:

    • 感谢您的回答,但对于简单地将参数传递给 spark submit 来说,这仍然是一种笨拙的解决方法:(
    • @SHC 我不认为这是一种解决方法。在我看来,这就是它在 Bluemix 中的工作方式。他们的 Spark 不支持 --packages 参数,这是有道理的,因为使用它可能会导致意外的网络流量,因为依赖树很大,所以他们决定删除。
    • @DanieldePaula @anh 如果这是删除该选项的原因,我们可能应该在文档中捕捉到这一点。在文档中,我们还应该说明替代方法。因为我们保留了脚本的 spark-submit 名称,所以用户会认为脚本支持所有参数,除非我们告诉他们不支持的地方。
    • @SHC 同意。就个人而言,我不喜欢他们使用的方法,但我理解其背后的一些原因。另外,我完全同意文档需要改进。
    • 另外,根据我的经验,为 spark 包装 fatjars 是一个皮塔饼。之前,当我在他们的论坛上被推荐使用--package 选项时,我正要放弃elasticsearch。
    猜你喜欢
    • 2014-06-26
    • 1970-01-01
    • 2020-07-02
    • 2023-03-28
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多