hadoop命令大全
### Hadoop 命令大全知识点详解 #### 一、Hadoop Shell 命令概览 1. **查看所有支持的 Hadoop Shell 命令** - 命令: `$bin/hadoop fs -help` - 用途: 显示所有可用的 Hadoop 文件系统操作命令。 2. **获取特定命令的帮助信息** - 命令: `$bin/hadoop fs -help command-name` - 用途: 获取特定 Hadoop 命令的详细帮助信息。 3. **查看作业历史记录** - 命令: `$bin/hadoop job -history output-dir` - 用途: 显示作业的历史记录,包括作业的详细信息、失败和终止的任务详情。 4. **获取作业的全面信息** - 命令: `$bin/hadoop job -history all output-dir` - 用途: 提供更详尽的作业历史信息,包括成功的任务以及每个任务的尝试次数等。 #### 二、Hadoop 集群管理命令 5. **格式化一个新的 Hadoop 分布式文件系统 (HDFS)** - 命令: `$bin/hadoop namenode -format` - 用途: 格式化 NameNode 的元数据存储,为部署新的 HDFS 实例做准备。 6. **启动 Hadoop 分布式文件系统 (HDFS)** - 命令: `$bin/start-dfs.sh` - 用途: 启动整个 HDFS 集群,包括 NameNode 和 DataNode 守护进程。 - 相关配置: 此脚本参考 ${HADOOP_CONF_DIR}/slaves 文件中的内容来确定需要启动 DataNode 的机器列表。 7. **启动 MapReduce 服务** - 命令: `$bin/start-mapred.sh` - 用途: 启动 JobTracker 和 TaskTracker 守护进程,从而实现 MapReduce 服务的运行。 - 相关配置: 类似于 HDFS 的启动,此脚本也会参考 ${HADOOP_CONF_DIR}/slaves 文件中的机器列表。 8. **停止 Hadoop 分布式文件系统 (HDFS)** - 命令: `$bin/stop-dfs.sh` - 用途: 关闭 HDFS 集群,包括 NameNode 和 DataNode 守护进程。 - 相关配置: 该脚本同样依据 ${HADOOP_CONF_DIR}/slaves 文件来确定哪些机器上的 DataNode 需要被关闭。 9. **停止 MapReduce 服务** - 命令: `$bin/stop-mapred.sh` - 用途: 停止 JobTracker 和 TaskTracker 守护进程,进而关闭整个 MapReduce 服务。 - 相关配置: 同样基于 ${HADOOP_CONF_DIR}/slaves 文件来确定哪些机器上的 TaskTracker 需要被关闭。 #### 三、DFS Shell 命令 10. **创建目录** - 命令: `$bin/hadoop dfs -mkdir /foodir` - 用途: 在 HDFS 上创建指定路径的新目录。 11. **查看文件内容** - 命令: `$bin/hadoop dfs -cat /foodir/myfile.txt` - 用途: 显示指定 HDFS 路径下的文件内容。 #### 四、DFSAdmin 命令 12. **进入安全模式** - 命令: `$bin/hadoop dfsadmin -safemode enter` - 用途: 将 HDFS 集群置于安全模式,限制写操作以保护数据的一致性。 13. **显示 Datanode 列表** - 命令: `$bin/hadoop dfsadmin -report` - 用途: 显示所有 Datanode 的状态报告,包括它们的活动状态、容量利用率等信息。 14. **退役 Datanode** - 命令: `$bin/hadoop dfsadmin -decommission datanodename` - 用途: 从集群中移除并退役指定的 Datanode。 15. **查看所有当前支持的命令** - 命令: `$bin/hadoop dfsadmin -help` - 用途: 列出所有可用的 DFSAdmin 命令。 16. **显示 HDFS 基本统计信息** - 命令: `$bin/hadoop dfsadmin -report` - 用途: 提供 HDFS 的基本统计信息,这些信息也可以通过访问 NameNode 的 Web 界面获取。 17. **手动控制安全模式** - 命令: `$bin/hadoop dfsadmin -safemode [enter|leave]` - 用途: 允许管理员手动控制 NameNode 进入或退出安全模式。 18. **完成升级操作** - 命令: `$bin/hadoop dfsadmin -finalizeUpgrade` - 用途: 在升级过程中,当所有的 DataNodes 已经完成升级后,执行此命令以删除备份文件,完成升级流程。 19. **检查升级进度** - 命令: `$bin/hadoop dfsadmin -upgradeProgress status` - 用途: 检查集群的升级状态,确认是否需要进行最终的升级步骤。 20. **启动带有升级选项的 Hadoop 服务** - 命令: `$bin/start-dfs.sh -upgrade` - 用途: 启动 Hadoop 服务,并自动执行升级流程。 21. **回滚到旧版本** - 命令: `$bin/start-dfs.sh -rollback` - 用途: 如果升级出现问题,可以通过此命令回滚到旧版本。 22. **支持配额的新命令** - 命令: `dfsadmin -setquota <N> <directory>` - 用途: 设置指定目录的配额为 N,用于限制该目录及其子目录下的存储空间使用量。 - 命令: `dfsadmin -clrquota <directory>` - 用途: 清除指定目录的配额设置,恢复其默认行为。 以上命令覆盖了 Hadoop 日常管理和维护中常见的需求,如集群启动与关闭、文件操作、安全管理、性能监控等。掌握这些命令有助于高效地管理和使用 Hadoop 集群。