I can't run hive in command lie
It looks like this was triggered by Hadoop updating its Guava dependency in mid-2019: HADOOP-15960. That change went out in 3.0.4, 3.1.3, and 3.2.1.
Hive ships its own incompatible version of Guava, not only in lib/guava-*.jar
, but also within lib/hive-exec-*.jar
, which repackages a ton of external libraries. Because Hive doesn't work without hive-exec
, we can't just remove it and get the Guava JAR from Hadoop.
hive-exec
's "fat jar" format has been causing problems since at least 2011, but so far they haven't done much about it:
- https://issues.apache.org/jira/browse/HIVE-2424
- https://issues.apache.org/jira/browse/HIVE-3017
- https://issues.apache.org/jira/browse/HIVE-3040
They finally merged in a change to shade Guava (but not the other libraries?) in hive-exec
as of HIVE-22126, but the fix version on that is 4.0.0, which isn't released yet.
At this point, it looks like our options are either:
- Use Hadoop 3.0.3, 3.2.0, or 3.1.2, the last releases before HADOOP-15960. But note that the previous Guava version has a known vulnerability: CVE-2018-10237.
- Build Hive trunk from source.