具体报错信息如下:
bulk_load执行时报错信息:
java.lang.NoClassDdefFoundError: com/google/protobuf/Message
at org.apache.hadoop.hbase.io.HbaseObjectWritable.<clinit>(HbaseObjectWritable.java:263)
...........
hive 创建表不成功报错信息:
java.lang.NoClassDefFoundError: com/google/protobuf/Messageat
org.apache.hadoop.hbase.io.HbaseObjectWritable.<clinit>(HbaseObjectWritable.java:263)at
org.apache.hadoop.hbase.ipc.Invocation.write(Invocation.java:139)at
org.apache.hadoop.hbase.ipc.HBaseClient$Connection.sendParam(HBaseClient.java:638)at
org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:1001)at
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:150)at
$Proxy8.getProtocolVersion(Unknown Source)......
org.apache.hadoop.mapred.Child: Error running child : java.lang.NoClassDefFoundError:
org/apache/hadoop/hbase/io/HbaseObjectWritableat
解决方法:
将Hbase/lib包:protobuf-java-2.4.0a.jar 考到集群每个节点的/hadoop/lib 下,重新启动集群,即解决问题。
转载于:https://blog.51cto.com/3733604/1335931
类似java.lang.NoClassDefFoundError,一般2种可能:
对应jar包缺失。
环境变量 CLASSPATH不正确。