hiveserver2 和beeline_Hive-cli与Beeline的区别
时间: 2024-04-03 16:36:23 浏览: 285
Hiveserver2 是 Hive 的一个服务,它提供了一个标准的 Thrift 接口,允许客户端通过 JDBC、ODBC、Python 等各种编程语言来访问 Hive。而 Beeline 是 Hive 中的一个命令行工具,可以通过命令行输入 SQL 语句来操作 Hive 数据库。Hive-cli 是 Hive 中另一个命令行工具,与 Beeline 类似,也可以通过命令行输入 SQL 语句来操作 Hive 数据库。与 Beeline 不同的是,Hive-cli 是使用 Hive 的 JDBC 驱动来连接 Hiveserver2,而 Beeline 则使用 Hive 的原生 JDBC 驱动来连接 Hiveserver2。因此,Beeline 可以提供更好的 JDBC 兼容性和更好的性能。
相关问题
hive CLI和Beeline都会连接hiveserver2吗
是的,无论是Hive CLI还是Beeline,它们都可以连接到HiveServer2。HiveServer2是Hive的一个服务,它提供了一个JDBC/ODBC接口,允许客户端通过这个接口连接到Hive并执行查询。而Hive CLI和Beeline都是Hive客户端,它们可以通过JDBC/ODBC接口连接到HiveServer2并与Hive交互。不同的是,Hive CLI使用的是旧的JDBC驱动程序,而Beeline使用的是新的JDBC驱动程序。
#!/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"
看起来您的代码格式有点混乱,可能是因为复制粘贴时出现了问题。请尝试使用以下代码,并将其中的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为您的用户名和密码,然后再次尝试运行。
阅读全文