Hadoop、Kafka、Flink、Spark、Hive五大组件运维常用操作命令

Hadoop、Kafka、Flink、Spark、Hive五大组件运维高频操作命令,按"启动/停止、状态检查、核心管理、问题排查"分类整理,覆盖日常集群维护、任务调度、故障处理场景,命令基于主流稳定版本(Hadoop 3.x、Kafka 3.x、Flink 1.15+、Spark 3.x、Hive 3.x)。

一、Hadoop 运维命令(HDFS + YARN)

Hadoop核心运维围绕HDFS(分布式存储)和YARN(资源调度),重点关注集群状态、文件系统健康、资源使用。

1. 启动/停止集群

bash 复制代码
# 启动HDFS(NameNode + DataNode + SecondaryNameNode)
$HADOOP_HOME/sbin/start-dfs.sh  
# 停止HDFS
$HADOOP_HOME/sbin/stop-dfs.sh  

# 启动YARN(ResourceManager + NodeManager)
$HADOOP_HOME/sbin/start-yarn.sh  
# 停止YARN
$HADOOP_HOME/sbin/stop-yarn.sh  

# 启动全集群(HDFS + YARN,含HistoryServer)
$HADOOP_HOME/sbin/start-all.sh  
# 停止全集群
$HADOOP_HOME/sbin/stop-all.sh  

# 单独启动HistoryServer(查看MapReduce历史任务)
$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver  
# 停止HistoryServer
$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh stop historyserver  

2. 状态检查

bash 复制代码
# 查看HDFS集群状态(NameNode活性、DataNode数量)
hdfs dfsadmin -report  

# 查看YARN集群状态(ResourceManager、NodeManager节点)
yarn node -list  

# 查看HDFS安全模式状态(是否只读,集群启动初期会自动进入)
hdfs dfsadmin -safemode get  
# 示例输出:Safe mode is OFF  

# 查看YARN资源使用情况(总内存、CPU,已分配/剩余)
yarn top  

3. HDFS文件系统操作

bash 复制代码
# 查看目录(类似Linux ls,支持-R递归)
hdfs dfs -ls /user/hive/warehouse  
hdfs dfs -ls -R /data  

# 创建目录
hdfs dfs -mkdir /user/test  
# 递归创建多级目录
hdfs dfs -mkdir -p /user/test/input  

# 上传本地文件到HDFS
hdfs dfs -put local_file.txt /user/test/  

# 从HDFS下载文件到本地
hdfs dfs -get /user/test/hdfs_file.txt local_dir/  

# 查看HDFS文件内容(大文件慎用)
hdfs dfs -cat /user/test/log.txt  
# 查看前10行
hdfs dfs -head /user/test/log.txt  

# 删除HDFS文件(-r递归删除目录)
hdfs dfs -rm /user/test/old_file.txt  
hdfs dfs -rm -r /user/test/old_dir  

# 复制HDFS文件/目录
hdfs dfs -cp /user/test/file1.txt /user/prod/  

4. YARN任务管理

bash 复制代码
# 查看YARN上运行的应用(状态、ID、资源)
yarn application -list  
# 查看已完成的应用
yarn application -list -appStates FINISHED  

# 杀死YARN上的应用(通过applicationId)
yarn application -kill application_1690000000000_0001  

# 查看应用日志(applicationId + 容器ID,需指定NodeManager主机)
yarn logs -applicationId application_1690000000000_0001 -containerId container_1690000000000_0001_01_000001  

# 查看YARN队列状态(资源分配、使用率)
yarn queue -status default  

5. 问题排查

bash 复制代码
# 检查HDFS文件块完整性(修复损坏块)
hdfs fsck /user/test/data.txt  
# 检查整个HDFS并输出损坏文件
hdfs fsck / -list-corruptfileblocks  

# 手动触发HDFS均衡(DataNode间数据分布不均时)
hdfs balancer -threshold 10  # 节点间使用率差不超过10%  

