引言

在大数据生态中,Hadoop分布式文件系统(HDFS)作为核心存储组件,承担着海量数据的分布式存储与管理重任。无论是日常运维、集群监控还是应用开发,掌握高效的HDFS操作方式都是必备技能。本文将聚焦三种主流的HDFS客户端操作模式——命令行Shell、Web UI(9870端口)和Java API(IDEA图形化),结合CentOS9虚拟机环境,详细拆解每种操作的实现步骤、核心特性及适用场景,帮助读者灵活应对不同业务需求下的HDFS操作场景。

 一、命令行操作:

CentOS9下的高效运维工具 命令行客户端(client1)是HDFS最基础也是最高效的操作方式,尤其适合CentOS9环境下的集群运维、批量处理等场景。通过内置脚本和命令集,可快速实现集群启停、文件管理等核心操作。

1.1 HDFS集群进程管理

CentOS9系统中,HDFS提供了一键启停与单独进程控制两套方案,满足不同运维需求: 

一键启停集群:

通过Hadoop内置脚本快速启动/关闭整个HDFS集群,自动识别NameNode、SecondaryNameNode及DataNode节点位置: 

# 一键启动HDFS集群 
$HADOOP_HOME/sbin/start-dfs.sh
# 一键关闭HDFS集群 
$HADOOP_HOME/sbin/stop-dfs.sh

执行启动命令后,可通过jps命令验证进程状态,CentOS9环境下正常输出应包含以下进程:

 [root@centos9 ~]
jps 3363 NameNode
4231 SecondaryNameNode
3707 DataNode
4894 Jps

单独控制进程:

针对特定节点的进程管理,可使用以下两种脚本,支持启动、状态查询、停止操作:
 

#方式1
hadoop-daemon.sh脚本 $HADOOP_HOME/sbin/hadoop-daemon.sh (start|status|stop) (namenode|secondarynamenode|datanode)
#方式2:hdfs命令(推荐,新版本适配性更强) 
$HDFS_HOME/bin/hdfs --daemon (start|status|stop) (namenode|secondarynamenode|datanode)

1.2 路径区分与命令体系

HDFS与CentOS9本地文件系统路径形式相似,但通过协议头明确区分,日常使用中可省略协议头,系统自动识别:

CentOS9本地路径:协议头file:///,示例:file:///usr/local/hello.txt 

 HDFS路径:协议头hdfs://namenode:port/,示例:hdfs://node1:8020/usr/local/hello.txt

 Hadoop提供两套功能完全一致的命令体系,CentOS9环境下均可使用:

# 老版本兼容命令
hadoop fs [generic options]
# 新版本推荐命令
hdfs dfs [generic options] 

 1.3 核心文件操作实战

以下操作基于CentOS9环境,涵盖HDFS文件系统常用功能,命令执行后均附验证步骤:

1. 创建目录:递归创建多级目录(`-p`选项自动创建父目录)

# 创建目录
hadoop fs -mkdir -p /hdfs_demo/input
# 验证结果 
hadoop fs -ls /

 验证输出应显示/hdfs_demo目录:

Found 2 items
drwxr-xr-x - root supergroup 0 2025-10-22 09:21 /hbase
drwxr-xr-x - root supergroup 0 2025-10-29 13:52 /hdfs_demo

2. 本地文件上传:将CentOS9本地文件上传至HDFS

#本地创建测试文件
echo "hello hdfs" > test.txt
# 上传至HDFS目标目录
hadoop fs -put test.txt /hdfs_demo/input
# 验证上传结果
hadoop fs -ls /hdfs_demo/input

3. 查看文件内容:读取HDFS文件完整数据

hadoop fs -cat /hdfs_demo/input/test.txt

输出结果:hello hdfs

 4. 追加数据到文件:将本地新数据追加至HDFS已有文件

