2015-11-25 5 views
12

スパークストリーミングジョブを開始するためのコマンドラインとして次のものがあります。spark-submitに--packagesを使用して複数の依存関係を指定するには?

spark-submit --class com.biz.test \ 
      --packages \ 
       org.apache.spark:spark-streaming-kafka_2.10:1.3.0 \ 
       org.apache.hbase:hbase-common:1.0.0 \ 
       org.apache.hbase:hbase-client:1.0.0 \ 
       org.apache.hbase:hbase-server:1.0.0 \ 
       org.json4s:json4s-jackson:3.2.11 \ 
      ./test-spark_2.10-1.0.8.jar \ 
      >spark_log 2>&1 & 

ジョブは次のエラーで起動に失敗します。

Exception in thread "main" java.lang.IllegalArgumentException: Given path is malformed: org.apache.hbase:hbase-common:1.0.0 
    at org.apache.spark.util.Utils$.resolveURI(Utils.scala:1665) 
    at org.apache.spark.deploy.SparkSubmitArguments.parse$1(SparkSubmitArguments.scala:432) 
    at org.apache.spark.deploy.SparkSubmitArguments.parseOpts(SparkSubmitArguments.scala:288) 
    at org.apache.spark.deploy.SparkSubmitArguments.<init>(SparkSubmitArguments.scala:87) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:105) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 

私は、書式設定を削除し、単一の行に戻って試してみたが、それは問題が解決しません。だから私が持っているもの有効である必要があり

The format for the coordinates should be groupId:artifactId:version.

:ドキュメント(spark-submit --help)によると、など

たartifactIdの最後に_2.10を追加し、異なるバージョン:私はまた、バリエーションの束を試してみましたthis packageを参照する必要があります。

私が役立つなら、私はCloudera 5.4.4を実行しています。

私は間違っていますか? hbaseパッケージを正しく参照するにはどうしたらいいですか?

+0

のために(破壊ラインがうまく動作するはずです)空白文字なしでカンマを使用して分離する必要があり、それは正常に動作していますか?私の場合は、 - jarsと--driver-class-pathを使ってjarファイルを追加する必要がありました。 –

答えて

26

パッケージのリストは一例

--packages org.apache.spark:spark-streaming-kafka_2.10:1.3.0,\ 
    org.apache.hbase:hbase-common:1.0.0 
+3

私はスペースと改行を削除しなければなりませんでした。 '--packages org.apache.spark:spark-streaming-kafka_2.10:1.3.0、org.apache.hbase: hbase-common:1.0.0' ... – davidpricedev

関連する問題