My map reduce jobs, which were running fine with HBase 0.20.4 with Hadoop
0.20.2 are now failing as I try to upgrade to HBase 0.90.1 with Hadoop
0.20.2-CDH3B4.

Under 0.90.1 I see the following error,

Error initializing attempt_201104252111_0001_m_000002_0:
java.io.FileNotFoundException: File
/tmp/hadoop-peter/mapred/staging/peter/.staging/job_201104252111_0001/job.jar
does not exist.
        at
org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:383)
        at
org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:251)
        at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:207)
        at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:157)
        at
org.apache.hadoop.fs.LocalFileSystem.copyToLocalFile(LocalFileSystem.java:61)
        at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1303)
        at
org.apache.hadoop.mapred.JobLocalizer.localizeJobJarFile(JobLocalizer.java:273)
        at
org.apache.hadoop.mapred.JobLocalizer.localizeJobFiles(JobLocalizer.java:381)
        at
org.apache.hadoop.mapred.JobLocalizer.localizeJobFiles(JobLocalizer.java:371)
        at
org.apache.hadoop.mapred.DefaultTaskController.initializeJob(DefaultTaskController.java:198)
        at org.apache.hadoop.mapred.TaskTracker$4.run(TaskTracker.java:1154)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1115)
        at
org.apache.hadoop.mapred.TaskTracker.initializeJob(TaskTracker.java:1129)
        at 
org.apache.hadoop.mapred.TaskTracker.localizeJob(TaskTracker.java:1055)
        at 
org.apache.hadoop.mapred.TaskTracker.startNewTask(TaskTracker.java:2212)
        at
org.apache.hadoop.mapred.TaskTracker$TaskLauncher.run(TaskTracker.java:2176)

My code, which worked fine under 0.20.4 looks like this,

        Configuration conf = HBaseConfiguration.create();
        conf.set("mapred.job.tracker", "localhost:9001");

        Job job = new Job(conf);
        JobConf jobConf = job.getConfiguration();
        jobConf.setJar( dirName + "/" + jarName);

        job.setJarByClass(MyMapper.class);
        job.setJobName("My MapReduce Pseudo Distributed");

        Scan scan = new Scan();

        String tableNameIn  = "MyTableIn";
        String tableNameOut = "MyTableOut";

        TableMapReduceUtil.initTableMapperJob(
                  tableNameIn,
                  scan,
                  MyMapper.class,
                  ImmutableBytesWritable.class,
                  ImmutableBytesWritable.class,
                 job
         );

        TableMapReduceUtil.initTableReducerJob(
               tableNameOut,
               MyReducer.class,
               job
         );

        job.setOutputFormatClass(TableOutputFormat.class);
        job.setNumReduceTasks(1);

        job.waitForCompletion(true);

Any pointers on how to migrate my code so it works on 0.90.1 would be
brilliant. Many thanks.
-- 
View this message in context: 
http://old.nabble.com/Migrating-pseudo-distribute-map-reduce-with-user-jar-file-to-0.90.1-tp31475457p31475457.html
Sent from the HBase User mailing list archive at Nabble.com.

Reply via email to