我在rhel7 64bit上。我设法显然从源代码构建了hadoop 2.4.1发行版。在此之前,我从源代码构建了snappy并安装了它。然后我建立了hadoop dist。与
mvn clean install -Pdist,native,src -DskipTests -Dtar -Dmaven.javadoc.skip=true -Drequire.snappy
然而,当我看$HADOOP_HOME/lib/native
时,我看到了hdfs和hadoop libs,但没有看到snappy。所以当我运行hadoop checknative
时它表示我没有安装snappy。此外,我下载了hadoop-snappy,并编译/ that /并生成了snappy libs。我将这些复制到$ HADOOP_HOME / lib / native /和/到$ HADOOP_HOME / lib只是为了额外的措施。仍然,hadoop checknative
看不到它!
答案 0 :(得分:0)
在一个不起眼的地方找到了非显而易见的解决方案http://lucene.472066.n3.nabble.com/Issue-with-loading-the-Snappy-Codec-td3910039.html
需要添加-Dcompile.native=true
。这个没有在apache构建文档中突出显示,也没有出现在我遇到的任何构建指南中!