मैं स्पार्क 1.4.0/हैडऑप 2.6.0 (केवल hdfs के लिए) का उपयोग कर रहा हूं और स्कैला चलाने पर SparkPageRank उदाहरण (उदाहरण/src/मुख्य/स्केला/org/अपाचे/चिंगारी/उदाहरण/SparkPageRank.scala), मैं निम्नलिखित त्रुटि का सामना करना:स्पार्क 1.4.0 java.lang.No.SuchMethodError: com.google.common.base.Stopwatch.elapsedMillis() जे
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)
मैं जावा के साथ अत्यंत परिचित नहीं हूँ, यह लेकिन ऐसा लगता है कि यह guava संस्करण समस्या
निम्न जानकारी helpfup हो सकती है:
उदाहरण/pom.xml फ़ाइल का$ find ./spark -name *.jars | grep guava
./lib_managed/bundles/guava-16.0.1.jar
./lib_managed/bundles/guava-14.0.1.jar
हिस्सा:
...
<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>
...
और वास्तव में ऐसा लगता है कि वर्ग समस्याग्रस्त विधि शामिल नहीं है:
$ 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);
}
मैं बेहतर समझने के लिए चाहते हैं मुद्दा, और यदि संभव हो तो इसे ठीक करने का तरीका जानें :-)
अच्छा नोट, धन्यवाद। हालांकि उत्तर मैं विवरणों की तलाश में हूं कि क्यों उपयोग किया गया हैडूप/स्पार्क संयोजन काम नहीं कर रहा है, और मैं इसे ठीक करने या इसे अपग्रेड करने के लिए क्या कर सकता हूं। – Bacon
pom.xml में अच्छी बहिष्कार का मतलब है (अधिक या कम) आप प्रोजेक्ट के निर्माण के दौरान क्लासपाथ में निर्दिष्ट जार नहीं जोड़ते हैं। शायद यह मुद्दा है? तो शायद आपको बहिष्करण भाग को हटा देना चाहिए? क्या यह हो सकता है कि ऐप लाइब्रेरी के पुराने संस्करण को अनदेखा कर दे? इस विषय पर मेवेन डॉकू को पढ़ने का प्रयास करें: https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html – kamirru
मैं आपके उत्तर को स्वीकार किए जाने के रूप में चिह्नित करूंगा निष्पक्ष! जिस सेटअप का मैं अब उपयोग कर रहा हूं और जो काम करता प्रतीत होता है वह प्री-बिल्ट स्पार्क संस्करण का उपयोग करते हुए स्पार्क 1.4.0 और हडूप 2.5.2 है। – Bacon