# 查看NameNode日志(定位启动失败、元数据错误)
tail -f $HADOOP_HOME/logs/hadoop-$(whoami)-namenode-$(hostname).log  

# 查看DataNode日志(定位存储、块复制错误)
tail -f $HADOOP_HOME/logs/hadoop-$(whoami)-datanode-$(hostname).log  

二、Kafka 运维命令

Kafka运维聚焦主题管理、消息消费、集群状态,核心是确保broker存活、分区副本健康、消息不丢失。

1. 启动/停止集群

bash 复制代码
# 启动单个broker(需提前配置server.properties)
$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties  
# 停止单个broker
$KAFKA_HOME/bin/kafka-server-stop.sh  

# 启动ZooKeeper(Kafka依赖,单节点)
$KAFKA_HOME/bin/zookeeper-server-start.sh -daemon $KAFKA_HOME/config/zookeeper.properties  
# 停止ZooKeeper
$KAFKA_HOME/bin/zookeeper-server-stop.sh  

2. 主题(Topic)管理

bash 复制代码
# 创建主题(指定分区数3、副本数2,bootstrap-server指向Kafka broker)
$KAFKA_HOME/bin/kafka-topics.sh --bootstrap-server localhost:9092 \
  --create --topic user_behavior --partitions 3 --replication-factor 2  

# 查看所有主题
$KAFKA_HOME/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list  

# 查看主题详情(分区分布、副本状态、ISR列表)
$KAFKA_HOME/bin/kafka-topics.sh --bootstrap-server localhost:9092 \
  --describe --topic user_behavior  

# 修改主题分区数(只能增加,不能减少)
$KAFKA_HOME/bin/kafka-topics.sh --bootstrap-server localhost:9092 \
  --alter --topic user_behavior --partitions 5  

# 删除主题(需server.properties中设置delete.topic.enable=true)
$KAFKA_HOME/bin/kafka-topics.sh --bootstrap-server localhost:9092 \
  --delete --topic old_topic  

3. 消息生产/消费测试

bash 复制代码
# 启动生产者(往主题发消息,控制台输入)
$KAFKA_HOME/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 \
  --topic user_behavior  

# 启动消费者(从头消费主题消息)
$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
  --topic user_behavior --from-beginning  

# 按消费者组消费(指定group.id,用于测试组内消费逻辑)
$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
  --topic user_behavior --group test_group  

4. 消费者组(Consumer Group)管理

bash 复制代码
# 查看所有消费者组
$KAFKA_HOME/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list  

# 查看指定消费者组详情(各分区偏移量、lag值:未消费消息数)
$KAFKA_HOME/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
  --describe --group test_group  

# 重置消费者组偏移量(从头消费)
$KAFKA_HOME/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
  --reset-offsets --to-earliest --execute --group test_group --topic user_behavior  

# 重置偏移量到指定时间(如2024-01-01 00:00:00)
$KAFKA_HOME/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
  --reset-offsets --to-datetime 2024-01-01T00:00:00 --execute --group test_group --topic user_behavior  

5. 集群状态检查

bash 复制代码
# 查看broker节点状态(通过ZooKeeper,需ZooKeeper地址)
$KAFKA_HOME/bin/zookeeper-shell.sh localhost:2181 ls /brokers/ids  
# 示例输出:[0, 1, 2](表示3个broker节点,ID为0、1、2)

# 查看分区副本健康状态(ISR列表是否完整)
# 结合topic describe命令,关注"Isr"列是否与"Replicas"一致(不一致表示副本同步延迟)
$KAFKA_HOME/bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic user_behavior  

Flink运维围绕作业提交、状态监控、集群资源,重点确保流处理作业稳定运行、 checkpoint 正常。

1. 启动/停止集群

bash 复制代码
# 启动Flink Standalone集群(JobManager + TaskManager)
$FLINK_HOME/bin/start-cluster.sh  
# 停止集群
$FLINK_HOME/bin/stop-cluster.sh  

