Niels Basjes created HIVE-29852:
-----------------------------------
Summary: Published docker image fails with
UnsupportedClassVersionError on commandline hive command.
Key: HIVE-29852
URL: https://issues.apache.org/jira/browse/HIVE-29852
Project: Hive
Issue Type: Bug
Affects Versions: 4.2.1, 4.2.0
Reporter: Niels Basjes
On a Linux machine (I used UbuntuĀ 24.04) with docker:
{code:java}
docker run --rm --name hive-server -e SERVICE_NAME=hiveserver2
apache/hive:4.2.1 {code}
Then after it has started in a separate terminal do a simple commandline query:
{code:java}
docker exec "hive-server" hive -u 'jdbc:hive2://localhost:10000/' -e "show
databases;" {code}
The output of this command:
{code:java}
SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in
[jar:file:/opt/hive/lib/log4j-slf4j-impl-2.24.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:
Found binding in
[jar:file:/opt/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:
See http://www.slf4j.org/codes.html#multiple_bindings for an
explanation.SLF4J: Actual binding is of type
[org.apache.logging.slf4j.Log4jLoggerFactory]SLF4J: Class path contains
multiple SLF4J bindings.SLF4J: Found binding in
[jar:file:/opt/hive/lib/log4j-slf4j-impl-2.24.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:
Found binding in
[jar:file:/opt/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:
See http://www.slf4j.org/codes.html#multiple_bindings for an
explanation.SLF4J: Actual binding is of type
[org.apache.logging.slf4j.Log4jLoggerFactory]Exception in thread "main"
java.lang.IllegalStateException: Unable to create a terminal at
org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:394) at
org.jline.terminal.TerminalBuilder.build(TerminalBuilder.java:362) at
org.apache.hive.beeline.BeeLine.buildTerminal(BeeLine.java:1554) at
org.apache.hive.beeline.BeeLine.initializeLineReader(BeeLine.java:1470) at
org.apache.hive.beeline.BeeLine.begin(BeeLine.java:1125) at
org.apache.hive.beeline.BeeLine.begin(BeeLine.java:1101) at
org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:567) at
org.apache.hive.beeline.BeeLine.mainWithInputRedirection(BeeLine.java:561) at
org.apache.hive.beeline.BeeLine.main(BeeLine.java:544) at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580) at
org.apache.hadoop.util.RunJar.run(RunJar.java:330) at
org.apache.hadoop.util.RunJar.main(RunJar.java:245) Suppressed:
java.lang.UnsupportedClassVersionError: Preview features are not enabled for
org/jline/terminal/impl/ffm/FfmTerminalProvider (class file version 65.65535).
Try running with '--enable-preview' at
java.base/java.lang.ClassLoader.defineClass1(Native Method) at
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027) at
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at
java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
at
java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:580)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
at
org.jline.terminal.spi.TerminalProvider.load(TerminalProvider.java:68)
at
org.jline.terminal.TerminalBuilder.checkProvider(TerminalBuilder.java:665)
at
org.jline.terminal.TerminalBuilder.getProviders(TerminalBuilder.java:630)
at org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:395)
... 12 more
{code}
On docker image version 4.1.0 this does work as expected.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)