互联网技术 / 互联网资讯 · 2023年12月23日

HDFS 的 Java 与 Python API 连接方式

前面已经介绍过 HDFS 的基础操作,本文继续整理 HDFS 在 Java 和 Python 环境下的常见连接与使用方式,方便后续进行文件上传、下载等开发实践。

在 Java 部分,示例开发环境使用 IntelliJ IDEA。创建项目时,建议先准备好 Maven,并检查本地 Maven 配置是否可正常下载依赖。如果下载速度较慢,可以在 Maven 的 settings.xml 中配置国内镜像源。

HDFS中的Java和Python API接口连接

完成 Maven 配置后,即可新建 Maven 工程,并添加 HDFS 相关依赖。通常需要引入 hadoop-client,版本尽量与实际 Hadoop 集群版本保持一致,同时也可以加入 JUnit 依赖,便于编写测试代码。

HDFS中的Java和Python API接口连接

Java API 操作

创建工程后,可以直接编写测试类或主程序类进行连接。比如新建一个 Java 文件用于演示 HDFS 文件操作。

需要注意的是,程序中默认拿到的 FileSystem 可能是本地文件系统,因此在操作 HDFS 之前,需要显式初始化为 HDFS 对应的文件系统实例。完成初始化后,就可以使用 API 进行文件上传。

文件成功上传后,可以在对应的 HDFS 目录中看到刚刚写入的内容。

HDFS中的Java和Python API接口连接

HDFS 文件下载

如果在测试过程中每次都要重复初始化 FileSystem,可以将初始化逻辑放到测试前置方法中,这样能够减少重复代码。

在下载文件时,常用的方法是 copyToLocalFile,它可以将 HDFS 中的文件复制到本地目录,适合做数据拉取、结果保存等场景。

Python API 操作

Python 连接 HDFS 通常更直接,这里主要使用 hdfs 这个库进行操作。安装方式如下:

pip install hdfs

在某些环境中,为了避免权限不足导致访问失败,可以先根据实际情况为目标目录设置合适的读写执行权限。例如使用 Hadoop 命令对当前目录及其子目录授权后,再进行连接测试。

相比 Java API,Python 方式在编写和调用上通常更简洁,适合快速开发、脚本处理以及数据分析类任务。

整体来看,Java API 更适合工程化集成,Python API 则更适合轻量、快速的操作需求。根据项目场景选择合适的方式,即可高效完成 HDFS 文件管理与数据处理工作。