Hadoop / YARN / Hive 运维操作教程

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/

使用方法

  1. 将脚本保存为 /opt/sync-hadoop-config.sh
  2. 添加执行权限:
bash 复制代码
chmod +x /opt/sync-hadoop-config.sh
  1. 执行脚本进行同步:
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 "============================================"

使用方法

  1. 保存为 /opt/start-hadoop-hive.sh
  2. 添加执行权限:
bash 复制代码
chmod +x /opt/start-hadoop-hive.sh
  1. 执行脚本:
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 任务管理。
  • 日志与调试命令:帮助快速定位问题,提升运维效率。
相关推荐
相思难忘成疾20 小时前
【Linux网络服务】基于Euler系统的主从DNS服务器深度配置
linux·运维·服务器
光电笑映20 小时前
Linux 文件 IO:缓冲区、重定向与一切皆文件
linux·运维·服务器
Languorous.20 小时前
Linux mkdir、rmdir 命令详解——目录的创建与删除(新手零踩坑)
linux·运维·服务器
Python-AI Xenon21 小时前
双网卡双网关服务器策略路由配置与持久化完全指南
linux·运维·计算机网络·网络故障排查
最后一个bug21 小时前
ubuntu24.04在docker下迁移gitlab16
linux·运维·docker
yyyyy_abc21 小时前
负载均衡与高可用
运维·负载均衡
遇印记21 小时前
软考知识点(windows系统管理与命令)
运维·服务器·网络·windows·ddos
风曦Kisaki21 小时前
# Linux运维Day03:Nginx 反向代理(服务集群)、负载均衡、四层调度与优化
linux·运维·nginx
木雷坞21 小时前
csdn-enterpriseGitLab Runner docker pull 慢:并行流水线镜像拉取排查
运维·docker·容器·gitlab
雪度娃娃21 小时前
Asio异步读写——简单服务器和客户端异步通信
运维·服务器·网络·c++·php