MapReduce服务 MRS-运行SparkStreamingKafka样例工程时报“类不存在”问题:回答
回答
Spark部署时,如下jar包存放在客户端的“${SPARK_HOME}/jars/streamingClient010”目录以及服务端的“${BIGDATA_HOME}/ FusionInsight _Spark2x_8.1.0.1/install/FusionInsight-Spark2x-3.1.1/spark/jars/streamingClient010”目录:
- kafka-clients-xxx.jar
- kafka_2.12-xxx.jar
- spark-streaming-kafka-0-10_2.12-3.1.1-hw-ei-311001-SNAPSHOT.jar
- spark-token-provider-kafka-0-10_2.12-3.1.1-hw-ei-311001-SNAPSHOT.jar
由于“$SPARK_HOME/jars/streamingClient010/*”默认没有添加到classpath,所以需要手动配置。
在提交应用程序运行时,在命令中添加如下参数即可,详细示例可参考在Linux环境中编包并运行Spark程序。
--jars $SPARK_CLIENT_HOME/jars/streamingClient010/kafka-client-2.4.0.jar,$SPARK_CLIENT_HOME/jars/streamingClient010/kafka_2.12-*.jar,$SPARK_CLIENT_HOME/jars/streamingClient010/spark-streaming-kafka-0-10_2.12-3.1.1-hw-ei-311001-SNAPSHOT.jar
用户自己开发的应用程序以及样例工程都可使用上述命令提交。
但是Spark开源社区提供的KafkaWordCount等样例程序,不仅需要添加--jars参数,还需要配置其他,否则会报“ClassNotFoundException”错误,yarn-client和yarn-cluster模式下稍有不同。
- yarn-client模式下
在除--jars参数外,在客户端“spark-defaults.conf”配置文件中,将“spark.driver.extraClassPath”参数值中添加客户端依赖包路径,如“$SPARK_HOME/jars/streamingClient010/*”。
- yarn-cluster模式下
除--jars参数外,还需要配置其他,有三种方法任选其一即可,具体如下:
- 在客户端spark-defaults.conf配置文件中,在“spark.yarn.cluster.driver.extraClassPath”参数值中添加服务端的依赖包路径,如“${BIGDATA_HOME}/FusionInsight_Spark2x_8.1.0.1/install/FusionInsight-Spark2x-3.1.1/spark/jars/streamingClient010/*”。
- 将各服务端节点的“original-spark-examples_2.12-3.1.1-xxx.jar”包删除。
- 在客户端“spark-defaults.conf”配置文件中,修改或增加配置选项“spark.driver.userClassPathFirst” = “true”。
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- 大数据分析是什么_使用MapReduce_创建MRS服务
- 性能测试使用流程_性能测试怎么样_性能测试 CodeArts PerfTest-华为云
- 人工智能学习入门
- 性能测试使用教程_性能测试操作步骤_性能测试快速入门-华为云
- MapReduce服务_什么是MapReduce服务_什么是HBase
- 人工智能学习入门
- MapReduce服务_什么是HDFS_HDFS特性
- 如何申请企业邮箱账号_企业邮箱注册申请_免费企业邮箱注册-华为云
- 什么是Flink OpenSource SQL_数据湖探索_Flink OpenSource SQL