Hadoop集群的常用命令主要分为**HDFS文件操作**、**YARN资源管理**、**集群管理**和**维护工具**四大类。以下是常用命令及说明:
一、HDFS 文件操作命令
- **查看目录/文件列表**
```bash
hdfs dfs -ls <HDFS路径> # 例如:hdfs dfs -ls /user
```
- **上传文件到HDFS**
```bash
hdfs dfs -put <本地路径> <HDFS路径> # 等价于 -copyFromLocal
hdfs dfs -copyFromLocal <本地路径> <HDFS路径>
```
- **从HDFS下载文件**
```bash
hdfs dfs -get <HDFS路径> <本地路径> # 等价于 -copyToLocal
hdfs dfs -copyToLocal <HDFS路径> <本地路径>
```
- **创建目录**
```bash
hdfs dfs -mkdir -p <HDFS路径> # -p 自动创建父目录
```
- **删除文件/目录**
```bash
hdfs dfs -rm <HDFS文件路径> # 删除文件
hdfs dfs -rm -r <HDFS目录路径> # 递归删除目录
```
- **查看文件内容**
```bash
hdfs dfs -cat <HDFS文件路径> # 查看全部内容
hdfs dfs -tail <HDFS文件路径> # 查看末尾内容
```
- **文件操作**
```bash
hdfs dfs -cp <源路径> <目标路径> # 复制
hdfs dfs -mv <源路径> <目标路径> # 移动
hdfs dfs -touchz <HDFS文件路径> # 创建空文件
```
- **查看空间使用**
```bash
hdfs dfs -du -h <HDFS路径> # 显示文件/目录大小(人类可读)
hdfs dfs -df -h # 查看HDFS总空间
```
- **权限管理**
```bash
hdfs dfs -chmod <权限> <HDFS路径> # 修改权限(如 755)
hdfs dfs -chown <用户:组> <HDFS路径> # 修改所有者
```
二、YARN 资源管理命令
- **提交MapReduce作业**
```bash
hadoop jar <jar包路径> <主类名> [参数]
```
- **查看运行中的任务**
```bash
yarn application -list # 列出所有应用
```
- **终止任务**
```bash
yarn application -kill <ApplicationID> # 根据ID终止任务
```
- **查看节点状态**
```bash
yarn node -list # 显示集群节点信息
```
- **查看任务日志**
```bash
yarn logs -applicationId <ApplicationID> # 查看指定任务的日志
```
三、集群管理命令
- **启动/停止HDFS和YARN**
```bash
start-dfs.sh # 启动HDFS
start-yarn.sh # 启动YARN
stop-dfs.sh # 停止HDFS
stop-yarn.sh # 停止YARN
```
- **检查HDFS健康状态**
```bash
hdfs dfsadmin -report # 显示DataNode状态
hdfs fsck / # 检查文件系统完整性
```
- **进入/退出安全模式**
```bash
hdfs dfsadmin -safemode enter # 进入安全模式(只读)
hdfs dfsadmin -safemode leave # 退出安全模式
```
- **数据平衡**
```bash
hdfs balancer # 启动数据均衡(调整DataNode负载)
```
四、维护与工具命令
- **跨集群复制数据(DistCp)**
```bash
hadoop distcp <源集群路径> <目标集群路径> # 大规模数据迁移
```
- **合并小文件**
```bash
hdfs dfs -getmerge <HDFS目录> <本地文件> # 合并下载到本地
```
- **创建HAR归档文件**
```bash
hadoop archive -archiveName <名称>.har -p <输入路径> <输出路径>
```
- **格式化NameNode(谨慎!)**
```bash
hdfs namenode -format # 初始化集群时使用,会清空数据!
```
注意事项
-
**权限问题**:部分命令需要管理员权限(如`dfsadmin`)。
-
**版本差异**:不同Hadoop版本命令可能略有不同。
-
**安全模式**:在安全模式下无法写入数据,需通过`dfsadmin`退出。