commons-collections-3.2.2.jar
guava-r07.jar
hadoop-auth-3.3.1.jar
hadoop-common-2.7.7.jar
hadoop-hdfs-2.7.7.jar
hadoop-mapreduce-client-core-2.7.7.jar
可自行到maven repository下载
运行报错Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Preconditions。解决方法:添加guava-30.1.1-jre.jar包到项目中。
运行报错 java.lang.NoClassDefFoundError: org/apache/commons/collections/map/UnmodifiableMap。解决方法:添加commons-collections-3.2.2.jar到项目中。
运行报错 java.lang.NoClassDefFoundError:org/apache/hadoop/util/PlatformName。解决方法:添加hadoop-auth-3.3.1.jar到项目中。
运行报错 java.lang.NoClassDefFoundError:com/google/common/base/Ticker。解决方法:添加guava-30.1.1-jre.jar到项目中。
运行报错 java.lang.NoClassDefFoundError:com/google/protobuf/ServiceException。解决方法:添加protobuf-java-3.17.3.jar到项目中。
运行报错 java.lang.NoClassDefFoundError:org/apache/htrace/SamplerBuilder。解决方法:添加htrace-core-3.1.0-incubating.jar到项目中。这个包好像跟Hbase有关。
运行报错 java.lang.NoClassDefFoundError:org/apache/commons/cli/ParseException。解决方法:添加commons-cli-1.4.jar到项目中。和Mapreduce有关。
大多是报错的api吧...猜的
提醒大家不要乱导jar包,最好根剧使用工具的版本多调查一下,不然容易出现jar包根本导不完的情况,因为每种jar包之间存在相互调用的可能,在这种情况下考虑用软件自带lib下的jar包解决,在hadoop中是share下hadoop文件夹中的jar包全部导入项目。
在运行Hadoop Java Web项目时遇到了多个NoClassDefFoundError异常,包括与guava、hadoop相关库的缺失。通过添加特定版本的guava、hadoop-auth、protobuf-java、htrace-core和commons-cli等jar包到项目中,解决了这些异常。建议根据项目使用的工具版本谨慎添加依赖,避免无尽的jar包导入问题。
614





