任务六:Hadoop HDFS实操教程(Shell,Web,JAVA API)
引言
在大数据生态中,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操作需求。实际使用中,需根据业务场景选择合适的操作方式,必要时结合使用,以达到最佳效率。
更多推荐

所有评论(0)