方式一:--packages,需要连接外网
./spark-submit \
--master local[2] \
--name StreamingKafkaYARNApp \
--class com.ruozedata.bigdata.spark.streaming4.StreamingKafkaYARNApp \
--packages org.apache.spark:spark-streaming-kafka-0-10_2.11:2.4.4 \
/home/hadoop/lib/spark-flink-1.0.jar \
master:9092,master:9093,master:9094 my_offset my_group
方式二:--jars,提前下载好依赖的jar包(推荐)
./spark-submit \
--master local[2] \
--name StreamingKafkaYARNApp \
--class com.ruozedata.bigdata.spark.streaming4.StreamingKafkaYARNApp \
--jars /home/hadoop/lib/spark-streaming-kafka-0-10_2.11-2.4.4.jar,/home/hadoop/lib/kafka-clients-2.0.0.jar \
/home/hadoop/lib/spark-flink-1.0.jar \
master:9092,master:9093,master:9094 my_offset my_group
方式三:打胖包
瘦包:仅仅只包含了你自己开发的代码,不包括其他的依赖。
- 包小。
- 需要的依赖的包自己来挑选。
胖包:不仅仅会把你自己开发的代码打包,还会把你指定的依赖的包一起打进去。
- 包大。
- 所有需要的东西(Hadoop/Spark除外)都在里面了。
在pom.xml中加入assembly插件:
<plugin>
<!-- 加入assembly组件,实现打胖包,直接Package -->
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>${groupId}</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
提交
./spark-submit \
--master local[2] \
--name StreamingKafkaYARNApp \
--class com.ruozedata.bigdata.spark.streaming4.StreamingKafkaYARNApp \
/home/hadoop/lib/spark-flink-1.0-jar-with-dependencies.jar \
master:9092,master:9093,master:9094 my_offset my_group