2017-07-26 1 views
0

プログラムをjarファイルにエクスポートして実行すると、java.lang.NoClassDefFoundError:better/files/Fileエラーが発生します。java.lang.NoClassDefFoundError:better/files/spark-sbumitのスカラーコードのファイル

私が使用しているコードは以下のとおりです。どのような援助

SBT

name := "testFunctions" 

version := "1.0" 

scalaVersion := "2.11.8" 

libraryDependencies += "com.github.pathikrit" %% "better-files" % "2.17.1" 
libraryDependencies ++= Seq(
    "org.apache.spark" % "spark-core_2.11" % "2.1.0", 
    "org.apache.spark" % "spark-sql_2.11" % "2.1.0", 
    "com.github.pathikrit" %% "better-files" % "2.17.1" 
) 

initialize := { 
    val _ = initialize.value 
    if (sys.props("java.specification.version") != "1.8") 
    sys.error("Java 8 is required for this project.") 
} 

Scalaのコード

/** 
    * Created by cloudera on 7/23/17. 
    */ 

import better.files.File._ 
import org.apache.spark.sql.SparkSession 


object funcJM { 


    val forDelete = (root/"/home/cloudera/Documents/fabo") 
    .createIfNotExists() 

    if (forDelete.exists) 
    forDelete.delete() 


    def main(args:Array[String]) : Unit = { 

    val spark = SparkSession.builder 
     .master("local") 
     .appName("Get ForEx Data") 
     .getOrCreate() 



    } 

} 

コマンドラインが

jarファイルを実行するための事前に

感謝

spark-submit --class funcJM --master local[*] /home/cloudera/testFunctions/target/scala-2.11/testfunctions_2.11-1.0.jar --driver-class-path /home/cloudera/testFunctions/target/scala-2.11/testfunctions_2.11-1.0.jar 

エラー

Exception in thread "main" java.lang.NoClassDefFoundError: better/files/File at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:722) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) Caused by: java.lang.ClassNotFoundException: better.files.File at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 10 more

ツリー構造以下のようなコードのライブルックス - Scalaのディレクトリにあるので、 FUNCの生活と呼ばれるクラス

\main 
    \java 
    \resources 
    \scala 
     -funcJM(class) 
    \scala-2.11 

答えて

2

3つがあります。あなたができること:

  1. fatジャーをコンパイルするには、sbt assemblyのようなものを使用します。 better.files.Fileを含むjarファイルは、testfunctions_2.11-1.0.jarにパッケージされます。

  2. コピースパーク瓶ディレクトリに優れたパッケージが含まれてjarファイル:../spark-2.1.0-bin-hadoop2.7/jars

  3. は、より良いパッケージを含んでいるjarファイルを指定してください火花送信の呼び出しの引数として--driver-class-path better-files-akka_2.10.jar

+0

ありがとうございます!脂肪瓶が働いた – Jay

関連する問題