I solved this issue by ssh'ing into each node on the cluster, renaming each jackson.jar (e.g., to jackson.jar.disabled) and then restarting the daemons on the node. This is a total hack, obviously - and also only feasible if you have a small cluster.

HTH,

DR

On 01/24/2011 05:09 PM, felix gao wrote:
Chase,

I tried to ran it on my local box with a standalone version of hadoop
installed and I still got the same error.
/usr/local/pig-0.7.0/bin/pig avro.pig
11/01/24 14:01:29 INFO pig.Main: Logging error messages to:
/Users/felix/Documents/pig/pig_1295906489023.log
2011-01-24 14:01:29,328 [main] INFO
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting
to hadoop file system at: file:///
2011-01-24 14:01:30,277 [main] INFO
org.apache.hadoop.metrics.jvm.JvmMetrics - Initializing JVM Metrics with
processName=JobTracker, sessionId=
2011-01-24 14:01:30,537 [main] ERROR org.apache.pig.tools.grunt.Grunt -
ERROR 2998: Unhandled internal error.
org.codehaus.jackson.JsonFactory.enable(Lorg/codehaus/jackson/JsonParser$Feature;)Lorg/codehaus/jackson/JsonFactory;

Any ideas why?

Thanks,

Felix



On Mon, Jan 24, 2011 at 1:18 PM, Chase Bradford<[email protected]>wrote:

Yes, you will need to restart them.  The child tasks inherit the TT's
classpath, which will list only the 1.0.1 jars until you restart the
daemon.

On Mon, Jan 24, 2011 at 1:11 PM, felix gao<[email protected]>  wrote:
Hi Guys,

I am testing out AVRO in our cluster and having
java.lang.NoSuchMethodError:

org.codehaus.jackson.JsonFactory.enable(Lorg/codehaus/jackson/JsonParser$Feature;)Lorg/codehaus/jackson/JsonFactory;
when running a simple pig script.
after took a look at AVRO-493 I  uploaded the new jackson jar to replace
the
CDH2's jackson 1.0.1 jars.


The pigscipt looks like below
REGISTER /home/pig/jars/avro-1.4.1.jar
REGISTER /home/pig/jars/json_simple-1.1.jar
REGISTER /home/pig/jars/piggybank.jar
REGISTER /usr/lib/hadoop/lib/jackson-core-asl-1.5.5.jar
REGISTER /usr/lib/hadoop/lib/jackson-mapper-asl-1.5.5.jar

log_load = LOAD '/user/felix/avro_input/*.avro' USING
org.apache.pig.piggybank.storage.avro.AvroStorage() ;

dump log_load


jackson jars are copied to each slaves and master

The full stacktrace:
ERROR 2998: Unhandled internal error.

org.codehaus.jackson.JsonFactory.enable(Lorg/codehaus/jackson/JsonParser$Feature;)Lorg/codehaus/jackson/JsonFactory;

java.lang.NoSuchMethodError:

org.codehaus.jackson.JsonFactory.enable(Lorg/codehaus/jackson/JsonParser$Feature;)Lorg/codehaus/jackson/JsonFactory;
         at org.apache.avro.Schema.<clinit>(Schema.java:82)
         at

org.apache.pig.piggybank.storage.avro.ASCommons.<clinit>(ASCommons.java:44)
         at

org.apache.pig.piggybank.storage.avro.AvroStorage.getSchema(AvroStorage.java:177)
         at

org.apache.pig.piggybank.storage.avro.AvroStorage.getAvroSchema(AvroStorage.java:133)
         at

org.apache.pig.piggybank.storage.avro.AvroStorage.getAvroSchema(AvroStorage.java:108)
         at

org.apache.pig.piggybank.storage.avro.AvroStorage.getSchema(AvroStorage.java:233)
         at
org.apache.pig.impl.logicalLayer.LOLoad.determineSchema(LOLoad.java:169)
         at
org.apache.pig.impl.logicalLayer.LOLoad.getSchema(LOLoad.java:150)
         at

org.apache.pig.impl.logicalLayer.parser.QueryParser.Parse(QueryParser.java:843)
         at

org.apache.pig.impl.logicalLayer.LogicalPlanBuilder.parse(LogicalPlanBuilder.java:63)
         at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1164)
         at
org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1114)
         at org.apache.pig.PigServer.registerQuery(PigServer.java:425)
         at
org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:737)
         at

org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:324)
         at

org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:162)
         at

org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:138)
         at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:75)
         at org.apache.pig.Main.main(Main.java:357)

I am wondering if I need to restart tasktracker and jobtracker in order
for
the jackson jars to be picked up?











--
Chase Bradford


“If in physics there's something you don't understand, you can always
hide behind the uncharted depths of nature. But if your program
doesn't work, there is no obstinate nature. If it doesn't work, you've
messed up.”

- Edsger Dijkstra



Reply via email to