从java应用程序在hadoop 2.2 (Yarn)上启动mapreduce作业



我正在尝试从java应用程序调用mapreduce作业。在以前的hadoop版本(1.x)中,我创建了一个Configuration对象和一个Job对象,在Configuration中设置mapred.job.tracker和fs.default.name并运行Job。

现在,在hadoop 2。x作业跟踪器不再存在,也不存在关于如何以编程方式运行MR作业的任何文档。什么好主意吗?

我正在寻找的是一个解释,在这里给出:从java程序调用mapreduce

你需要三样东西:

// this should be like defined in your yarn-site.xml
conf.set("yarn.resourcemanager.address", "yarn-manager.com:50001"); 
// framework is now "yarn", should be defined like this in mapred-site.xm
conf.set("mapreduce.framework.name", "yarn");
// like defined in hdfs-site.xml
conf.set("fs.default.name", "hdfs://namenode.com:9000");

Hadoop 2.2.0文档中有更详细的解释

需要编写Driver类,扩展org.apache.hadoop.conf.Configuration,实现org.apache.hadoop.util.Tool。

下面是Driver类的示例实现。请注意,在类路径中需要有hdfs-site.xml和其他配置文件。

@Override
public int run(String[] args) throws Exception {
  Configuration conf = super.getConf();
  Job job = new Job(conf);
  .....
}

public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();
    conf.addResource("core-site.xml");
    conf.addResource("hdfs-site.xml");
    conf.addResource("hive-site.xml");
    int res = ToolRunner.run(conf, new EtlTool(), args);
    System.exit(res);
}

相关内容

  • 没有找到相关文章

最新更新