# 单独启动JobManager
$FLINK_HOME/bin/jobmanager.sh start  
# 单独启动TaskManager(指定JobManager地址)
$FLINK_HOME/bin/taskmanager.sh start -Djobmanager.rpc.address=localhost  

# 启动Flink on YARN会话模式(共享集群资源)
yarn-session.sh -n 2 -s 2 -jm 1024 -tm 2048 -d  
# -n:TaskManager数量;-s:每个TM的slot数;-jm:JM内存;-tm:TM内存;-d:后台运行  

# 停止YARN上的Flink会话(通过YARN应用ID)
yarn application -kill application_1690000000000_0002  

2. 作业提交与管理

bash 复制代码
# 提交Flink作业(Standalone模式,指定主类和jar包)
$FLINK_HOME/bin/flink run -m localhost:8081 \
  -c com.example.UserBehaviorJob $FLINK_HOME/jobs/user_behavior_job.jar  

# 提交Flink on YARN(分离模式,作业独立运行,不依赖会话)
$FLINK_HOME/bin/flink run -t yarn-per-job -d \
  -c com.example.UserBehaviorJob $FLINK_HOME/jobs/user_behavior_job.jar  

# 查看运行中的作业
$FLINK_HOME/bin/flink list -m localhost:8081  
# 查看所有作业(包括已完成)
$FLINK_HOME/bin/flink list -m localhost:8081 -a  

# 取消作业(通过作业ID)
$FLINK_HOME/bin/flink cancel -m localhost:8081 643b7e9bf8e6a7c44a8e3a9f87a3c4a  
# 取消作业并保留checkpoint(用于后续恢复)
$FLINK_HOME/bin/flink cancel -s -m localhost:8081 643b7e9bf8e6a7c44a8e3a9f87a3c4a  

# 从checkpoint恢复作业
$FLINK_HOME/bin/flink run -m localhost:8081 -s hdfs:///flink/checkpoints/643b7e9b/ \
  -c com.example.UserBehaviorJob $FLINK_HOME/jobs/user_behavior_job.jar  

3. 状态监控与日志

bash 复制代码
# 查看Flink集群仪表盘(JobManager UI,默认8081端口)
# 浏览器访问:http://localhost:8081  

# 查看作业详情(通过作业ID,获取checkpoint、背压、指标)
$FLINK_HOME/bin/flink info -m localhost:8081 643b7e9bf8e6a7c44a8e3a9f87a3c4a  

# 查看TaskManager日志(定位作业异常、资源不足)
tail -f $FLINK_HOME/log/flink-$(whoami)-taskmanager-$(hostname).log  

# 查看作业具体任务日志(通过YARN应用ID,Flink on YARN模式)
yarn logs -applicationId application_1690000000000_0003 -containerId container_1690000000000_0003_01_000002  

4. 问题排查

bash 复制代码
# 检查背压(作业处理能力不足时,定位瓶颈算子)
# 1. 从Flink UI进入作业详情,点击"Back Pressure"
# 2. 结果为"HIGH"表示该算子是瓶颈,需优化逻辑或增加资源  

# 查看checkpoint状态(是否成功,失败原因)
# 从Flink UI进入作业详情 → "Checkpoints" → 查看"Latest Completed"和"Latest Failed"  

# 手动触发savepoint(用于作业升级、迁移)
$FLINK_HOME/bin/flink savepoint -m localhost:8081 643b7e9bf8e6a7c44a8e3a9f87a3c4a hdfs:///flink/savepoints/  

四、Spark 运维命令

Spark运维覆盖集群管理、作业提交、历史任务查看,支持Standalone、YARN等多种部署模式。

1. 启动/停止集群(Standalone模式)

bash 复制代码
# 启动Spark集群(Master + Worker)
$SPARK_HOME/sbin/start-all.sh  
# 停止集群
$SPARK_HOME/sbin/stop-all.sh  

# 单独启动Master
$SPARK_HOME/sbin/start-master.sh  
# 单独启动Worker(指定Master地址)
$SPARK_HOME/sbin/start-worker.sh spark://localhost:7077  

