【问题标题】:Jars for hadoop mapreducehadoop mapreduce 的罐子
【发布时间】:2015-08-06 10:45:00
【问题描述】:

我正在关注 Apache 提供的 this hadoop mapreduce tutorial。 那里给出的 Java 代码使用这些 Apache-hadoop 类:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

但我不明白从哪里下载这些罐子。在互联网上搜索这些课程时,我可以看到它们可用here

但是这些和 Jars 的正式/真实的 Apache 存储库是什么?

如果 jar 是随 hadoop 一起提供的,请告诉我路径。

编辑:其他问题没有给出明确的说明。 我找到了如下答案

This tutorial 提及:

下载Hadoop-core-1.2.1.jar,用于编译和执行MapReduce程序。访问以下链接http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-core/1.2.1 下载jar。

所以这看起来是真实的存储库。

【问题讨论】:

标签: java hadoop jar mapreduce


【解决方案1】:

This tutorial 提及:

下载Hadoop-core-1.2.1.jar,用于编译和执行MapReduce程序。访问以下链接http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-core/1.2.1下载jar。

所以here你可以找到所有不同版本的罐子

【讨论】:

    【解决方案2】:

    最好的方法是下载 Hadoop (3.x.y) 并包含来自hadoop-3.x.y/share/hadoop/mapreduce的以下 jars

    1. hadoop-common-3.x.y.jar 2. hadoop-mapreduce-client-core-3.x.y.jar

    这对我有用!

    【讨论】:

      【解决方案3】:

      您正在学习的教程使用 Hadoop 1.0。这意味着您拥有的罐子和教程使用的罐子是不同的。如果您使用的是 Hadoop 2.X,请按照使用该版本的教程进行操作。您不需要从第三方下载 jars,您只需要知道该特定 hadoop 版本的 API 的正确使用。

      【讨论】:

      • 我指的是来自“Apache Hadoop 2.7.1”的本教程
      【解决方案4】:

      我使用 NetBeans 创建了一个新的 Maven 项目。

      然后在项目文件下,我打开 pom.xml。

      我在里面添加

          <dependency>
              <groupId>org.apache.hadoop</groupId>
              <artifactId>hadoop-core</artifactId>
              <version>0.20.2</version>
          </dependency> 
      

      使用依赖项构建后,我现在可以编写代码了。

      【讨论】:

        【解决方案5】:

        使用当前版本 2.7.1,我在Missing artifact org.apache.hadoop:hadoop-mapreduce:jar:2.7.1 上磕磕绊绊,但发现这个 jar 似乎被分成了多个较小的。

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.7.1</version>
        </dependency>
        
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-common</artifactId>
            <version>2.7.1</version>
        </dependency>
        

        ...为我工作(...不知道这是什么意思:https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-mapreduce/2.7.1/

        【讨论】:

          【解决方案6】:

          如果您遇到此类错误,则只需在终端上键入命令:

          导出 HADOOP_HOME=$(hadoop classath)

          注意:您必须在 ./bashrc 文件中检查您自己的 hadoop 配置名称。 在安装 hadoop 时,我们在 .bashrc 文件中设置了 Hadoop 和 java 路径。 我们必须在这里检查in below we can see that next to export .

          【讨论】:

          • 它的“classpath”代替了classath
          【解决方案7】:

          尝试编译使用:
          javac -cp $(hadoop classpath) MapRTest.java.
          在大多数情况下,这些文件已经与下载的 hadoop 一起存在。欲了解更多信息,请查看this

          【讨论】:

            【解决方案8】:

            javac -cp /usr/hdp/2.6.2.0-205/hadoop-mapreduce/:/usr/hdp/2.6.2.0-205/hadoop/:. MyTest.java

            在 CloudxLab 为我工作。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2014-10-11
              • 1970-01-01
              • 2010-12-30
              • 2015-04-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多