【问题标题】:YARN compression codecs with Apache Spark使用 Apache Spark 的 YARN 压缩编解码器
【发布时间】:2015-04-07 19:56:31
【问题描述】:

我在 YARN 上运行 Apache Spark (1.3.0)。 YARN_CONF_DIR 指向 YARN 配置。 core-site.xml 是从该目录加载的。它包括一个io.compression.codecs 的设置,这个列表包括com.hadoop.compression.lzo.LzoCodec,它不包含在预构建的Spark 中。

这会导致启动时出现ClassNotFoundException。作为一种解决方法,我们可以使用修改后的 core-site.xml 运行,或者我们可以将所需的 Jar 文件包含在 --jars 中。

这些变通方法都不是非常可靠。我不是 YARN 集群的管理员。集群管理员可以在我不知情的情况下更改core-site.xml。如果我使用修改后的副本,我会错过重要的更改。如果我使用--jars,我的 Spark 应用程序将在添加新编解码器时中断。

这些编解码器是否存储在标准位置?我怎么能把那个地方添加到我的类路径中?我希望我的应用程序能够在配置更改后继续存在,而无需我做任何事情。

【问题讨论】:

    标签: hadoop apache-spark


    【解决方案1】:

    一个可能的答案是包含所有 Hadoop jar,如下所示:

    --jars $HADOOP_HOME/../hadoop-yarn/lib/*.jar
    

    我的问题是:

    • 我不确定这条路径有多标准。
    • 这将导致每次启动应用程序时将 jar 复制到工作程序。我希望在部署编解码器时,它的 jar 会放在所有 YARN 节点上,或者至少它会放在共享位置的 HDFS 上。一定有更好的访问方式!

    【讨论】:

    • 这就是我所做的。我还没有找到解决方法!
    猜你喜欢
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    相关资源
    最近更新 更多