# 启动Spark历史服务器(查看已完成作业日志)
$SPARK_HOME/sbin/start-history-server.sh  
# 停止历史服务器
$SPARK_HOME/sbin/stop-history-server.sh  

2. 作业提交(Spark Submit)

bash 复制代码
# 提交Spark批处理作业(Standalone模式,部署模式cluster)
$SPARK_HOME/bin/spark-submit \
  --master spark://localhost:7077 \
  --deploy-mode cluster \
  --class com.example.SalesAnalysis \
  --executor-memory 2g \
  --total-executor-cores 4 \
  $SPARK_HOME/jobs/sales_analysis.jar  

# 提交Spark on YARN(客户端模式,日志在本地输出)
$SPARK_HOME/bin/spark-submit \
  --master yarn \
  --deploy-mode client \
  --class com.example.UserBehaviorAnalysis \
  --executor-memory 4g \
  --num-executors 10 \
  $SPARK_HOME/jobs/user_behavior.jar  

# 提交Spark Streaming作业(指定checkpoint目录)
$SPARK_HOME/bin/spark-submit \
  --master yarn \
  --class com.example.RealTimeLogProcessing \
  --conf spark.streaming.checkpointLocation=hdfs:///spark/checkpoint/ \
  $SPARK_HOME/jobs/log_processing.jar  

3. 集群与作业状态

bash 复制代码
# 查看Spark Standalone集群状态(Master UI,默认8080端口)
# 浏览器访问:http://localhost:8080  

# 查看YARN上的Spark作业(通过YARN命令)
yarn application -list | grep Spark  

# 查看Spark历史作业(历史服务器UI,默认18080端口)
# 浏览器访问:http://localhost:18080  

# 查看作业详情(通过YARN应用ID,获取Executor日志)
yarn logs -applicationId application_1690000000000_0004  

4. 问题排查

bash 复制代码
# 查看Driver日志(Standalone cluster模式,日志在Worker节点)
# 路径:$SPARK_HOME/work/应用ID/0/stdout  

# 查看Executor日志(YARN模式,通过YARN UI定位容器日志)
# YARN UI:http://ResourceManager主机:8088 → 进入应用 → 点击"Logs"  

# 检查Spark内存使用(避免OOM)
# 从Spark UI(作业运行时)查看"Executors" → 关注"Memory Used"是否接近配置上限  

五、Hive 运维命令

Hive运维聚焦元数据管理、表操作、查询优化,核心确保metastore服务可用、数据与元数据一致性。

1. 启动/停止服务

bash 复制代码
# 启动Hive Metastore(元数据服务,需提前配置mysql作为元数据库)
nohup $HIVE_HOME/bin/hive --service metastore > $HIVE_HOME/logs/metastore.log 2>&1 &  

# 启动HiveServer2(允许JDBC/ODBC连接,如Beeline)
nohup $HIVE_HOME/bin/hive --service hiveserver2 > $HIVE_HOME/logs/hiveserver2.log 2>&1 &  

# 停止服务(通过进程ID)
ps -ef | grep metastore | grep -v grep | awk '{print $2}' | xargs kill -9  
ps -ef | grep hiveserver2 | grep -v grep | awk '{print $2}' | xargs kill -9  

2. 交互式操作(Hive CLI/Beeline)

bash 复制代码
# 通过Hive CLI进入交互模式
$HIVE_HOME/bin/hive  

# 通过Beeline连接HiveServer2(推荐,支持JDBC)
$HIVE_HOME/bin/beeline -u jdbc:hive2://localhost:10000 -n username -p password  

# 执行HQL脚本(非交互模式)
$HIVE_HOME/bin/hive -f /path/to/script.hql  

# 执行单条HQL命令
$HIVE_HOME/bin/hive -e "SELECT count(*) FROM user_behavior;"  

3. 元数据与表管理

bash 复制代码
# 查看所有数据库
hive> show databases;  

# 切换数据库
hive> use default;  

# 查看数据库详情
hive> describe database default;  

