题目
HDFS文件操作与权限管理
信息
- 类型:问答
- 难度:⭐
考点
HDFS基本命令,文件权限管理,数据块存储原理
快速回答
核心操作命令:
hadoop fs -put localfile /user/hadoop/- 上传文件hadoop fs -chmod 755 /user/hadoop/file- 修改权限hadoop fs -ls /user/hadoop- 查看文件列表
关键知识点:
- HDFS权限模型类Linux(rwx)
- 默认副本数由hdfs-site.xml配置
- NameNode管理元数据,DataNode存储实际数据块
原理说明
HDFS(Hadoop Distributed File System)是Hadoop的分布式文件系统:
- NameNode:存储文件系统的元数据(文件名、权限、数据块位置)
- DataNode:存储实际数据块(默认128MB/块)
- 副本机制:默认每个数据块存3份副本(可配置)
- 权限模型:类Linux的rwx权限(r-read, w-write, x-execute)
代码示例
1. 文件操作命令:
# 上传本地文件到HDFS
hadoop fs -put ~/data.txt /user/hadoop/input/
# 查看HDFS文件列表
hadoop fs -ls /user/hadoop/input
# 修改文件权限(所有者可读写执行,组用户读执行,其他用户读执行)
hadoop fs -chmod 755 /user/hadoop/input/data.txt
# 删除文件
hadoop fs -rm /user/hadoop/input/data.txt2. 查看数据块信息:
# 显示文件块分布(需文件路径)
hdfs fsck /user/hadoop/input/data.txt -files -blocks -locations最佳实践
- 目录规范:建立清晰的目录结构如
/user/<username>/input,/output - 权限控制:生产环境中严格设置目录权限(例如:敏感目录设置700)
- 大文件存储:HDFS适合存储GB/TB级大文件,避免大量小文件
- 命令检查:操作前用
-ls确认路径,防止误删
常见错误
- 权限不足:
Permission denied→ 检查用户身份及目录权限 - 路径错误:
No such file or directory→ 用-ls逐级检查路径 - 空间不足:
Could only write X blocks→ 检查集群磁盘空间 - 小文件问题:大量小文件导致NameNode内存压力 → 合并为SequenceFile
扩展知识
- 副本因子配置:在
hdfs-site.xml中设置dfs.replication - Web UI:通过
http://<namenode-ip>:9870查看文件块分布 - 安全模式:
hdfs dfsadmin -safemode get查看安全模式状态 - 归档文件:使用
hadoop archive命令合并小文件