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_HOSTHIVE_PORTHIVE_USERHIVE_PASSWORDOUTPUT_FILE 变量为你的Hive连接信息和输出文件路径。运行脚本后,将会生成一个巡检报告文件,其中包含了Hive版本、每个数据库的表列表、表数量、表的记录数和大小等信息。

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

相关推荐
荒川之神10 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
RestCloud12 小时前
2026年企业级ETL工具选型指南:从开源DataX到商业化ETLCloud的演进
数据仓库·开源·etl·datax·数据处理·数据集成·数据传输
荒川之神13 小时前
Oracle 数据仓库星座模型(Galaxy Model)设计原则
数据库·数据仓库·oracle
瀚高PG实验室15 小时前
ETL中,分区表子表未及时收集统计信息,导致sql执行耗时很长
数据库·数据仓库·sql·etl·瀚高数据库
仗剑_走天涯15 小时前
hadoop reduce阶段 对象重用问题
大数据·hadoop·分布式
荒川之神16 小时前
Oracle 数据仓库雪花模型设计原则(核心 + 落地 + Oracle 数据库适配)
数据库·数据仓库·oracle
荒川之神16 小时前
Oracle 数据仓库星型模型设计原则
数据库·数据仓库·oracle
仗剑_走天涯17 小时前
hadoop 中 yarn node -list 显示0 问题解决
大数据·hadoop·分布式
武子康2 天前
大数据-263 实时数仓-Canal 增量订阅与消费原理:MySQL Binlog 数据同步实践
大数据·hadoop·后端
仗剑_走天涯2 天前
zookeeper 安装与配置
hadoop·zookeeper