2022-17: 新轮子 hdfs-sys & hdrs
内容提要
随着 S3 等服务的流行,HDFS 仍被广泛使用。Databend 提出支持 HDFS 的需求,OpenDAL 计划采用 C API libhdfs 进行对接。hdfs-sys 和 hdrs 分别负责 HDFS C API 和 Rust 风格的封装,确保完整的 API 支持和良好的抽象分层。最终,OpenDAL 将基于 hdrs 开展 HDFS 支持工作。
关键要点
-
随着 S3 等服务的流行,HDFS 仍被广泛使用,Databend 向 OpenDAL 提出了支持 HDFS 的需求。
-
OpenDAL 旨在成为链接所有存储服务的 Open Data Access Layer,HDFS 是需要支持的服务之一。
-
OpenDAL 计划采用 C API libhdfs 进行对接 HDFS,hdfs-sys 和 hdrs 分别负责 HDFS C API 和 Rust 风格的封装。
-
hdfs-sys 负责暴露 HDFS C API 的接口并链接 libhdfs,hdrs 则负责在 hdfs-sys unsafe API 基础上封装更符合 Rust 风格的 safe API。
-
hdfs-sys 支持从 hadoop 2.2 开始到最新版本的所有 API 接口,满足完整的 API 支持需求。
-
hdrs 封装了类似 std::fs 的接口,降低用户学习成本,并通过集成测试确保核心 API 在真实环境中正常工作。
-
OpenDAL 将基于 hdrs 展开 HDFS 的支持工作,并通过真实需求进一步完善 hdfs-sys 与 hdrs。
延伸解读
HDFS的持续重要性
尽管S3等新兴存储服务的流行,HDFS依然在许多企业中扮演着关键角色。Databend向OpenDAL提出支持HDFS的需求,表明了HDFS在数据存储领域的持续重要性,尤其是在需要兼容性和稳定性的场景中。
hdfs-sys与hdrs的设计考量
hdfs-sys和hdrs的设计旨在提供完整的API支持和良好的抽象分层。hdfs-sys负责C API的直接调用,而hdrs则提供更符合Rust风格的安全接口。这种设计不仅提高了开发效率,也降低了用户的学习成本,适应了不同开发者的需求。
集成测试的重要性
hdfs-sys和hdrs都通过GitHub Actions进行了集成测试,确保核心API在真实环境中的稳定性。这一做法不仅提升了代码的可靠性,也为用户提供了更高的信心,尤其是在生产环境中使用时。
延伸问答
OpenDAL 为什么要支持 HDFS?
OpenDAL 旨在成为链接所有存储服务的 Open Data Access Layer,HDFS 是需要支持的服务之一,尤其是因为 Databend 向 OpenDAL 提出了支持 HDFS 的需求。
hdfs-sys 和 hdrs 的主要功能是什么?
hdfs-sys 负责暴露 HDFS C API 的接口并链接 libhdfs,而 hdrs 则在 hdfs-sys 的基础上封装更符合 Rust 风格的安全 API。
hdfs-sys 如何确保 API 的完整性和兼容性?
hdfs-sys 支持从 Hadoop 2.2 开始到最新版本的所有 API 接口,并通过对比不同版本的 hdfs.h 头文件来确保兼容性。
hdrs 如何降低用户的学习成本?
hdrs 封装了类似 std::fs 的接口,提供易用的 API,降低用户学习成本,并通过集成测试确保核心 API 在真实环境中正常工作。
OpenDAL 将如何进一步完善 hdfs-sys 和 hdrs?
OpenDAL 将基于 hdrs 展开 HDFS 的支持工作,并通过真实需求进一步完善 hdfs-sys 与 hdrs。
使用 libhdfs 的优缺点是什么?
使用 libhdfs 可以直接对接 HDFS,提供完整的 API 支持,但可能引入额外的依赖和用户预期的破坏。