0

Hadoop 1.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)

私は giraph 1.2.0 を使用しています。Mvnrepositoryによると、giraph は guava 18に依存しています。guava 16 から削除され、 guava 15で廃止されたため、そのメソッドが存在しないことは理にかなっています。giraph が guava 15 のメソッドを使用しようとしていることは意味がありません。例外をスローするメソッドがgiraph 1.2.0 にZooKeeperManager :generateZooKeeperConfigFile 存在しないことも意味がありません。

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すると、実際にはグアバ 18 が必要であることが示されます。グアバに関するその他の参照はありません。

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

さらに、hadoop クラスターにデプロイされた他の jar はありません。Hadoop 1.2.1はグアバに依存しません。それで、何が起こっているのですか?この問題を解決するにはどうすればよいですか?

4

0 に答える 0