如何使用 Spark-submit configuration: jars,packages:in cluster mode?
how to use Spark-submit configuration: jars,packages:in cluster mode?
在集群模式(yarn-cluster)中使用 Spark-submit 时,jar 和包配置让我感到困惑:对于 jar,我可以将它们放在 HDFS 中,而不是放在本地目录中。但是对于包,因为它们是用 Maven 和 HDFS 构建的,所以它不能工作。我的方式如下:
spark-submit --jars hdfs:///mysql-connector-java-5.1.39-bin.jar --driver-class-path /home/liac/test/mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar --conf "spark.mongodb.input.uri=mongodb://192.168.27.234/test.myCollection2?readPreference=primaryPreferred" --conf "spark.mongodb.output.uri=mongodb://192.168.27.234/test.myCollection2" --packages com.mongodb.spark:hdfs:///user/liac/package/jars/mongo-spark-connector_2.11-1.0.0-assembly.jar:1.0.0 --py-files /home/liac/code/diagnose_disease/tool.zip main_disease_tag_spark.py --master yarn-client
发生错误:
`Exception in thread "main" java.lang.IllegalArgumentException: requirement failed: Provided Maven Coordinates must be in the form 'groupId:artifactId:version'. The coordinate provided is: com.mongodb.spark:hdfs:///user/liac/package/jars/mongo-spark-connector_2.11-1.0.0-assembly.jar:1.0.0
谁能告诉我如何在集群模式下使用 jar 和包?我的方法有什么问题?
您对 --packages
参数的使用是错误的:
--packages com.mongodb.spark:hdfs:///user/liac/package/jars/mongo-spark-connector_2.11-1.0.0-assembly.jar:1.0.0
它需要采用输出建议的 groupId:artifactId:version
形式。您不能将 URL 与它一起使用。
具有内置存储库支持的 using mongoDB with spark 示例:
$SPARK_HOME/bin/spark-shell --packages org.mongodb.spark:mongo-spark-connector_2.11:1.0.0
如果您坚持使用自己的 jar,可以通过 --repositories
提供。参数的值为
Comma-separated list of remote repositories to search for the Maven coordinates specified in packages.
例如,您的情况可能是
--repositories hdfs:///user/liac/package/jars/ --packages org.mongodb.spark:mongo-spark-connector_2.11:1.0.0
在集群模式(yarn-cluster)中使用 Spark-submit 时,jar 和包配置让我感到困惑:对于 jar,我可以将它们放在 HDFS 中,而不是放在本地目录中。但是对于包,因为它们是用 Maven 和 HDFS 构建的,所以它不能工作。我的方式如下:
spark-submit --jars hdfs:///mysql-connector-java-5.1.39-bin.jar --driver-class-path /home/liac/test/mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar --conf "spark.mongodb.input.uri=mongodb://192.168.27.234/test.myCollection2?readPreference=primaryPreferred" --conf "spark.mongodb.output.uri=mongodb://192.168.27.234/test.myCollection2" --packages com.mongodb.spark:hdfs:///user/liac/package/jars/mongo-spark-connector_2.11-1.0.0-assembly.jar:1.0.0 --py-files /home/liac/code/diagnose_disease/tool.zip main_disease_tag_spark.py --master yarn-client
发生错误:
`Exception in thread "main" java.lang.IllegalArgumentException: requirement failed: Provided Maven Coordinates must be in the form 'groupId:artifactId:version'. The coordinate provided is: com.mongodb.spark:hdfs:///user/liac/package/jars/mongo-spark-connector_2.11-1.0.0-assembly.jar:1.0.0
谁能告诉我如何在集群模式下使用 jar 和包?我的方法有什么问题?
您对 --packages
参数的使用是错误的:
--packages com.mongodb.spark:hdfs:///user/liac/package/jars/mongo-spark-connector_2.11-1.0.0-assembly.jar:1.0.0
它需要采用输出建议的 groupId:artifactId:version
形式。您不能将 URL 与它一起使用。
具有内置存储库支持的 using mongoDB with spark 示例:
$SPARK_HOME/bin/spark-shell --packages org.mongodb.spark:mongo-spark-connector_2.11:1.0.0
如果您坚持使用自己的 jar,可以通过 --repositories
提供。参数的值为
Comma-separated list of remote repositories to search for the Maven coordinates specified in packages.
例如,您的情况可能是
--repositories hdfs:///user/liac/package/jars/ --packages org.mongodb.spark:mongo-spark-connector_2.11:1.0.0