Hive巡检脚本

Hive巡检脚本的示例:

复制代码
#!/bin/bash

# 设置Hive连接信息
HIVE_HOST="your_hive_host"
HIVE_PORT="your_hive_port"
HIVE_USER="your_hive_username"
HIVE_PASSWORD="your_hive_password"

# 设置巡检结果输出文件路径
OUTPUT_FILE="/path/to/output.log"

# 巡检开始时间
start_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "Start Time:" $start_time > $OUTPUT_FILE
echo "" >> $OUTPUT_FILE

# 获取Hive版本信息
version_info=$(beeline -u jdbc:hive2://$HIVE_HOST:$HIVE_PORT -n $HIVE_USER -p $HIVE_PASSWORD --outputformat=vertical --silent=true -e "set hivevar:outputfile=$OUTPUT_FILE; SELECT VERSION();")
echo "Hive Version:" $version_info >> $OUTPUT_FILE
echo "" >> $OUTPUT_FILE

# 获取数据库列表
databases=$(beeline -u jdbc:hive2://$HIVE_HOST:$HIVE_PORT -n $HIVE_USER -p $HIVE_PASSWORD --outputformat=vertical --silent=true -e "set hivevar:outputfile=$OUTPUT_FILE; SHOW DATABASES;")
echo "Databases:" >> $OUTPUT_FILE
echo "$databases" >> $OUTPUT_FILE
echo "" >> $OUTPUT_FILE

# 遍历数据库列表进行巡检
while read -r database; do
    echo "Checking database:" $database
    echo "===================================" >> $OUTPUT_FILE
    echo "Database:" $database >> $OUTPUT_FILE

    # 获取表列表
    tables=$(beeline -u jdbc:hive2://$HIVE_HOST:$HIVE_PORT -n $HIVE_USER -p $HIVE_PASSWORD --outputformat=vertical --silent=true -e "set hivevar:outputfile=$OUTPUT_FILE; USE $database; SHOW TABLES;")
    echo "Tables:" >> $OUTPUT_FILE
    echo "$tables" >> $OUTPUT_FILE
    echo "" >> $OUTPUT_FILE

    # 获取表数量
    table_count=$(echo "$tables" | wc -l)
    echo "Table Count:" $table_count >> $OUTPUT_FILE
    echo "" >> $OUTPUT_FILE

    # 获取表记录数和大小
    while read -r table; do
        table_info=$(beeline -u jdbc:hive2://$HIVE_HOST:$HIVE_PORT -n $HIVE_USER -p $HIVE_PASSWORD --outputformat=vertical --silent=true -e "set hivevar:outputfile=$OUTPUT_FILE; USE $database; SELECT COUNT(*) FROM $table;")
        echo "Table: $table" >> $OUTPUT_FILE
        echo "Table Record Count:" >> $OUTPUT_FILE
        echo "$table_info" >> $OUTPUT_FILE

        table_size_info=$(beeline -u jdbc:hive2://$HIVE_HOST:$HIVE_PORT -n $HIVE_USER -p $HIVE_PASSWORD --outputformat=vertical --silent=true -e "set hivevar:outputfile=$OUTPUT_FILE; USE $database; DESCRIBE FORMATTED $table;" | grep "Total Size")
        echo "Table Size:" >> $OUTPUT_FILE
        echo "$table_size_info" >> $OUTPUT_FILE

        echo "" >> $OUTPUT_FILE
    done <<< "$tables"

    echo "===================================" >> $OUTPUT_FILE
    echo "" >> $OUTPUT_FILE
done <<< "$databases"

# 巡检结束时间
end_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "End Time:" $end_time >> $OUTPUT_FILE

echo "Hive inspection completed. Please check the output file: $OUTPUT_FILE"

请根据需要修改 HIVE_HOST、HIVE_PORT、HIVE_USER、HIVE_PASSWORD 和 OUTPUT_FILE 变量为你的Hive连接信息和输出文件路径。运行脚本后,将会生成一个巡检报告文件,其中包含了Hive版本、每个数据库的表列表、表数量、表的记录数和大小等信息。

这只是一个基本的示例脚本,你可以根据具体需求进行扩展和定制,添加更多的巡检项和检查规则。

相关推荐
注塑机数据采集联网13 小时前
数据采集网关入门:ZK-D1/D3从零开始构建你的数据运用
大数据·数据仓库·人工智能·物联网·数据库架构·注塑机网关
测试盐17 小时前
spark作业日志定位过程
java·hadoop·spark
roman_日积跬步-终至千里18 小时前
【数据建模入门】从一家小店看懂数仓与机器学习:先理业务,再串技术
数据仓库·人工智能·机器学习·数据分析·数据建模
步行cgn19 小时前
为什么既要 web.xml 又要 springmvc.xml?能不能只配一个?
xml·前端·hive
程序员梅雨2 天前
【从零开始学习数据仓库 | 第二篇】: 拉链表 & 数仓分层
大数据·数据仓库·学习
NiceZack2 天前
Hadoop 部署全流程教程:从新装 CentOS 到伪分布式与完全分布式
hadoop·分布式·centos
roman_日积跬步-终至千里2 天前
数仓开发的三层责任:业务定义、模型设计与 SQL 实现
数据库·数据仓库·sql·数据建模
@小匠2 天前
Flink + Iceberg 批量失败复盘:一次超时如何变成 Hive Metastore 锁泄漏
大数据·hive·flink
geovindu3 天前
SQL Data Sampling and Approximation Techniques using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
skywalk81633 天前
hive —— 多机 AI Agent 协同的任务总线:分布式,多节点同时运行,保障不会宕机
人工智能·hive·分布式