# 本地创建追加文件
echo "append data" > append.txt
# 执行追加操作
hadoop fs -appendToFile append.txt /hdfs_demo/input/test.txt
# 验证结果
hadoop fs -cat /hdfs_demo/input/test.txt

输出结果:hello hdfs append data

5. 文件复制与重命名:

实现HDFS内部文件备份或名称修改

# 复制并改名
hadoop fs -cp /hdfs_demo/input/test.txt /hdfs_demo/input/test_copy.txt
# 验证结果
hadoop fs -ls /hdfs_demo/input

 6. 文件移动与重命名:

移动文件至新路径或直接重命名
 

hadoop fs -mv /hdfs_demo/input/test_copy.txt /hdfs_demo/input/test_rename.txt
hadoop fs -ls /hdfs_demo/input

 7. HDFS文件下载:

将HDFS文件下载至CentOS9本地系统

 # 创建本地目标目录 
mkdir -p local_demo
# 下载HDFS文件 
hadoop fs -get /hdfs_demo/input/test.txt local_demo/
# 验证结果 
ls local_demo/ 

8. 删除文件与目录:清理HDFS冗余数据(目录需递归删除)

删除单个文件 hadoop fs -rm /hdfs_demo/input/test_rename.txt 
递归删除目录(含所有子文件) hadoop fs -rm -r /hdfs_demo
验证结果 hadoop fs -ls / 

 二、Web UI操作:9870端口的可视化监控工具

Web UI客户端(client2)通过浏览器访问NameNode的Web界面,实现HDFS集群状态监控与文件浏览,CentOS9环境下无需额外安装客户端,直接通过端口访问即可。

2.1 访问路径与端口说明

HDFS Web UI的默认端口随Hadoop版本变化,CentOS9环境下需根据实际安装版本选择:  Hadoop 2.x及更早版本:默认端口50070,访问地址:`http://<namenode-host>:50070

 Hadoop 3.x及以上版本:默认端口9870,访问地址:`http://<namenode-host>:9870

其中<namenode-host>为CentOS9虚拟机的主机名或IP地址,可通过ifconfig命令获取本机IP(示例:192.168.142.131),直接访问:`http://192.168.142.131:9870

 2.2 访问路径验证方法

若不确定集群Web UI地址,可通过以下两种方式验证:

1. 查看配置文件:

编辑HDFS核心配置文件hdfs-site.xml,查找dfs.namenode.http-address属性:

<property>
  <name>dfs.namenode.http-address</name>
  <value>master:9870</value> <!-- CentOS9集群NameNode地址与端口 -->
</property>

2. 命令行查询:

通过Hadoop内置命令直接获取Web UI地址:

hadoop fs -getconf -confKey dfs.namenode.http-address

输出结果示例:master:9870

2.3 Web界面核心功能与权限说明

访问成功后,Web界面提供以下核心功能:

集群概览:查看NameNode状态、Hadoop版本、集群ID、块池信息等;

数据节点管理:查看DataNode列表、存储容量、运行状态;

文件系统浏览:通过Utilities > Browse the file system查看HDFS目录结构与文件详情;

日志查看:获取NameNode、DataNode等组件的运行日志。

权限注意事项:CentOS9环境下,Web UI默认以匿名用户(dr.who)登录,仅拥有只读权限,无法执行上传、删除等写操作。若需提升权限,可修改core-site.xml配置(不推荐生产环境使用):

<property>
    <name>hadoop.http.staticuser.user</name>
    <value>hadoop</value> <!-- 替换为CentOS9集群中的特权用户名 -->
</property>

 修改后需重启HDFS集群生效,但赋予Web UI高权限可能导致数据泄露或误操作风险,建议仅用于测试环境。

 三、Java API操作:IDEA图形化的开发级工具

Java API客户端(client3)通过IDEA等IDE的Big Data Tools插件,实现Windows本地对CentOS9虚拟机HDFS集群的图形化操作,适合开发阶段的可视化调试与程序集成。

3.1 环境准备

运行环境:Windows本地安装IDEA(或DataGrip、PyCharm),CentOS9虚拟机部署HDFS集群; - 通信前提:关闭CentOS9虚拟机防火墙,确保Windows与虚拟机网络互通:

 # CentOS9关闭防火墙(临时生效,重启后需重新执行)
systemctl stop firewalld 

3.2 Windows本地环境配置

1. 解压Hadoop安装包:

将与CentOS9集群版本一致的Hadoop安装包(如`hadoop-3.3.6.tar.gz`)解压至Windows本地路径(示例:`E:\hadoop-3.3.6`),解压时若提示权限不足,按住Shift右键选择“以管理员身份解压”。

2. 配置系统环境变量:

右键“此电脑”→“属性”→“高级系统设置”→“环境变量”;

新建系统变量`HADOOP_HOME`,值为`E:\hadoop-3.3.6`(实际解压路径);

编辑`Path`变量,添加`%HADOOP_HOME%\bin`。

3. 添加依赖文件:

下载`hadoop.dll`和`winutils.exe`(适配Hadoop版本),放置于`E:\hadoop-3.3.6\bin`目录,若连接失败,需将`hadoop.dll`复制至`C:\Windows\System32`目录。 依赖文件下载地址:https://github.com/steveloughran/winutils/tree/master/hadoop-3.0.0/bin

3.3 IDEA插件安装与配置

1. 安装Big Data Tools插件:

打开IDEA→“File”→“Settings”→“Plugins”,搜索“Big Data Tools”安装,重启IDEA生效。

2. 配置HDFS连接: 

打开IDEA→“Tools”→“Big Data Tools”→“Add Connection”→选择“HDFS”; 

配置连接参数: - 集群URI:`hdfs://<centos9-ip>:9000`(CentOS9虚拟机IP与HDFS默认端口); Hadoop用户名:CentOS9集群中的Hadoop用户名wyj; 

