我正在Yarn上运行apachespark(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应用程序将中断。
这些编解码器是否存储在标准位置?我怎样才能把那个地方添加到我的类路径中?我希望我的应用程序能够在配置更改后存活下来,而不需要我做任何事情。
1条答案
按热度按时间qhhrdooz1#
一个可能的答案是包含所有hadoop jar,如下所示:
我的问题是:
我不知道这条路有多标准。
这将导致每次启动应用程序时将jar复制到worker。我希望在部署编解码器时,它的jar会放在所有的yarn节点上,或者至少会放在共享位置的hdfs上。一定有更好的方法!