2个不稳定版本
0.2.0 | 2022年4月19日 |
---|---|
0.1.0 | 2022年2月13日 |
17 in #hdfs
780KB
17K SLoC
libhdfs3-sys
libhdfs3-sys是Apache hawq项目的hdfs3库的Rust绑定:[https://github.com/apache/hawq/tree/master/depends/libhdfs3](https://github.com/apache/hawq/tree/master/depends/libhdfs3)
使用libhdfs3的优点是它不使用JNI,因此无需拥有Hadoop jars或JVM系统库即可使用HDFS。
这里包含libhdfs3的一个副本。修改是为了cmake构建文件,以便使用依赖库的最新版本进行编译。
Rust绑定灵感来源于[https://github.com/yahoNanJing/fs-hdfs](https://github.com/yahoNanJing/fs-hdfs)
要求
主要要求是libhdfs3所需的依赖。
- cmake [http://www.cmake.org/](http://www.cmake.org/)
- google protobuf [http://code.google.com/p/protobuf/](http://code.google.com/p/protobuf/)
- libxml2 [http://www.xmlsoft.org/](http://www.xmlsoft.org/)
- kerberos [http://web.mit.edu/kerberos/](http://web.mit.edu/kerberos/)
- libuuid [http://sourceforge.net/projects/libuuid/](http://sourceforge.net/projects/libuuid/)
- libgsasl [http://www.gnu.org/software/gsasl/](http://www.gnu.org/software/gsasl/)
此外,编译C++测试代码可能需要Google Test框架(可能从构建中移除这些依赖项,因为C++测试并不是Rust绑定的真正部分,并将简化所需的依赖项)。
- gtest
- gmock
注意,src/CMakeLists.txt的安装部分已修改,如下
INSTALL(TARGETS libhdfs3-static libhdfs3-shared
RUNTIME DESTINATION bin
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
INSTALL(FILES ${HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hdfs)
INSTALL(FILES libhdfs3.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
原始源代码中包含硬编码的路径,例如lib
和include
。这会导致在Fedora/CentOS/RHEL和其他系统上出现问题,在这些系统中,64位库应放在/usr/lib64
而不是/usr/lib
。使用GNUInstallDirs
变量CMAKE_INSTALL_LIBDIR
和CMAKE_INSTALL_INCLUDEDIR
允许使用或覆盖使用cmake
时调用的正确位置。
注意
libhdfs3.tar.gz
是libhdfs3源目录内容的tar gzipped文件。这可以用于生成RPM构建。
依赖
~1.4–4MB
~107K SLoC