You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Steve Terrell <st...@oculus360.us> on 2015/10/26 23:14:58 UTC

NoSuchMethodError From org.apache.phoenix.pig.PhoenixHBaseLoader in 4.6.0

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

Re: NoSuchMethodError From org.apache.phoenix.pig.PhoenixHBaseLoader in 4.6.0

Posted by Steve Terrell <st...@oculus360.us>.
Please ignore and disregard.

I had followed someone else's instructions on how to install newer versions
of HBase on Amazon's EMR, and it turned out that the process left an older
Hbase 0.94 jars in the Pig lib class path.  After removing the old jar,
works as expected!  :)

On Mon, Oct 26, 2015 at 5:14 PM, Steve Terrell <st...@oculus360.us>
wrote:

> 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
>