Both Hadoop 2.6 and hive 0.13 use protobuf 2.5, so it runs well. But Hadoop 2.0 and before, protobuf 2.4 is used, just as I mentioned before, 2.4 and 2.5 are uncompatible.
Good luck. On Thu, Dec 11, 2014 at 10:22 PM, Amjad ALSHABANI <ashshab...@gmail.com> wrote: > > Hello Jander, > > Thanx for your reply, > I think it is more about hadoop CLASSPATH problem, because the same built > Hive 0.13 worked well with Hadoop 2.6 > I ll try to find a way to change hadoop classpath so it will use the new > protobu instead of 2.4 > > > > > On Thu, Dec 11, 2014 at 11:48 AM, Jander g <jande...@gmail.com> wrote: > >> hiļ¼Amjad >> >> protobuf 2.4 isn't compatible with protobuf 2.5, so you should regen >> OrcProto.java using protobuf 2.4.0, and then rebuild hive. >> >> I hope it helps. >> >> >> >> On Wed, Dec 10, 2014 at 6:28 PM, Amjad ALSHABANI <ashshab...@gmail.com> >> wrote: >>> >>> Hello everybody. >>> >>> I have a problem when using ORC file format in Hive 0.13. I have built >>> Hive 0.13 with Hadoop 0.20. >>> >>> when creating a table using ORC format it is OK, but when trying to add >>> some lines or do a simple count I got this exception: >>> >>> java.lang.VerifyError: class >>> org.apache.hadoop.hive.ql.io.orc.OrcProto$RowIndex overrides final method >>> getUnknownFields.()Lcom/google/protobuf/UnknownFieldSet; >>> at java.lang.ClassLoader.defineClass1(Native Method) >>> at java.lang.ClassLoader.defineClass(Unknown Source) >>> at java.security.SecureClassLoader.defineClass(Unknown >>> Source) >>> at java.net.URLClassLoader.defineClass(Unknown Source) >>> at java.net.URLClassLoader.access$100(Unknown Source) >>> at java.net.URLClassLoader$1.run(Unknown Source) >>> at java.net.URLClassLoader$1.run(Unknown Source) >>> at java.security.AccessController.doPrivileged(Native >>> Method) >>> at java.net.URLClassLoader.findClass(Unknown Source) >>> at java.lang.ClassLoader.loadClass(Unknown Source) >>> at sun.misc.Launcher$AppClassLoader.loadClass(Unknown >>> Source) >>> at java.lang.ClassLoader.loadClass(Unknown Source) >>> at >>> org.apache.hadoop.hive.ql.io.orc.WriterImpl.<init>(WriterImpl.java:129) >>> at >>> org.apache.hadoop.hive.ql.io.orc.OrcFile.createWriter(OrcFile.java:369) >>> at >>> org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat$OrcRecordWriter.close(OrcOutputFormat.java:103) >>> at >>> org.apache.hadoop.hive.ql.exec.Utilities.createEmptyFile(Utilities.java:3065) >>> at >>> org.apache.hadoop.hive.ql.exec.Utilities.createDummyFileForEmptyPartition(Utilities.java:3089) >>> at >>> org.apache.hadoop.hive.ql.exec.Utilities.getInputPaths(Utilities.java:3013) >>> at >>> org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:369) >>> at >>> org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:136) >>> at >>> org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:153) >>> at >>> org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85) >>> at >>> org.apache.hadoop.hive.ql.exec.TaskRunner.run(TaskRunner.java:72) >>> FAILED: Execution Error, return code -101 from >>> org.apache.hadoop.hive.ql.exec.mr.MapRedTask. class >>> org.apache.hadoop.hive.ql.io.orc.OrcProto$RowIndex overrides final method >>> getUnknownFields.()Lcom/google/protobuf/UnknownFieldSet; >>> >>> >>> >>> I ve checked the code of protobuf used in Hive 0.13, and it is version >>> 2.5 and the method is not defined as final anymore (it s been final in >>> 2.4). I checked also my CLASSPATTH HADOOP_CLASSPATH. HADOOP_OPTS and none >>> of them contain the protobuf version 2.4 >>> >>> Any idea how to get rid of this exception >>> >>> Thanks in advance >>> >>> >>> Amjad >>> >>> >>> >> >> -- >> Thanks, >> Jander >> > > -- Thanks, Jander