Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 目录扩展在独立部署模式下不起作用:Apache Spark_Apache Spark_Apache Kafka_Spark Streaming - Fatal编程技术网

Apache spark 目录扩展在独立部署模式下不起作用:Apache Spark

Apache spark 目录扩展在独立部署模式下不起作用:Apache Spark,apache-spark,apache-kafka,spark-streaming,Apache Spark,Apache Kafka,Spark Streaming,我正在尝试使用以下命令在独立spark群集上部署使用Kafka主题作业的spark流: ./bin/spark-submit --class MaxwellCdc.MaxwellSreaming ~/cdc/cdc_2.11-0.1.jar --jars ~/cdc/kafka_2.11-0.10.0.1.jar, ~/cdc/kafka-clients-0.10.0.1.jar,~/cdc/mysql-connector-java-5.1.12.jar, ~/cdc/spark-streami

我正在尝试使用以下命令在独立spark群集上部署使用Kafka主题作业的spark流:

./bin/spark-submit --class MaxwellCdc.MaxwellSreaming
~/cdc/cdc_2.11-0.1.jar --jars ~/cdc/kafka_2.11-0.10.0.1.jar,
~/cdc/kafka-clients-0.10.0.1.jar,~/cdc/mysql-connector-java-5.1.12.jar,
~/cdc/spark-streaming-kafka-0-10_2.11-2.2.1.jar 
得到这个例外:

Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/kafka/common/serialization/StringDeserializer
at MaxwellCdc.MaxwellSreaming$.main(MaxwellSreaming.scala:30)
at MaxwellCdc.MaxwellSreaming.main(MaxwellSreaming.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:775)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException:
org.apache.kafka.common.serialization.StringDeserializer
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

任何帮助都将不胜感激。

引用文档:

使用spark submit时,应用程序jar将与任何jar一起使用 包含在--jars选项中的内容将自动传输到 集群。在--jar之后提供的URL必须用逗号分隔。 该列表包含在驱动程序和执行器类路径中。 目录扩展不能与--jars一起使用。

什么是目录扩展?

扩展文件名意味着将相对文件名转换为绝对文件名。由于这是相对于默认目录执行的,因此必须指定默认目录名以及要展开的文件名它还包括扩展缩写,如~/


因此,请尝试为使用
--jars
选项提供的所有jar提供绝对路径。我希望这会有帮助。

谢谢,伙计,这很有效。当我尝试使用命令/spark submit--jars/root/batch/mysql-connector-java-5.1.12.jar--class BatchProcessor/root/batch/mysqltocassandrabatch_2.11-0.1.jar提交spark sql批时,会出现另一个问题。异常是线程“main”java.sql.SQLException中的异常:java.sql.DriverManager.getDriver(DriverManager.java:315)中没有合适的驱动程序这似乎更多的是您在程序中使用的JDBC驱动程序JAR。尝试提供适当的JAR来解决这个问题。