Hive不从Ubuntu 16.04开始



在Ubuntu 16.04上,我使用Hive 2.3.2和Hadoop 2.7.1,我有一个错误:

Exception in thread "main" java.lang.NoSuchMethodError: com.ibm.icu.impl.ICUBinary.getRequiredData(Ljava/lang/String;)Ljava/nio/ByteBuffer;
    at com.ibm.icu.charset.UConverterAlias.haveAliasData(UConverterAlias.java:131)
    at com.ibm.icu.charset.UConverterAlias.getCanonicalName(UConverterAlias.java:525)
    at com.ibm.icu.charset.CharsetProviderICU.getICUCanonicalName(CharsetProviderICU.java:126)
    at com.ibm.icu.charset.CharsetProviderICU.charsetForName(CharsetProviderICU.java:62)

我遇到了同样的问题。在Ubuntu 16.04,Hive 2.3.3,Hadoop 2.9.0。

com.ibm.icu.impl.Icubinary类位于Hive/lib

的ICU4J Jar中

Hive用ICU4J-4.8.1.Jar运送,但是ICU4J-4.8.1中的Icubinary类不包含GetRequiredData方法。

检查了最新版本的ICU4J(https://mvnrepository.com/artifact/com.ibm.com.icu/icu4j(,发现该方法存在。

用最新版本替换了Hive/lib的ICU4J Jar,然后开始工作!

最新更新