HDFS 运维
HDFS 运维
HDFS 命令
显示当前目录结构
1 | 显示当前目录结构 |
创建目录
1 | 创建目录 |
删除操作
1 | 删除文件 |
导入文件到 HDFS
1 | 二选一执行即可 |
从 HDFS 导出文件
1 | 二选一执行即可 |
查看文件内容
1 | 二选一执行即可 |
显示文件的最后一千字节
1 | hdfs dfs -tail <path> |
拷贝文件
1 | hdfs dfs -cp [src] [dst] |
移动文件
1 | hdfs dfs -mv [src] [dst] |
统计当前目录下各文件大小
- 默认单位字节
- -s : 显示所有文件大小总和,
- -h : 将以更友好的方式显示文件大小(例如 64.0m 而不是 67108864)
1 | hdfs dfs -du <path> |
合并下载多个文件
- -nl 在每个文件的末尾添加换行符(LF)
- -skip-empty-file 跳过空文件
1 | hdfs dfs -getmerge |
统计文件系统的可用空间信息
1 | hdfs dfs -df -h / |
更改文件复制因子
1 | hdfs dfs -setrep [-R] [-w] <numReplicas> <path> |
- 更改文件的复制因子。如果 path 是目录,则更改其下所有文件的复制因子
- -w : 请求命令是否等待复制完成
1 | # 示例 |
权限控制
1 | # 权限控制和Linux上使用方式一致 |
文件检测
1 | hdfs dfs -test - [defsz] URI |
可选选项:
- -d:如果路径是目录,返回 0。
- -e:如果路径存在,则返回 0。
- -f:如果路径是文件,则返回 0。
- -s:如果路径不为空,则返回 0。
- -r:如果路径存在且授予读权限,则返回 0。
- -w:如果路径存在且授予写入权限,则返回 0。
- -z:如果文件长度为零,则返回 0。
1 | # 示例 |
HDFS 安全模式
什么是安全模式?
- 安全模式是 HDFS 的一种特殊状态,在这种状态下,HDFS 只接收读数据请求,而不接收写入、删除、修改等变更请求。
- 安全模式是 HDFS 确保 Block 数据安全的一种保护机制。
- Active NameNode 启动时,HDFS 会进入安全模式,DataNode 主动向 NameNode 汇报可用 Block 列表等信息,在系统达到安全标准前,HDFS 一直处于“只读”状态。
何时正常离开安全模式
- Block 上报率:DataNode 上报的可用 Block 个数 / NameNode 元数据记录的 Block 个数
- 当 Block 上报率 >= 阈值时,HDFS 才能离开安全模式,默认阈值为 0.999
- 不建议手动强制退出安全模式
触发安全模式的原因
- NameNode 重启
- NameNode 磁盘空间不足
- Block 上报率低于阈值
- DataNode 无法正常启动
- 日志中出现严重异常
- 用户操作不当,如:强制关机(特别注意!)
故障排查
- 找到 DataNode 不能正常启动的原因,重启 DataNode
- 清理 NameNode 磁盘
- 谨慎操作,有问题找星环,以免丢失数据