Hadoop / YARN / Hive 运维操作教程
本文整理了一份完整的 Hadoop、YARN、Hive 运维操作手册,包括配置同步、集群启动、服务管理、任务监控等常用运维操作。适用于多节点集群的管理和日常维护。
1、Hadoop 配置同步
在多节点集群中,需要保持 Hadoop 配置文件一致,可以通过 rsync 脚本快速同步。
脚本示例
bash
#!/bin/bash
# Hadoop 配置同步脚本
# 同步 Hadoop 配置到 node1
rsync -avz /usr/local/hadoop-3.3.0/etc/hadoop/ node1:/usr/local/hadoop-3.3.0/etc/hadoop/
# 同步 Hadoop 配置到 node2
rsync -avz /usr/local/hadoop-3.3.0/etc/hadoop/ node2:/usr/local/hadoop-3.3.0/etc/hadoop/
使用方法
- 将脚本保存为
/opt/sync-hadoop-config.sh - 添加执行权限:
bash
chmod +x /opt/sync-hadoop-config.sh
- 执行脚本进行同步:
bash
sudo /opt/sync-hadoop-config.sh
说明:
rsync -avz支持增量同步、保持权限并压缩传输。- 修改 Hadoop 配置后,必须同步到所有节点,确保集群一致性。
2、Hadoop + Hive 自动启动脚本
快速启动 Hadoop 集群(HDFS + YARN)和 Hive 服务(Metastore + HiveServer2)。
脚本示例
bash
#!/bin/bash
# 自动启动 Hadoop 集群及 Hive 服务
echo "Stopping any running Hadoop services..."
stop-yarn.sh
stop-dfs.sh
echo "Starting HDFS..."
start-dfs.sh
echo "Starting YARN..."
start-yarn.sh
echo "Checking all Java processes..."
jps
echo "[12/13] Starting Hive Metastore and HiveServer2..."
mkdir -p /var/log
$HIVE_HOME/bin/hive --service metastore > /var/log/hive-metastore.log 2>&1 &
disown
sleep 5
$HIVE_HOME/bin/hive --service hiveserver2 > /var/log/hiveserver2.log 2>&1 &
disown
echo "Waiting for HiveServer2 to start..."
while ! lsof -i:10000 >/dev/null 2>&1; do sleep 2; done
echo ""
echo "============================================"
echo " Hive Installation Complete!"
echo "============================================"
echo "Hive CLI: hive"
echo "Beeline: beeline → !connect jdbc:hive2://node0:10000"
echo "Username: root"
echo "Password: 123456"
echo "DBeaver: node1 → dbeaver &"
echo "============================================"
使用方法
- 保存为
/opt/start-hadoop-hive.sh - 添加执行权限:
bash
chmod +x /opt/start-hadoop-hive.sh
- 执行脚本:
bash
sudo /opt/start-hadoop-hive.sh
说明:
- 脚本会先停止已有 Hadoop 服务,防止端口冲突。
- 启动顺序为 HDFS → YARN → Hive Metastore → HiveServer2。
- 脚本会等待 HiveServer2 完成启动(监听端口 10000)。
3、Hadoop 服务管理
停止服务
bash
stop-dfs.sh # 停止 HDFS
stop-yarn.sh # 停止 YARN
启动服务
bash
start-dfs.sh # 启动 HDFS
start-yarn.sh # 启动 YARN
查看节点进程
bash
jps # 查看 Hadoop / Java 相关进程
4、YARN 应用管理
查看应用状态
bash
yarn application -status <application_id>
示例:
bash
yarn application -status application_1762584413435_0004
列出应用
bash
yarn application -list # 仅 RUNNING
yarn application -list -appStates ALL # 所有状态
yarn application -list -appStates FINISHED
yarn application -list -appStates FAILED
查看容器日志
bash
yarn logs -applicationId <application_id>
示例:
bash
yarn logs -applicationId application_1762584413435_0004 | grep "Reducer" | grep "container_"
5、Hadoop 节点管理
列出节点
bash
yarn node -list
查看节点状态
bash
yarn node -status <node:port>
示例:
bash
yarn node -status node0:8042
yarn node -status node1:45766
节点标签管理
bash
yarn rmadmin -addToClusterNodeLabels "AMnode"
6、ResourceManager 管理
bash
yarn --daemon stop resourcemanager # 停止 ResourceManager
yarn --daemon start resourcemanager # 启动 ResourceManager
7、Hive 操作
bash
hive # 启动 Hive CLI
cat /var/log/hiveserver2.log # 查看 HiveServer2 日志
8、系统与集群监控
bash
top # 查看 CPU / 内存使用
hdfs dfsadmin -report | egrep "Datanodes|Name|Dead|Live" # HDFS 状态
zkServer.sh status # ZooKeeper 状态
9、MapReduce 任务管理
bash
mapred job -list # 列出 MR 任务
mapred job -status <job_id> # 查看 MR 任务状态
示例:
bash
mapred job -status job_1731089675000_0001
10、常用日志与调试
- HiveServer2 日志:
/var/log/hiveserver2.log - Hive Metastore 日志:
/var/log/hive-metastore.log - YARN 容器日志:
yarn logs -applicationId <app_id> - HDFS 健康状态:
hdfs dfsadmin -report
总结
- 配置同步脚本:保证多节点 Hadoop 配置一致。
- 自动启动脚本:快速启动 Hadoop + Hive 集群。
- 日常运维命令涵盖 Hadoop 服务管理、YARN 应用管理、节点管理、Hive 操作、系统监控和 MapReduce 任务管理。
- 日志与调试命令:帮助快速定位问题,提升运维效率。