在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)
答案 0 :(得分:0)
我也遇到过同样的问题。在Ubuntu 16.04,Hive 2.3.3,Hadoop 2.9.0中。
com.ibm.icu.impl.ICUBininary类位于hive / lib中的icu4j jar中
Hive附带了icu4j-4.8.1.jar,但是icu4j-4.8.1中的ICUBinary类不包含getRequiredData方法。
检查了最新版本的icu4j(https://mvnrepository.com/artifact/com.ibm.icu/icu4j),发现该方法存在。
用最新版本替换hive / lib中的icu4j jar,它开始工作了!