Java Apache nutch错误NoClassDefFoundError“;com/google/protobuf/Message“;

Java Apache nutch错误NoClassDefFoundError“;com/google/protobuf/Message“;,java,hadoop,nutch,Java,Hadoop,Nutch,我将ApacheNutch2.3与Hadoop1.2.1和hbase 0.94一起使用。我已经为分布式模式配置了ApacheNutch。当我运行爬行时,它会给出以下错误 15/12/21 12:06:56 INFO zookeeper.ClientCnxn: Session establishment complete on server node1/1.11.1.2:2181, sessionid = 0x151ba038ac60250, negotiated timeout = 180000

我将ApacheNutch2.3与Hadoop1.2.1和hbase 0.94一起使用。我已经为分布式模式配置了ApacheNutch。当我运行爬行时,它会给出以下错误

15/12/21 12:06:56 INFO zookeeper.ClientCnxn: Session establishment complete on server node1/1.11.1.2:2181, sessionid = 0x151ba038ac60250, negotiated timeout = 180000
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/protobuf/Message
    at org.apache.hadoop.hbase.io.HbaseObjectWritable.<clinit>(HbaseObjectWritable.java:265)
    at org.apache.hadoop.hbase.ipc.Invocation.write(Invocation.java:139)
    at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.sendParam(HBaseClient.java:620)
    at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:989)
    at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:87)
    at com.sun.proxy.$Proxy5.getProtocolVersion(Unknown Source)
    at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:141)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:813)
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:127)
    at org.apache.gora.hbase.store.HBaseStore.initialize(HBaseStore.java:115)
    at org.apache.gora.store.DataStoreFactory.initializeDataStore(DataStoreFactory.java:104)
    at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:163)
    at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:137)
    at org.apache.nutch.storage.StorageUtils.createWebStore(StorageUtils.java:78)
    at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:218)
    at org.apache.nutch.crawl.InjectorJob.inject(InjectorJob.java:252)
    at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:275)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.nutch.crawl.InjectorJob.main(InjectorJob.java:284)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:160)
Caused by: java.lang.ClassNotFoundException: com.google.protobuf.Message
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 24 more
15/12/21 12:06:56信息zookeeper.ClientCnxn:在服务器节点1/1.11.1.2:2181上完成会话建立,会话ID=0x151ba038ac60250,协商超时=180000
线程“main”java.lang.NoClassDefFoundError中出现异常:com/google/protobuf/Message
位于org.apache.hadoop.hbase.io.HbaseObjectWritable.(HbaseObjectWritable.java:265)
位于org.apache.hadoop.hbase.ipc.Invocation.write(Invocation.java:139)
位于org.apache.hadoop.hbase.ipc.HBaseClient$Connection.sendParam(HBaseClient.java:620)
位于org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:989)
位于org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:87)
位于com.sun.proxy.$Proxy5.getProtocolVersion(未知源)
在org.apache.hadoop.hbase.ipc.writeablerpcengine.getProxy上(writeablerpcengine.java:141)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:813)
位于org.apache.hadoop.hbase.client.HBaseAdmin.(HBaseAdmin.java:127)
位于org.apache.gora.hbase.store.HBaseStore.initialize(HBaseStore.java:115)
位于org.apache.gora.store.DataStoreFactory.initializeDataStore(DataStoreFactory.java:104)
位于org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:163)
位于org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:137)
位于org.apache.nutch.storage.StorageUtils.createWebStore(StorageUtils.java:78)
位于org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:218)
位于org.apache.nutch.crawl.InjectorJob.inject(InjectorJob.java:252)
位于org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:275)
位于org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
位于org.apache.nutch.crawl.InjectorJob.main(InjectorJob.java:284)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:483)
位于org.apache.hadoop.util.RunJar.main(RunJar.java:160)
原因:java.lang.ClassNotFoundException:com.google.protobuf.Message
在java.net.URLClassLoader$1.run(URLClassLoader.java:372)
在java.net.URLClassLoader$1.run(URLClassLoader.java:361)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:360)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 还有24个
在nutch的lib中,有一个jar protobuf-java-2.4.1.jar
如何解决它?

我认为应该将protobuf java{version}.jar添加到hadoop lib目录中。它应该能解决你的问题。 用于类路径验证。运行以下命令

hadoop classpath |grep protobuf
如果它包含repective jar,则表示它已添加到类路径