0443-CM上HDFS容量显示与实际命令不一致问题分析

本文分析了在Cloudera Manager中HDFS容量显示与通过HDFS界面和命令行得到的实际使用量不一致的情况。问题在于Cloudera Manager的显示包括了DFS和非DFS使用的空间,而Non DFS Used部分是为系统和其他非HDFS文件预留的空间。当非HDFS文件占用超过预留空间时,会占用DFS容量,导致显示差异。解决方案是理解DN节点硬盘预留和非HDFS文件占用的情况。

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github:
https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢

1.问题描述


通过Cloudera Manager看到HDFS的容量使用显示为103.9GB

通过HDFS的50070界面查看到HDFS的容量使用情况为41.63GB

使用hadoop fs -du –h /命令查看HDFS的使用情况,HDFS的使用为41.63GB

疑问:为什么Cloudera Manager上显示HDFS空间的使用量会比HDFS真实使用量大很多?

2.问题分析


在Cloudera Manager上鼠标停留在HDFS容量配置上会显示容量使用说明,如下图所示:

CM上显示HDFS配置容量由两部分组成DFS使用的空间和非DFS使用的空间两部分组成。

接下来我们再看看HDFS的50070界面的统计信

<think>我们被要求提供使用Xshell执行HDFS dfs命令的结果图。但由于当前环境是文本交互,无法直接生成图片,我将用文字描述每个命令的典型输出结果,并尽可能模拟终端显示效果。 注意:以下输出是基于典型Hadoop环境的模拟,实际输出可能因配置和文件系统内容而异。每个命令后都会给出示例输出。 1. hdfs dfs -ls [目录路径]:查看文件和目录 示例:查看根目录 命令hdfs dfs -ls / 输出: Found 3 items drwxr-xr-x - hadoop supergroup 0 2024-01-01 10:00 /user drwxr-xr-x - hadoop supergroup 0 2024-01-02 11:00 /data -rw-r--r-- 3 hadoop supergroup 1024 2024-01-03 12:00 /testfile.txt 解释:第一列是权限,第二列是副本数(目录没有,文件有),然后是所有者、组、小、修改日期和路径。 2. hdfs dfs -mkdir [目录路径]:创建目录 命令hdfs dfs -mkdir /newdir 输出:无(如果成功),失败则会报错。 3. hdfs dfs -mv [源路径] [目标路径]:移动文件 命令hdfs dfs -mv /olddir/file.txt /newdir/file.txt 输出:无(如果成功)。 4. hdfs dfs -rm [文件路径]:删除文件 命令hdfs dfs -rm /testfile.txt 输出: Deleted /testfile.txt 如果是目录,需要加`-r`:hdfs dfs -rm -r /olddir 5. hdfs dfs -cp [源路径] [目标路径]:复制文件 命令hdfs dfs -cp /file1.txt /backup/file1.txt 输出:无(如果成功)。 6. hdfs dfs -cat [文件路径]:查看文件内容 命令hdfs dfs -cat /data/example.txt 输出: Hello, HDFS! This is an example file. 7. hdfs dfs -put [本地源路径] [HDFS目标路径]:上传文件 命令hdfs dfs -put localfile.txt /user/hadoop/ 输出:无(如果成功)。 8. hdfs dfs -get [HDFS源路径] [本地目标路径]:下载文件 命令hdfs dfs -get /user/hadoop/hdfsfile.txt localfile.txt 输出:无(如果成功)。 注意:上述命令中,如果路径包含空格或特殊字符,需要用引号括起来。 由于无法提供实际截图,建议用户在实际环境执行这些命令观察结果。 另外,引用[1]中提到了`hdfs dfs -getmerge`命令,它可以将多个HDFS文件合并下载到本地一个文件中。例如: 命令hdfs dfs -getmerge /abc/abc1.txt /abc/abc2.txt /home/hadoop/abc3.txt 作用:将HDFS上的abc1.txt和abc2.txt合并下载到本地的abc3.txt文件中。 如果需要更详细的帮助,可以使用`hdfs dfs -help [命令]`查看。 根据用户要求,我们生成了每个命令的示例输出。但请注意,实际输出HDFS中的内容有关。 相关问题: 1. HDFS Shell命令和Linux Shell命令有什么主要区别? 2. 如何查看HDFS中某个文件的小和副本数? 3. HDFS的上传下载过程中,如何显示进度? </think>以下是使用Xshell执行HDFS Shell命令的典型结果图示及说明(基于Hadoop 3.x环境模拟): --- ### 1. **查看文件和目录** `hdfs dfs -ls` ```bash $ hdfs dfs -ls /data Found 3 items drwxr-xr-x - hadoop supergroup 0 2024-06-01 10:23 /data/docs -rw-r--r-- 3 hadoop supergroup 104857 2024-06-01 09:15 /data/report.txt drwxr-xr-x - hadoop supergroup 0 2024-06-01 08:40 /data/backup ``` - ✅ 目录以 `d` 开头,文件以 `-` 开头 -显示权限、副本数(如`3`)、所有者、小和修改时间 [^3] --- ### 2. **创建目录** `hdfs dfs -mkdir` ```bash $ hdfs dfs -mkdir /data/new_dir (无输出表示成功) $ hdfs dfs -ls /data Found 4 items ...(包含新建的new_dir目录) ``` --- ### 3. **移动文件** `hdfs dfs -mv` ```bash $ hdfs dfs -mv /data/report.txt /data/backup/ Moved: 'hdfs://.../data/report.txt' to 'hdfs://.../data/backup/report.txt' ``` --- ### 4. **删除文件** `hdfs dfs -rm` ```bash $ hdfs dfs -rm /data/temp.log Deleted /data/temp.log $ hdfs dfs -rm -r /data/expired_dir # 删除目录需加-r Deleted /data/expired_dir ``` --- ### 5. **复制文件** `hdfs dfs -cp` ```bash $ hdfs dfs -cp /data/docs/file1.txt /backup/ Copied: 'hdfs://.../data/docs/file1.txt' to 'hdfs://.../backup/file1.txt' ``` --- ### 6. **查看文件内容** `hdfs dfs -cat` ```bash $ hdfs dfs -cat /data/config.ini [system] hadoop.version=3.3.6 block.size=128MB ... (直接输出文件全文) ``` --- ### 7. **上传文件** `hdfs dfs -put` ```bash $ hdfs dfs -put ~/local/data.csv /data/input/ (无输出表示成功) $ hdfs dfs -ls /data/input -rw-r--r-- 3 hadoop supergroup 204800 2024-06-01 11:30 /data/input/data.csv ``` --- ### 8. **下载文件** `hdfs dfs -get` ```bash $ hdfs dfs -get /data/output/result.csv ~/downloads/ (无输出表示成功) $ ls ~/downloads result.csv # 本地验证 ``` 特殊用法:合并下载(引用[1]示例) `hdfs dfs -getmerge /abc/*.txt ~/merged.txt` [^1] --- ### 📌 关键特征总结 1. **成功操作**:多数命令成功时无输出(如`mkdir/put/get`) 2. **交互反馈**:删除/移动等操作会返回`Deleted`/`Moved`提示 3. **权限标识**:`drwxr-xr-x` 表示目录权限 [^2] 4. **副本数显示**:文件第二列为副本数(如 `3`)[^3] 5. **路径规范**:HDFS路径需以`/`开头,本地路径无需前缀 > ⚠️ 注意:实际输出取决于HDFS配置和文件状态,建议通过`hdfs dfs -help [command]`查看详细帮助。 --- ### 相关问题 1. HDFS Shell命令Linux Shell命令有哪些主要区别? 2. 如何递归查看HDFS子目录的所有文件? 3. `hdfs dfs -getmerge`命令在合并文件时如何处理同编码?[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值