sparkストリーミングジョブを開始するためのコマンドラインとして次のコマンドを使用しています。
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)
書式を削除して1行に戻してみましたが、問題は解決しませんでした。さまざまなバリエーションも試してみました:異なるバージョン、artifactIdの末尾に_2.10
を追加など。
ドキュメント(spark-submit --help
)によると:
座標の形式は、groupId:artifactId:versionである必要があります。
だから私が持っているものは有効でなければならず、 このパッケージ を参照する必要があります。
問題がなければ、Cloudera 5.4.4を実行しています。
何が悪いのですか? hbaseパッケージを正しく参照するにはどうすればよいですか?
パッケージのリストは、空白なしのコンマを使用して区切る必要があります(改行は問題なく機能します)。
--packages org.Apache.spark:spark-streaming-kafka_2.10:1.3.0,\
org.Apache.hbase:hbase-common:1.0.0