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 任务管理。
  • 日志与调试命令:帮助快速定位问题,提升运维效率。
相关推荐
卷毛迷你猪3 天前
快速实验篇(A11)数据集成与多维分析:从单实验产出到跨实验宽表
hive·hadoop
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
AI职业加油站3 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏3 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅3 天前
linux(8) 软硬链接
linux·运维·服务器
张洛闻Eren3 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
其实防守也摸鱼3 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
布裘3 天前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境
懂软件的胡子个哥3 天前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
云贝贝贝3 天前
腾讯云 TDSQL(MySQL 版)性能优化与慢查询排障实战 6 招
运维·腾讯云