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)