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版本、每个数据库的表列表、表数量、表的记录数和大小等信息。

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

相关推荐
IT学长编程1 小时前
计算机毕业设计 基于EChants的海洋气象数据可视化平台设计与实现 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
大数据·hadoop·python·毕业设计·课程设计·毕业论文·海洋气象数据可视化平台
呆呆小金人1 小时前
SQL入门: HAVING用法全解析
大数据·数据库·数据仓库·sql·数据库开发·etl·etl工程师
一起喝芬达20103 小时前
当数据仓库遇见AI:金融风控的「认知大脑」正在觉醒
数据仓库·人工智能
Yana_Zeng5 小时前
win10安装spark3.1详细流程(小白用)
hadoop·windows·spark
笨蛋少年派8 小时前
HDFS简介
大数据·hadoop·hdfs
jianmin09201 天前
Python高效数据分析从入门到实战的七个步骤
数据仓库
工作中的程序员1 天前
hive sql优化基础
hive·sql
K_i1342 天前
中国电信用户行为实时分析系统运维实战
hadoop·mysql
风跟我说过她2 天前
Sqoop的安装与配置
hive·hadoop·经验分享·centos·hbase·sqoop
卡拉叽里呱啦2 天前
Apache Iceberg介绍、原理与性能优化
大数据·数据仓库