hive JDBC 进度和日志查看
@(hive)[JDBC|进度|日志] hive的JDBC提供了java连接hiveserver2查询的能力,但是hive JDBC有别于关系型数据库,一个查询语句可能要在十几分钟到几十分钟才会返回结果,而hive JDBC并不会实时显示进度和日志,这样在查询的时候对用户不是很友好,需要在执行sql的时候显示进度。
在后台查看hiverserver2的日志中发现,其实hiveserver2
在执行一个sql查询的时候是会捕捉到MR运行的进度和日志的,所以只要能把hiverser2获取到MR进度的日志捕捉到,就能实现显示进度的功能。在之前的hive 0.7
和 0.9
版本中我们是直接修改了hive-jdbc
的源码来实现日志和数据的分离和重定向显示。在hive 1.1.0
中其实已经有了可以获取进度的API
了,分别是HiveStatement
中的 List<String> getQueryLog()
,List<String> getQu