Hi! Please help me with resolving this problem. I am porting our
Pig/Phoenix/HBase project to all newer versions, but this one thing is
blocking me.
Observed When running Phoenix 4.6.0 and HBase 0.98.12.
I have also tried with several other variations of Phoenix 4.x and HBase
0.98.x . Using PhoenixHBaseStorage() to store records into a Phoenix table
works just fine. I can query the records fine with sqlline.py . All
indications are that I have my jars and class paths set up correctly. But
I can't load them in Pig using PhoenixHBaseLoader().
Easiest way to duplicate:
Create any empty table with sqlline.py like this:
create table if not exists TEST (NUM integer not null, constraint NUM
primary key (NUM));
Run this pig script:
REGISTER phoenix-4.6.0-HBase-0.98-client.jar;
TEST = load 'hbase://query/select * from TEST' using
org.apache.phoenix.pig.PhoenixHBaseLoader('localhost');
You will get an error like this:
2015-10-26 22:02:17,537 [main] ERROR org.apache.pig.tools.grunt.Grunt -
ERROR 2998: Unhandled internal error.
org.apache.hadoop.hbase.client.Mutation.getFamilyCellMap()Ljava/util/NavigableMap;
Details at logfile: /mnt/var/log/apps/pig.log
/mnt/var/log/apps/pig.log will look like this:
Pig Stack Trace
---------------
ERROR 2998: Unhandled internal error.
org.apache.hadoop.hbase.client.Mutation.getFamilyCellMap()Ljava/util/NavigableMap;
java.lang.NoSuchMethodError:
org.apache.hadoop.hbase.client.Mutation.getFamilyCellMap()Ljava/util/NavigableMap;
at
org.apache.phoenix.schema.PTableImpl$PRowImpl.removeIfPresent(PTableImpl.java:726)
at
org.apache.phoenix.schema.PTableImpl$PRowImpl.setValue(PTableImpl.java:758)
at
org.apache.phoenix.execute.MutationState.addRowMutations(MutationState.java:264)
at
org.apache.phoenix.execute.MutationState.access$200(MutationState.java:92)
at
org.apache.phoenix.execute.MutationState$2.init(MutationState.java:326)
at
org.apache.phoenix.execute.MutationState$2.<init>(MutationState.java:323)
at
org.apache.phoenix.execute.MutationState.toMutations(MutationState.java:321)
at
org.apache.phoenix.execute.MutationState.toMutations(MutationState.java:311)
at
org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:1946)
at
org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:785)
at
org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:186)
at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:319)
at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1368)
at
org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1929)
at
org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1898)
at
org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
at
org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1898)
at
org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
at
org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
at
org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:187)
at
org.apache.phoenix.mapreduce.util.ConnectionUtil.getConnection(ConnectionUtil.java:98)
at
org.apache.phoenix.mapreduce.util.ConnectionUtil.getInputConnection(ConnectionUtil.java:57)
at
org.apache.phoenix.mapreduce.util.ConnectionUtil.getInputConnection(ConnectionUtil.java:45)
at
org.apache.phoenix.pig.util.QuerySchemaParserFunction.apply(QuerySchemaParserFunction.java:62)
at
org.apache.phoenix.pig.PhoenixHBaseLoader.initializePhoenixPigConfiguration(PhoenixHBaseLoader.java:142)
at
org.apache.phoenix.pig.PhoenixHBaseLoader.getSchema(PhoenixHBaseLoader.java:229)
at
org.apache.pig.newplan.logical.relational.LOLoad.getSchemaFromMetaData(LOLoad.java:175)
at
org.apache.pig.newplan.logical.relational.LOLoad.<init>(LOLoad.java:89)
at
org.apache.pig.parser.LogicalPlanBuilder.buildLoadOp(LogicalPlanBuilder.java:885)
at
org.apache.pig.parser.LogicalPlanGenerator.load_clause(LogicalPlanGenerator.java:3568)
at
org.apache.pig.parser.LogicalPlanGenerator.op_clause(LogicalPlanGenerator.java:1625)
at
org.apache.pig.parser.LogicalPlanGenerator.general_statement(LogicalPlanGenerator.java:1102)
at
org.apache.pig.parser.LogicalPlanGenerator.statement(LogicalPlanGenerator.java:560)
at
org.apache.pig.parser.LogicalPlanGenerator.query(LogicalPlanGenerator.java:421)
at
org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:188)
at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1712)
at org.apache.pig.PigServer$Graph.access$000(PigServer.java:1420)
at org.apache.pig.PigServer.parseAndBuild(PigServer.java:364)
at org.apache.pig.PigServer.executeBatch(PigServer.java:389)
at org.apache.pig.PigServer.executeBatch(PigServer.java:375)
at
org.apache.pig.tools.grunt.GruntParser.executeBatch(GruntParser.java:170)
at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:232)
at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:203)
at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:81)
at org.apache.pig.Main.run(Main.java:608)
at org.apache.pig.Main.main(Main.java:156)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Thank you,
Steve