我在运行Spark提交作业时遇到此错误java.lang.RuntimeException: native snappy library not available: this version of libhadoop was built without snappy support.
。
我所做的是将libhadoop.so
和libsnappy.so
复制到java/java-1.8.0-openjdk-1.8.0.212.b04-0.e11_10.x86_64/jre/lib/amd64/
中,然后进程一直运行,没有任何问题。找到了解决方案here。
在我复制之前,我添加了--driver-library-path /usr/hdp/current/hadoop-client/lib/native/
作为提交作业的一部分,但没有工作,我还试图将其添加到HADOOP_OPTS
,都是徒劳的。
有没有人能解释一下把它复制到java amd64文件夹是如何让事情正常工作的?
1条答案
按热度按时间v1uwarro1#
执行程序需要本地库,而不是Spark驱动程序,这可以解释为什么
--driver-library-path
不能工作。目前还不清楚如何/在何处设置
HADOOP_OPTS
,但可能是类似的问题。您的解决方案之所以有效,是因为您现在让每个Java进程都可以访问这些文件,而不仅仅是Hadoop/Spark进程。