1.spark提交任务
bin/spark-submit --master local[2] \
--class _0924MoocProject.ImoocStatStreamingApp_product \
--packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.1.0 \
/opt/datas/project/scalaProjectMaven.jar \
bigdata.ibeifeng.com:2181/kafka08 test streamingtopic 1
报错:
ERROR JobScheduler: Error running job streaming job 1537890565000 ms.1
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 8.0 failed 1 times, most recent failure: Lost task 0.0 in stage 8.0 (TID 7, localhost, executor driver): java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/client/HBaseAdmin
at _0924MoocProject.utils.HBaseUtils2.<init>(HBaseUtils2.java:26)
at _0924MoocProject.utils.HBaseUtils2.getInstance(HBaseUtils2.java:37)
at _0924MoocProject.dao.CourseSearchClickCountDao$.save(CourseSearchClickCountDao.scala:26)
2.原因
在idea中有hbase的pom依赖,但是打的jar瘦包里面没有!
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>0.98.6-hadoop2</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>0.98.6-hadoop2</version>
</dependency>
3.解决
将需要的对应jar包写入spark submit命令
bin/spark-submit --master local[2] \
--jars $(echo /opt/modules/hbase-0.98.6-hadoop2/lib/*.jar | tr ' ' ',') \
--class _0924MoocProject.ImoocStatStreamingApp_product \
--packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.1.0 \
/opt/datas/project/scalaProjectMaven.jar \
bigdata.ibeifeng.com:2181/kafka08 test streamingtopic 1
经测试,成功!