giraph使用的guava版本不正确

w80xi6nr  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(393)

我正在向hadoop1.2.1集群提交一个giraph作业。作业失败,堆栈跟踪如下:

2017-04-21 20:37:41,082 ERROR org.apache.hadoop.mapred.Child: Error running child : java.lang.NoSuchMethodError: com.google.common.io.Closeables.closeQuietly(Ljava/io/Closeable;)V
    at org.apache.giraph.zk.ZooKeeperManager.generateZooKeeperConfigFile(ZooKeeperManager.java:591)
    at org.apache.giraph.zk.ZooKeeperManager.onlineZooKeeperServers(ZooKeeperManager.java:617)
    at org.apache.giraph.graph.GraphTaskManager.startZooKeeperManager(GraphTaskManager.java:357)
    at org.apache.giraph.graph.GraphTaskManager.setup(GraphTaskManager.java:188)
    at org.apache.giraph.graph.GraphMapper.setup(GraphMapper.java:60)
    at org.apache.giraph.graph.GraphMapper.run(GraphMapper.java:90)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:364)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
    at org.apache.hadoop.mapred.Child.main(Child.java:249)

我正在使用giraph1.2.0。mvnrepository说吉拉夫依赖于Guava18。这个方法不存在是有道理的,因为它是从Guava16中删除的,在Guava15中被弃用。giraph试图使用Guava15的方法是没有意义的。同样没有意义的是抛出异常的方法, ZooKeeperManager :generateZooKeeperConfigFile 在giraph 1.2.0中不存在。
下面是部署到hadoop集群的jar的依赖项部分:

<dependencies>
    <dependency>
        <groupId>com.thinkaurelius.titan</groupId>
        <artifactId>titan-cassandra</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tinkerpop</groupId>
        <artifactId>hadoop-gremlin</artifactId>
        <version>3.0.1-incubating</version>
    </dependency>
    <dependency>
        <groupId>org.apache.giraph</groupId>
        <artifactId>giraph-core</artifactId>
        <version>1.2.0</version>
    </dependency>
    <dependency>
        <groupId>com.company</groupId>
        <artifactId>domain</artifactId>
        <version>2.0.5</version>
    </dependency>
</dependencies>

跑步 mvn dependency:tree 事实上,它确实需要Guava18。没有其他提到Guava。

[INFO] +- org.apache.giraph:giraph-core:jar:1.2.0:compile
[INFO] |  +- com.google.guava:guava:jar:18.0:compile

此外,hadoop集群中没有部署其他jar。Hadoop1.2.1不依赖于guava。怎么回事?如何解决此问题?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题