java - Hadoop 文档

标签 java hadoop documentation mapreduce version

<分区>

我是从 Hadoop 框架入手,我的任务是为框架编写 map-reduce 应用程序并提交。我必须使用 Hadoop 0.22.0 版。我只是在学习基本概念和 API。然而,我发现学习它和编写一些原型(prototype)程序非常都很难,因为the official documentationAPI javadocs已过时、不完整、通常困惑甚至不存在。

这里只是一些我不明白的想法:The MapReduce tutorial for Hadoop 0.22.0使用 here 类的构造函数( Job ,第 101 行)已弃用。所有其他构造函数也已弃用。 javadocs 中没有关于要使用什么的注释。 Job 类的静态方法返回 Job 的实例,但这些方法没有记录,它们需要记录不完整的类的实例 Cluster作为参数。所以在阅读了所有这些乱七八糟的内容之后,我仍然不知道如何正确获取 Job 的实例。对此的任何帮助表示赞赏。

当我试图在 1.0.4 稳定版等更高版本的教程中寻找答案时,我发现该版本的 mapreduce 教程使用了 org.apache.hadoop.mapred 包中的所有类在版本 0.22.0 中已弃用。所以 0.22.0 比 1.0.4 更令人反感。请帮助我理解这一点。或者推荐一些更好的资源。

最佳答案

Javadoc可能有点困惑,因此查看 Job 的来源类可能会帮助你:

  ...
  @Deprecated
  public Job() throws IOException {
    this(new Configuration());
  }

  @Deprecated
  public Job(Configuration conf) throws IOException {
    this(new Cluster(conf), conf);
  }

  @Deprecated
  public Job(Configuration conf, String jobName) throws IOException {
    this(conf);
    setJobName(jobName);
  }

  Job(Cluster cluster) throws IOException {
    this(cluster, new Configuration());
  }

  Job(Cluster cluster, Configuration conf) throws IOException {
    super(conf, null);
    this.cluster = cluster;
  }

  ...
  public static Job getInstance(Cluster cluster, Configuration conf) 
      throws IOException {
    return new Job(cluster, conf);
  }

所以你可以使用:

...
Configuration conf = getConf();
Job job = Job.getInstance(new Cluster(conf), conf);

请注意,以这种方式实例化 Job 类将同时创建到 job tracker 的连接。

如果您想推迟这样做,您可以选择延迟初始化此连接,方法是在创建 Job 对象时将 Cluster 设置为 null。在这种情况下,您将让 Job 类在真正需要时建立连接(请参阅更多信息 here):

Job job = Job.getInstance(conf);

关于java - Hadoop 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240696/

相关文章:

java - 如何使用 KafkaAdminClient (Java) 2.x 版本获取 Kafka 主题的最新偏移量/大小

scala - 为什么创建 HiveContext 失败并返回 "java.lang.OutOfMemoryError: PermGen space"?

apache-spark - 是否可以通过spark 2.4使用Hadoop 3.x和Hive 3.x?

ruby-on-rails - 为什么 yard 不在 Rails 项目中显示私有(private)方法?

react-native - 从 React Native 应用程序创建自己的 Web 文档

documentation - 最好地使用 Google 代码 wiki 来获取项目文档

java - 如何在 Java 中以 root 身份执行 shell 命令

java - StringBuilder append() 和空值

hadoop - 如何将CONCAT()函数的结果传递给Pig中的UDF?

java - 是否可以在 Swing 中为 JFrame 创建不同的外观?