2016-08-12 5 views
0

클러스터 모드 (원사 클러스터)에서 스파크 제출을 사용하는 경우 jar 및 패키지 구성이 혼란 스럽습니다. 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 

자신의 병을 사용하여 주장하는 경우는 --repositories 통해 제공 할 수 있습니다. 인수의 값은

패키지에 지정된 Maven 좌표를 검색하기위한 쉼표로 구분 된 원격 저장소 목록입니다. `--master 원사 client` :

예를 들어, 귀하의 경우, 그것은 당신의 스크립트에서

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

고마워요! 그게 날 많이 도와 줬어. – lac

관련 문제