获取hive日志比较麻烦,通常的做法是执行shell命令获取日志,但是这样有一些问题,比如:输出的结果需要程序解析等,可以改进hive,采用jdbc的方式执行hive sql,并且把输出到控制台的日志保存到redis,其中kill job的命令日志用不同的key缓存到redis,如此可很方便获取查询结果、日志、kill命令。
具体实现方式如下:
修改hive-exec-0.12.0的如下几个类:
1、org.apache.hadoop.hive.ql.Driver
2、org.apache.hadoop.hive.ql.DriverContext
3、org.apache.hadoop.hive.ql.exec.mr.ExecDriver
4、org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper
5、org.apache.hadoop.hive.ql.exec.mr.MapRedTask
在Driver的execute()方法开始执行时以sql的MD5值作为key缓存到redis,redis的数据结构采用list,并且在DriverContext中增加一个sqlMD5的属性,通过driver上下文对象在后续的ExecDriver、HadoopJobExecHelper和MapRedTask中实现共享。
在执行sql和生成的MR过程中参数的日志不断存入到redis,页面可通过ajax的方式每隔1秒从应用服务端获取1次hive日志,应用服务端根据sql的MD5值从redis读取日志信息,读一条删一条。 使用 redisUtils.rpush(key,value);写入,用redisUtils.lpop(key);这样写进去的取出来的时候,redis就清空了
可通过sql的MD5值加一个后缀的方式单独缓存kill MR job的cmd命令,这样业务应用可以很方便的获取到kill命令,停止hive。
redis的服务ip配置到hive-site.xml中。
该方式有一些问题,比如:如果同时多次执行同一个sql,则会导致日志信息相互干扰,有一些应用场景的限制。
相关推荐
使用javaJDBC连接hive数据,实现简单的操作!
java根据excel生成 hive建表语句 可以根据自己的格式修改
基于hadoop的Hive数据仓库JavaAPI简单调用的实例,关于Hive的简介在此不赘述。hive提供了三种用户接口:CLI,JDBC/ODBC和 WebUI CLI,即Shell命令行 JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似 Web...
Hive内部表合并小文件Java程序
同样hive metastore也提供了java接口。 使用 import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.metastore.HiveMetaStoreClient; import org.apache.hadoop.hive.metastore.api.Field...
1.通过java查hive hive查询 2.简单查询及jar包
hive日志系统实战
Java私塾:Hive Shell 基本操作——深入浅出学Hive
hive java开发驱动包列表hive-common-2.3.4.jarhive-exec-2.3.4.jarhive-jdbc-2.3.4.jarhive-llap-client-2.3.4.jarhive-llap-common-2.3.4.jarhive-llap-server-2.3.4.jarhive-llap-tez-2.3.4.jarhive-metastore-...
内网开发的,不使用maven做项目管理的,直接拿来用,包括了所有需要的jar包(如基础包httpclient),hive是1.2版本的
本资源适合hive使用log4j2作为日志去开启metastore审计日志,那么本文章就值得(不管是hive2还是hive3)
jdbc连接hive代码所需要jar包,测试有效
基于hadoop的,java实现hive快速导数据到Hbase解决方案。
java操作Hive源码之HiveJDBC实例(mysql数据库),附带所需jar包,欢迎下载学习。
压缩包中包含Java通过JDBC连接Hive所需的jar包。包含有,antlr-runtime-3.0.1.jar;commons-logging-1.0.4.jar;hadoop-core-1.2.1.jar;hive-exec-0.10.0.jar;hive-jdbc-0.13.1.jar;hive-metastore-0.9.0.jar;hive-...
一种基于Hive日志分析的大数据存储优化方法,王正也,李书芳,从2002年起,某金融机构积累了大量的银行卡支付日志数据。随着业务的不断增长,数据集高速增长,原生的Hive的查询性能已经不能令人�
antlr-runtime-3.0.1.jar hive-exec-0.7.1.jar hive-jdbc-0.7.1.jar hive-metastore-0.9.0.jar hive-service-0.9.0.jar jdo2-api-2.3-ec.jar libfb303.jar
hive JDBC连接实例 maven工程
java调用hive需要的jar
centos 下hive连接mysql驱动 ,mysql-connector-java-8.0.26-1.el7.noarch. 使用方法: 1.下载本rpm文件后,上传至你的服务器(虚拟机) 2. rpm -ivh mysql-connector-java-8.0.26-1.el7.noarch进行安装 3.安装完成...