【发布时间】:2016-02-28 22:09:16
【问题描述】:
我有以下命令行来启动 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)
我已尝试删除格式并返回单行,但这并不能解决问题。我还尝试了很多变体:不同的版本,在 artifactId 的末尾添加 _2.10 等等。
根据文档 (spark-submit --help):
坐标的格式应该是groupId:artifactId:version。
所以我所拥有的应该是有效的并且应该引用this package。
如果有帮助,我正在运行 Cloudera 5.4.4。
我做错了什么?如何正确引用 hbase 包?
【问题讨论】:
-
工作正常吗?就我而言,我还必须通过 --jars 和 --driver-class-path 添加 jars。
标签: apache-spark hbase spark-streaming