2016-08-12 2 views
0

クラスタモード(糸クラスター)でSpark-submitを使用すると、jarsとpackagesの設定が混乱します。jarファイルでは、ローカルディレクトリではなくHDFSに配置できます。しかし、パッケージの場合、HDFSを使ってMavenをビルドするため、動作できません。私の方法以下のように:スパーク送信設定の使い方:jars、packages:クラスタモードですか?

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 

誰もがどのようにクラスタモードで瓶やパッケージを使用するために私を伝えることができますか?私のやり方に何が問題なの?

+0

だろうか? – ShuaiYuan

+0

はい、私も ' - master yarn-cluster'を試します – lac

答えて

0

--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を経由して、それを提供することができます。引数の値は

パッケージで指定されたMaven座標を検索するリモートリポジトリのカンマ区切りリストです。 `--master糸client`:

たとえば、あなたのケースでは、それはあなたのスクリプトで

--repositories hdfs:///user/liac/package/jars/ --packages org.mongodb.spark:mongo-spark-connector_2.11:1.0.0 
+0

ありがとう!それは私をたくさん助けます。 – lac

関連する問題