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

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

相关推荐
大数据深度洞察38 分钟前
Hive企业级调优[2]—— 测试用表
数据仓库·hive·hadoop
lzhlizihang41 分钟前
使用sqoop将mysql数据导入到hive报错ClassNotFoundException、Zero date value prohibited等错误
hive·报错·sqoop
goTsHgo42 分钟前
Hive自定义函数——简单使用
大数据·hive·hadoop
江畔独步6 小时前
Hive内置集合函数-size,map_keys,map_values,sort_array,array_contains
数据仓库·hive·hadoop
天地风雷水火山泽6 小时前
二百六十五、Hive——目前Hive数仓各层表样例
数据仓库·hive·hadoop
棉花糖灬6 小时前
Hive常用函数
数据仓库·hive·hadoop
zhangjin12221 天前
kettle从入门到精通 第八十五课 ETL之kettle kettle中javascript步骤调用外部javascript/js文件
javascript·数据仓库·etl·kettle调用外部js
暮-夜染1 天前
从数据仓库到数据中台再到数据飞轮:我了解的数据技术进化史
大数据·数据仓库·数据飞轮
是店小二呀1 天前
从数据仓库到数据中台再到数据飞轮:社交媒体的数据技术进化史
大数据·数据仓库·媒体