要启动 Hadoop 集群并使其正常运行,需要遵循以下详细步骤。假设已经完成了配置和部署,并且已经确保集群的各项配置正确,接下来的步骤将指导如何启动 Hadoop 集群并检查它是否运行正常。
步骤 1: 启动 HDFS (Hadoop 分布式文件系统)
HDFS 是 Hadoop 的核心部分之一,它负责管理分布式文件存储。在启动 HDFS 之前,请确保 NameNode
和 DataNode
配置正确。
-
格式化 NameNode
在主节点(hd1
)上格式化 NameNode(如果是第一次启动 Hadoop 集群,必须格式化 NameNode)。这将清空所有 HDFS 元数据,确保文件系统能够初始化。hdfs namenode -format
注意: 这一步仅需要在第一次启动时执行,后续启动时不需要再次格式化。
-
启动 HDFS
运行start-dfs.sh
脚本来启动 HDFS。这个脚本会启动NameNode
(主节点)和DataNode
(从节点)。在主节点
hd1
上运行:start-dfs.sh
这个命令会启动以下进程:
NameNode
在主节点hd1
上。DataNode
在从节点hd2
和hd3
上。
启动后,可以在
hd1
上使用jps
命令检查相关进程:jps
输出应包含以下进程(在主节点
hd1
上):NameNode
-
在从节点
hd2
和hd3
上使用jps
命令检查:jps
输出应包含以下进程(在从节点
hd2
和hd3
上):DataNode
步骤 2: 启动 YARN (Yet Another Resource Negotiator)
YARN 负责集群资源管理和作业调度。在启动 Hadoop 集群时,YARN 需要启动以支持 MapReduce 作业和其他计算任务。
-
启动 YARN
运行start-yarn.sh
脚本来启动 YARN。这将启动ResourceManager
和NodeManager
:在主节点
hd1
上运行:start-yarn.sh
启动后,可以在主节点
hd1
上使用jps
命令检查ResourceManager
是否已成功启动:jps
输出应包含以下进程:
ResourceManager
在从节点
hd2
和hd3
上使用jps
命令检查NodeManager
是否已启动:jps
输出应包含以下进程:
NodeManager
步骤 3: 检查集群状态
-
检查 HDFS 状态
可以通过访问 Hadoop Web 界面来检查 HDFS 和 YARN 的状态:-
HDFS Web UI:
http://hd1:50070/
这里可以查看NameNode
和DataNode
的状态。 -
YARN Web UI:
http://hd1:8088/
这里可以查看ResourceManager
和NodeManager
的状态,以及正在运行的作业。
-
-
检查 HDFS 状态 via CLI
您可以使用hdfs dfsadmin -report
来查看 HDFS 集群的状态:hdfs dfsadmin -report
该命令将显示 HDFS 集群的健康状况、各个
DataNode
的状态以及存储使用情况。
步骤 4: 运行一个简单的 HDFS 命令测试集群是否正常
-
在 HDFS 上创建目录
在主节点hd1
上创建一个 HDFS 目录,用于测试:hdfs dfs -mkdir /user/hadoop
-
上传文件到 HDFS
将本地文件上传到 HDFS 上刚创建的目录(请确保指定的路径存在):hdfs dfs -put /path/to/local/file /user/hadoop/
-
列出 HDFS 目录内容
列出/user/hadoop
目录中的内容,确认文件已上传成功:hdfs dfs -ls /user/hadoop
如果文件成功上传,您将在输出中看到文件列表。
步骤 5: 验证 YARN 集群状态(可选)
您可以使用以下命令来查看 YARN 集群的状态,检查集群资源管理器的作业调度情况:
yarn application -list
此命令将列出所有当前正在运行的 YARN 作业。
步骤 6:关闭 HDFS 和 YARN 的步骤
-
停止 YARN 服务
首先停止 YARN 服务,使用以下命令:
stop-yarn.sh
这将停止
ResourceManager
和NodeManager
等 YARN 相关的服务。 -
停止 HDFS 服务
然后,停止 HDFS 服务,使用以下命令:
stop-dfs.sh
这将依次停止
NameNode
、DataNode
和SecondaryNameNode
等 HDFS 相关服务。 -
检查集群状态
可以通过运行
jps
命令来确认所有相关的 Hadoop 进程已停止。例如,执行以下命令:jps
如果所有进程已正确停止,应该看不到以下 Hadoop 相关的进程:
NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager
如果这些进程还在运行,可能需要手动终止它们,使用如下命令:
kill <pid>
其中
<pid>
是进程的 ID。 -
关闭所有节点上的 Hadoop 进程
集群包含多个节点,需要在每个节点上分别运行
stop-dfs.sh
和stop-yarn.sh
来关闭对应的服务。 -
确保所有进程已停止
再次运行
jps
确认 Hadoop 的所有进程都已停止。
总结
- 格式化 NameNode(只需第一次启动时执行)。
- 启动 HDFS:通过
start-dfs.sh
启动NameNode
和DataNode
。 - 启动 YARN:通过
start-yarn.sh
启动ResourceManager
和NodeManager
。 - 检查集群状态:使用
jps
命令、Web UI 或hdfs dfsadmin -report
查看集群状态。 - 运行命令验证:通过创建目录、上传文件并列出文件,确保 HDFS 正常工作。
- 停止 YARN 服务
- 使用
stop-dfs.sh
停止 HDFS。 - 使用
stop-yarn.sh
停止 YARN。 - 使用
jps
确认所有进程已停止。