我正在使用 apache 箭头项目(https://arrow.apache.org/docs/python/filesystems.html#hadoop-file-system-hdfs)来读取位于 HDFS 中的镶木地板文件。Apache arrow 使用 hadoop 原生库文件从 HDFS 读取。它使用的文件之一是 libhdfs.dylib
OSError: Unable to load libhdfs: dlopen(/Users/sharad.mishra/Library/hadoop/hadoop-2.7.3/lib/native/libhdfs.dylib, 6): image not found
我下载了 hadoop 源文件(https://github.com/apache/hadoop.git)并构建了它,包括本机。我使用的 Hadoop 版本是 -> 我用来构建的rel/release-2.7.3命令是
mvn package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true
成功构建后,我注意到 libhdfs.dylib 仍然丢失。
→ cd $HADOOP_HOME/lib/native
→ native
→ ls
libhadoop.a libhadoop.so libhadoop.so.1.0.0 libhadooppipes.a libhadooputils.a libhdfs.a libhdfs.so libhdfs.so.0.0.0
这是我用来构建hadoop发行版的dockerfile:
https://github.com/imsharadmishra/hadoop-build/blob/main/centos/Dockerfile