天天看點

遠端送出Map/Reduce任務

1. 将開發好MR代碼打包成jar。添加到distributed cache中。

bin/hadoop fs -copyFromLocal /root/stat-analysis-mapred-1.0-SNAPSHOT.jar /user/root/lib  

2.  在伺服器端建立和你用戶端一模一樣的使用者。建立目錄 /tmp/hadoop-root/stagging/使用者 

3.  用戶端送出job的代碼

Configuration conf = HBaseConfiguration.create();   

        conf.set("hbase.zookeeper.quorum", "node.tracker1");   

        conf.set("fs.default.name", "hdfs://node.tracker1:9000/hbase");   

        conf.set("mapred.job.tracker", "node.tracker1:9001");   

        Job job = new Job(conf, "Hbase_FreqCounter1");   

        job.setJarByClass(FreqCounter1.class);   

        Scan scan = new Scan();   

        String columns = "details"; // comma seperated

        scan.addFamily(Bytes.toBytes(columns));   

        scan.setFilter(new FirstKeyOnlyFilter());   

        TableMapReduceUtil.initTableMapperJob("access_logs", scan, Mapper1.class, ImmutableBytesWritable.class,

                IntWritable.class, job);   

        TableMapReduceUtil.initTableReducerJob("summary_user", Reducer1.class, job);

/           TableMapReduceUtil.addDependencyJars(job);   

        DistributedCache.addFileToClassPath(new Path("hdfs://node.tracker1:9000/user/root/lib/stat-analysis-mapred-1.0-SNAPSHOT.jar"),job.getConfiguration());

        job.submit();  

4.運作java application,登陸node的MR管理頁面,可以看到

遠端送出Map/Reduce任務