hadoop - 找到接口(interface) org.apache.hadoop.mapreduce.TaskAttemptContext,但 class 是 mapreduce 中的预期错误

标签 hadoop mapreduce

我是 hadoop 的新手。 我正在编写将文本文件转换为 PDF 的 mapreduce 代码,但出现上述错误。 在网上搜索问题后,我发现问题是 org.apache.hadoop.mapreduce.TaskAttemptContext 在 Hadoop 1 中是一个类,但在 Hadoop 2 中变成了一个接口(interface)。但是,我没有找到如何解决这个问题。请帮我解决这个问题。

我的 POM 中的依赖项是:

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-core</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.7.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>3.1.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.0.6</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-core -->
        <dependency>
            <groupId>org.apache.mrunit</groupId>
            <artifactId>mrunit</artifactId>
            <version>1.1.0</version>
            <classifier>hadoop2</classifier>
        </dependency>

最佳答案

仅使用以下 hadoop 相关依赖项以避免“找到接口(interface)但需要类”错误:

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

关于hadoop - 找到接口(interface) org.apache.hadoop.mapreduce.TaskAttemptContext,但 class 是 mapreduce 中的预期错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53756133/

相关文章:

python - 使 pig 嵌入 python 脚本和 pig cassandra 集成以与 oozie 一起工作

hadoop - 在reducer的cleanup()中调用context.write()有什么用

join - Apache Hive 使用的默认 MapReduce 连接是什么?

hadoop - 为什么在使用 hadoop fs -put 命令时 mapreduce 没有启动?

hadoop - Cloudera中的配置单元查询问题

hadoop - 带有 avro 记录的 Kafka

hadoop - 为什么map数量增加会影响hadoop上的带宽和集群利用率?

hadoop - 在Pig Latin中使用TOBAG和STRSPLIT

azure - HIVE 和 Parquet 文件

java - 运行 jar 时出现 HADOOP_CLASSPATH 问题