h20ライブラリを使用するspark上にjarを起動したいとします。私はintellijでscalaプロジェクトを作成し、src/scalaの中にcom.hwパッケージを追加しました。その後、私は簡単なScalaプログラムを書いた。ここで IntellijのH20依存関係を設定してspark-submitで実行
は何の問題もなく、そのライブラリを参照することができname := "h20prova"
version := "1.0"
scalaVersion := "2.12.1"
libraryDependencies ++= Seq(
"org.apache.spark" % "spark-core_2.10" % "1.5.1",
"ai.h2o"%"sparkling-water-core_2.11"%"2.1.9")
プロジェクトSBTファイルです。
メインクラスcom.hw.h20tryを指定してアーティファクトを作成し、そのアーティファクトを正常にビルドしました。
が、私は、このコマンド
spark-submit --class "com.hw.h20try" h20prova.jar
を用いたスパークでスクリプトを起動し、次のエラー
java.lang.ClassNotFoundException: com.hw.h20try
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.spark.util.Utils$.classForName(Utils.scala:229)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:695)
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)
私はJavaを使用して同様の問題があったので、それは依存関係の問題だかなり確信しているを持って、コンパイル済みのjarファイルをアーティファクトビルドに追加して解決しました。しかし、私はScalaでJavaを使って何をしたのか再現できないようです。
ScalaプロジェクトをセットアップしてSparkで数分間実行する別の方法がありますか?
更新:sbtビルドプロジェクトのファイルMANIFEST.MFに、com.hwt20tryが見つかりませんでしたが、理由がわかりません。 –