# 查看表列表
hive> show tables;  

# 查看表结构(包括分区、存储格式)
hive> describe formatted user_behavior;  

# 修复分区(HDFS新增分区目录后,同步元数据)
hive> msck repair table user_behavior;  

# 手动添加分区
hive> alter table user_behavior add partition (dt='20240101') location '/user/hive/warehouse/user_behavior/dt=20240101';  

# 删除分区
hive> alter table user_behavior drop partition (dt='20240101');  

4. 数据操作

bash 复制代码
# 加载本地数据到Hive表(复制数据)
hive> load data local inpath '/local/path/data.txt' into table user_behavior partition (dt='20240101');  

# 加载HDFS数据到Hive表(移动数据)
hive> load data inpath '/hdfs/path/data.txt' into table user_behavior partition (dt='20240101');  

# 插入数据到表(动态分区,需开启参数)
hive> set hive.exec.dynamic.partition=true;
hive> set hive.exec.dynamic.partition.mode=nonstrict;
hive> insert into table user_behavior partition (dt)
     select user_id, behavior_type, dt from user_behavior_raw;  

# 清空表数据(保留表结构,仅支持内部表)
hive> truncate table user_behavior;  

5. 问题排查

bash 复制代码
# 查看Hive metastore日志(定位元数据连接失败、表创建错误)
tail -f $HIVE_HOME/logs/metastore.log  

# 查看Hiveserver2日志(定位Beeline连接失败、权限问题)
tail -f $HIVE_HOME/logs/hiveserver2.log  

# 检查Hive表数据与元数据一致性(元数据路径与实际HDFS路径是否一致)
hive> describe formatted user_behavior;  # 查看元数据记录的location
hdfs dfs -ls /user/hive/warehouse/user_behavior  # 查看实际HDFS路径  

# 分析查询缓慢原因(开启执行计划)
hive> explain extended select * from user_behavior where dt='20240101';  

总结:运维命令核心场景映射

组件 高频场景 核心命令索引
Hadoop HDFS文件管理、YARN任务杀除 hdfs dfs、yarn application
Kafka 主题创建、消费者组偏移量 kafka-topics.shkafka-consumer-groups.sh
Flink 作业提交、checkpoint恢复 flink run、flink cancel -s
Spark 集群启动、作业提交 start-all.sh、spark-submit
Hive 分区修复、元数据检查 msck repair table、describe formatted

实际运维中,需结合组件UI(如Flink 8081、Spark 8080、YARN 8088)可视化监控,命令操作多用于自动化脚本或紧急故障处理。

相关推荐
Hello.Reader3 小时前
使用 Flink CDC 搭建跨库 Streaming ETLMySQL + Postgres → Elasticsearch 实战
大数据·elasticsearch·flink
2501_941142135 小时前
基于 Kotlin 构建移动端高并发后台服务与实时数据同步系统的架构设计与工程实践分享
kafka
❀͜͡傀儡师19 小时前
docker 部署Flink和传统部署
docker·容器·flink
yumgpkpm1 天前
数据可视化AI、BI工具,开源适配 Cloudera CMP 7.3(或类 CDP 的 CMP 7.13 平台,如华为鲲鹏 ARM 版)值得推荐?
人工智能·hive·hadoop·信息可视化·kafka·开源·hbase
Zhao·o1 天前
KafkaMQ采集指标日志
运维·中间件·kafka
青靴1 天前
轻量级 CI/CD 实战(三):Kafka消费者Docker容器化部署
分布式·docker·kafka
galaxyffang1 天前
RocketMQ 为什么性能不如 Kafka?
分布式·kafka·rocketmq
干就完事了1 天前
Hive视图
数据仓库·hive·hadoop
Linux Huang1 天前
【Dinky】IDEA运行出现HistoryServer异常
java·hadoop·flink·intellij idea
2501_941881401 天前
ClickHouse OLAP 数据仓库在互联网大规模分析场景下性能优化与查询加速实践经验分享
kafka