In hadoop 0.22, EventWriter ctor has this call: this.encoder = new JsonEncoder(Event.SCHEMA$, out); But in Avro 1.5.3 and 1.5.4, JsonEncoder() tor isn't public: JsonEncoder(Schema sc, OutputStream out) throws IOException {
This explains the failure for Job initialization. I seemed that JsonEncoder ctor was once public. Cheers On Fri, Oct 7, 2011 at 5:09 PM, Ted Yu <yuzhih...@gmail.com> wrote: > Hi, > For Avro 1.5.3, I saw the following when running TestHFileOutputFormat > against hadoop 0.22: > > 2011-10-07 16:40:42,549 ERROR [pool-29-thread-1] mapred.JobTracker(3364): > Job initialization failed: > java.lang.IllegalAccessError: tried to access method > org.apache.avro.io.JsonEncoder.<init>(Lorg/apache/avro/Schema;Ljava/io/OutputStream;)V > from class org.apache.hadoop.mapreduce.jobhistory.EventWriter > at > org.apache.hadoop.mapreduce.jobhistory.EventWriter.<init>(EventWriter.java:57) > at > org.apache.hadoop.mapreduce.jobhistory.JobHistory.setupEventWriter(JobHistory.java:291) > at > org.apache.hadoop.mapred.JobInProgress.logSubmissionToJobHistory(JobInProgress.java:725) > at > org.apache.hadoop.mapred.JobInProgress.initTasks(JobInProgress.java:633) > at org.apache.hadoop.mapred.JobTracker.initJob(JobTracker.java:3329) > at > org.apache.hadoop.mapred.EagerTaskInitializationListener$InitJob.run(EagerTaskInitializationListener.java:79) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:680) > > 2011-10-07 16:40:43,432 INFO [main] hbase.HBaseTestingUtility(1200): > Stopping mini mapreduce cluster... > 2011-10-07 16:40:43,440 ERROR [Thread-196] > filecache.TrackerDistributedCacheManager$CleanupThread(946): Exception in > DistributedCache CleanupThread. > java.lang.InterruptedException: sleep interrupted > at java.lang.Thread.sleep(Native Method) > at > org.apache.hadoop.mapreduce.filecache.TrackerDistributedCacheManager$CleanupThread.run(TrackerDistributedCacheManager.java:943) > 2011-10-07 16:40:43,441 INFO [main] log.Slf4jLog(67): Stopped > SelectChannelConnector@0.0.0.0:0 > 2011-10-07 16:40:44,857 WARN [taskCleanup] mapred.TaskTracker(1977): > Unknown job job_20111007164040532_0001 being deleted. > 2011-10-07 16:40:44,857 ERROR [Thread-203] mapred.TaskTracker(1582): Caught > exception: java.io.IOException: Jetty problem. Jetty didn't bind to a valid > port > at > org.apache.hadoop.mapred.TaskTracker.checkJettyPort(TaskTracker.java:1387) > at > org.apache.hadoop.mapred.TaskTracker.offerService(TaskTracker.java:1560) > at org.apache.hadoop.mapred.TaskTracker.run(TaskTracker.java:2418) > at > org.apache.hadoop.mapred.MiniMRCluster$TaskTrackerRunner.run(MiniMRCluster.java:229) > at java.lang.Thread.run(Thread.java:680) > > Please advise which Avro version would allow Job initialization to succeed. > > Thanks >