配置文件夹:选择Windows本地Hadoop解压目录下的`etc/hadoop`(示例:`E:\hadoop-3.3.6\etc\hadoop`);

点击“Test Connection”,显示“已连接”即配置成功。

 3.4 图形化操作HDFS

连接成功后,可在IDEA的Big Data Tools面板中,以图形化方式执行以下操作:

 浏览HDFS目录结构,查看文件详情(权限、大小、修改时间); 

上传本地文件至HDFS,或下载HDFS文件至本地; - 创建、删除HDFS目录与文件; 

重命名、复制HDFS文件,操作方式与本地文件管理器一致,无需记忆命令。

四、三种操作方式的对比与整合建议 

4.1 核心特性对比

操作方式 效率 易用性 核心优势 适用场景
命令行 Shell

最高

中等(需掌握命令) 批量处理、脚本自动化、无图形界面依赖 CentOS9 集群运维、定时任务执行
Web UI

最低

最高(可视化) 集群监控、状态查看、快速浏览文件 运维监控、数据校验、非开发人员使用
Java API(IDEA) 中等 较高(图形化) 开发调试、程序集成、可视化操作 大数据应用开发、本地调试、高频交互操作

4.2 整合使用建议

在实际项目中,三种方式可互补使用,提升工作效率: 

开发阶段:使用IDEA的Big Data Tools插件进行图形化调试,快速验证文件操作逻辑; 

运维阶段:通过命令行脚本实现批量数据上传、集群启停等自动化操作; 

监控阶段:通过Web UI实时查看集群运行状态、数据存储情况,及时发现异常。

总结

本文基于CentOS9虚拟机环境,详细介绍了HDFS的三种核心操作方式,命令行适合高效运维,Web UI适合可视化监控,Java API适合开发集成。掌握这三种方式的灵活运用,可覆盖大数据项目从开发、测试到运维的全流程HDFS操作需求。实际使用中,需根据业务场景选择合适的操作方式,必要时结合使用,以达到最佳效率。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