首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >spark 1.4.0 java.lang.NoSuchMethodError: java.lang.NoSuchMethodError

spark 1.4.0 java.lang.NoSuchMethodError: java.lang.NoSuchMethodError
EN

Stack Overflow用户
提问于 2015-06-24 17:59:52
回答 3查看 7.7K关注 0票数 8

我使用的是spark 1.4.0 /Hadoop2.6.0(仅用于hdfs),在运行Scala SparkPageRank示例SparkPageRank时遇到以下错误:

代码语言:javascript
运行
复制
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Stopwatch.elapsedMillis()J
    at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:245)
    at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:313)
    at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:207)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)
    at scala.Option.getOrElse(Option.scala:120)
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)
    at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)
    at scala.Option.getOrElse(Option.scala:120)
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)
    at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)
    at scala.Option.getOrElse(Option.scala:120)
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)
    at org.apache.spark.rdd.RDD$$anonfun$distinct$2.apply(RDD.scala:329)
    at org.apache.spark.rdd.RDD$$anonfun$distinct$2.apply(RDD.scala:329)
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:147)
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:108)
    at org.apache.spark.rdd.RDD.withScope(RDD.scala:286)
    at org.apache.spark.rdd.RDD.distinct(RDD.scala:328)
    at org.apache.spark.examples.SparkPageRank$.main(SparkPageRank.scala:60)
    at org.apache.spark.examples.SparkPageRank.main(SparkPageRank.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:621)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:170)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:193)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:112)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

我对java不是很熟悉,但它似乎是一个番石榴版本的问题

以下信息可以起到帮助作用:

代码语言:javascript
运行
复制
$ find ./spark -name *.jars | grep guava
./lib_managed/bundles/guava-16.0.1.jar
./lib_managed/bundles/guava-14.0.1.jar

示例/pu.xml文件的一部分:

代码语言:javascript
运行
复制
...
 <dependency>
      <groupId>org.apache.cassandra</groupId>
      <artifactId>cassandra-all</artifactId>
      <version>1.2.6</version>
      <exclusions>
        <exclusion>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
        </exclusion>
...

实际上,这个类似乎不包含有问题的方法:

代码语言:javascript
运行
复制
$ javap -p /mnt/spark/examples/target/streams/\$global/assemblyOption/\$global/streams/assembly/7850cb6d36b2a6589a4d27ce027a65a2da72c9df_5fa98cd1a63c99a44dd8d3b77e4762b066a5d0c5/com/google/common/base/Stopwatch.class

Compiled from "Stopwatch.java"
public final class com.google.common.base.Stopwatch {
  private final com.google.common.base.Ticker ticker;
  private boolean isRunning;
  private long elapsedNanos;
  private long startTick;
  public static com.google.common.base.Stopwatch createUnstarted();
  public static com.google.common.base.Stopwatch createUnstarted(com.google.common.base.Ticker);
  public static com.google.common.base.Stopwatch createStarted();
  public static com.google.common.base.Stopwatch createStarted(com.google.common.base.Ticker);
  public com.google.common.base.Stopwatch();
  public com.google.common.base.Stopwatch(com.google.common.base.Ticker);
  public boolean isRunning();
  public com.google.common.base.Stopwatch start();
  public com.google.common.base.Stopwatch stop();
  public com.google.common.base.Stopwatch reset();
  private long elapsedNanos();
  public long elapsed(java.util.concurrent.TimeUnit);
  public java.lang.String toString();
  private static java.util.concurrent.TimeUnit chooseUnit(long);
  private static java.lang.String abbreviate(java.util.concurrent.TimeUnit);
}

我想更好地理解这个问题,如果可能的话,学习如何解决这个问题:-)

EN

Stack Overflow用户

回答已采纳

发布于 2015-06-24 18:48:19

方法elapsedMilis()已在番石榴16中删除(或计划删除-无论如何,清单上没有此名称的方法)。

据我所知,应该有类似于番石榴16中的TimeUnit.MILLISECONDS,或者您可以通过diving1000000000.0手动转换。

票数 4
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31033724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档