#!/bin/bash # 连接hive beeline -u jdbc:hive2://localhost:10000 -n username -p password -e "set hive.cli.print.header=false; set hive.resultset.use.unique.column.names=true; set hive.cli.print.current.db=false;" # 统计表数据量 tables=$(beeline -u jdbc:hive2://localhost:10000 -n username -p password -e "show tables in yinzhou like 'db_*';" | grep -v "INFO" | grep -v "WARN") # 输出cvs文件 echo "Table Name,Data Size" > db_tables.csv while read -r table; do data_size=$(beeline -u jdbc:hive2://localhost:10000 -n username -p password -e "select count(*) from yinzhou.$table;") echo "$table,$data_size" >> db_tables.csv done <<< "$tables"
时间: 2024-03-12 07:44:27 浏览: 125
看起来您的代码格式有点混乱,可能是因为复制粘贴时出现了问题。请尝试使用以下代码,并将其中的username和password替换为您的用户名和密码:
```bash
#!/bin/bash
# 连接hive
beeline -u jdbc:hive2://localhost:10000 -n username -p password -e "set hive.cli.print.header=false; set hive.resultset.use.unique.column.names=true; set hive.cli.print.current.db=false;"
# 统计表数据量
tables=$(beeline -u jdbc:hive2://localhost:10000 -n username -p password -e "show tables in yinzhou like 'db_*';" | grep -v "INFO" | grep -v "WARN")
# 输出cvs文件
echo "Table Name,Data Size" > db_tables.csv
while read -r table; do
data_size=$(beeline -u jdbc:hive2://localhost:10000 -n username -p password -e "select count(*) from yinzhou.$table;")
echo "$table,$data_size" >> db_tables.csv
done <<< "$tables"
```
这个脚本会通过beeline连接到hive,并设置输出格式。然后,它会统计yinzhou库下表名开头为db_的表的数据量,并输出到一个cvs文件中。请替换其中的username和password为您的用户名和密码,然后再次尝试运行。
阅读全文