我正在向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。怎么回事?如何解决此问题?
暂无答案!
目前还没有任何答案,快来回答吧!