You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Carsten Steckel (JIRA)" <ji...@apache.org> on 2018/11/07 15:09:00 UTC
[jira] [Updated] (HIVE-20878) Hive Runner for Unit tests with Hive
JDBC standanlone jar issue with log4j slf4j
[ https://issues.apache.org/jira/browse/HIVE-20878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Carsten Steckel updated HIVE-20878:
-----------------------------------
Description:
I have an standalone java application using the hive-jdbc-standalone.jar to create and drop databases, tables, indexes, views in a hive db via jdbc connection. I want to unit test the executed DDL operations via hive runner.
The hive jdbc standalone jar brings a lot of dependencies (and shades them), but that causes issues with using application context where there is logging infrastructure configure and in place.
{noformat}
java.lang.IncompatibleClassChangeError: Class org.apache.logging.slf4j.Log4jLoggerFactory does not implement the requested interface org.apache.hive.org.slf4j.ILoggerFactory
at org.apache.hive.org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:285){noformat}
How to properly setup dependencies or exclusions? Should't a library like hive-jdbc leave logging to the "surrounging" application context? Why the dependency to logging?
Maybe related to HIVE-20877
was:
I have an standalone java application using the hive-jdbc-standalone.jar to create and drop databases, tables, indexes, views in a hive db via jdbc connection. I want to unit test the executed DDL operations via hive runner.
The hive jdbc standalone jar brings a lot of dependencies (and shades them), but that causes issues with using application context where there is logging infrastructure configure and in place.
java.lang.IncompatibleClassChangeError: Class org.apache.logging.slf4j.Log4jLoggerFactory does not implement the requested interface org.apache.hive.org.slf4j.ILoggerFactory
at org.apache.hive.org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:285)
How to properly setup dependencies or exclusions? Should't a library like hive-jdbc leave logging to the "surrounging" application context? Why the dependency to logging?
Maybe related to [HIVE-20877]
> Hive Runner for Unit tests with Hive JDBC standanlone jar issue with log4j slf4j
> --------------------------------------------------------------------------------
>
> Key: HIVE-20878
> URL: https://issues.apache.org/jira/browse/HIVE-20878
> Project: Hive
> Issue Type: Bug
> Components: Hive, JDBC
> Affects Versions: 3.1.0, 3.1.1
> Environment: hive 3.1.1 and hive 3.1.0
> backend hadoop 2.9.1
> hive runner https://github.com/klarna/HiveRunner
> Reporter: Carsten Steckel
> Priority: Major
>
> I have an standalone java application using the hive-jdbc-standalone.jar to create and drop databases, tables, indexes, views in a hive db via jdbc connection. I want to unit test the executed DDL operations via hive runner.
> The hive jdbc standalone jar brings a lot of dependencies (and shades them), but that causes issues with using application context where there is logging infrastructure configure and in place.
> {noformat}
> java.lang.IncompatibleClassChangeError: Class org.apache.logging.slf4j.Log4jLoggerFactory does not implement the requested interface org.apache.hive.org.slf4j.ILoggerFactory
> at org.apache.hive.org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:285){noformat}
>
> How to properly setup dependencies or exclusions? Should't a library like hive-jdbc leave logging to the "surrounging" application context? Why the dependency to logging?
> Maybe related to HIVE-20877
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)