【问题标题】:Replace the Method waitForCompltetion() in Job Class by another Method用另一个方法替换 Job Class 中的方法 waitForCompletion()
【发布时间】:2016-06-03 21:19:27
【问题描述】:

我目前正在使用 hadoop 2.7.2

我想知道org.apache.hadoop.mapreduce.job 中的Job 类中是否有另一种方法 可以替换方法waitForCompletion(),因为在我的项目中,waitForCompletion() 调用了另一种方法,称为getProxy() 应该在 hadoop-common-2.7.2 包 org.apache.hadoop.ipcRPC 类中,但它不存在。

但是有一个链接证明RPC中存在getProxy()方法:https://hadoop.apache.org/docs/r1.0.4/api/org/apache/hadoop/ipc/RPC.html

如果你想详细描述源问题,这里是链接:

hadoop mapreduce java program exception: java.lang.NoSuchMethodError

任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: java maven hadoop mapreduce ipc


    【解决方案1】:

    您可以尝试添加以下依赖项并运行一次吗?

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>ncku.hpds.tzulitai</groupId>
        <artifactId>distributed-svm</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>cascade-svm-mr</artifactId>
      <name>cascade-svm-mr</name>
      <description>The Cascade SVM approach, implemented with MapReduce</description>
      <build>
      <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
       </plugins>
      </build>
      <dependencies>
        <dependency>
            <groupId>tw.edu.ntu.csie</groupId>
            <artifactId>libsvm</artifactId>
            <version>3.17</version>
        </dependency>
                <!-- BIG DATA -->
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>2.7.2</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-client</artifactId>
                <version>2.7.2</version>
            </dependency>
      </dependencies>
    </project>
    

    【讨论】:

    • 嗨 Makubex,我在 pom 文件中添加了它,它给出了同样的错误。实际上我只是想出了问题的原因:org.apache.hadoop.mapred 包中有一个 JobClient 类的实例,它调用了一个甚至不存在的方法 createRPCProxy()。也许如果您对此有所了解,那么找到替代它的替代品会非常有帮助。谢谢Makubex。
    • 我已经用新的依赖项编辑了我的答案。猜猜这应该可以解决您的问题。
    • 分享你的 pom.xml
    • 我不能在评论中分享它,因为它的工具很长。但是这里是我获得项目的链接,对您来说会更容易:github.com/tzulitai/distributed-svm 在这个项目中,我对 cascade svm 项目感兴趣。我只是按照我上面给出的链接页面底部的构建信息进行操作。感谢您的支持:)
    • 在给定的 pom.xml 中,我仍然看到 hadoop-mapreduce-client-core。它也指向2.4.1。上述依赖项应该适用于 2.7.2。
    猜你喜欢
    • 2021-11-04
    • 1970-01-01
    • 2011-11-20
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多