chiastic-security/phoenix-for-cloudera

cannot bind enum descriptor to a non-enum class

Nem0Wang opened this issue · 0 comments

Environment:
phoenix-4.7.0-cdh5.5.1
pig-0.12.0-cdh5.5.0
hadoop-2.6.0-cdh5.5.0
hbase.1.0-cdh5.5.0

I 'use phoenix-4.7.0-cdh5.5.1'phoenix version from above link in github, but where i use pig to load data to HDFS from hbase with mapreduce , i got "cannot bind enum descriptor to a non-enum class" error log. i can run it in local mapreduce mode successfully.

pig -x mapreduce example1.pig

example1.pig

REGISTER /e3base/phoenix/phoenix-4.7.0-cdh5.5.1/phoenix-4.7.0-cdh5.5.1-client.jar;
rows = load 'hbase://query/SELECT ID,ACCOUNT,PASSWD FROM USER' USING org.apache.phoenix.pig.PhoenixHBaseLoader('KFAPP74:11001');
STORE rows INTO 'USER.csv' USING PigStorage(',');

Mapreduce error log

[main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Failed!
[main] ERROR org.apache.pig.tools.grunt.GruntParser - ERROR 2997: Unable to recreate exception from backed error: AttemptID:attempt_1515656040682_0049_m_000000_3 Info:Error: java.io.IOException: Deserialization error: cannot bind enum descriptor to a non-enum class
at org.apache.pig.impl.util.ObjectSerializer.deserialize(ObjectSerializer.java:62)
at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.setup(PigGenericMapBase.java:171)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.io.InvalidClassException: cannot bind enum descriptor to a non-enum class
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:608)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)
at java.io.ObjectInputStream.readEnum(ObjectInputStream.java:1723)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1345)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1913)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at org.apache.pig.impl.util.ObjectSerializer.deserialize(ObjectSerializer.java:60)
... 9 more

later i compiled with cdh5.5.0 version (dependecy),i got the same error . So if i use cdh550 version, what phoenix version should i use ? Please help me , thx !