0

Dataproc Spark 클러스터를 만들 때 명령에 --properties spark:spark.jars.packages=mysql:mysql-connector-java:6.0.6을 전달합니다. 우리 PySpark 스크립트가 분명히 창조에이 아무것도하지 않는 CloudSQLGCP Dataproc spark.jar.packages 관련 문제 다운로드

을 저장,하지만 첫 번째 spark-submit에이 의존성을 해결하기 위해 노력할 것입니다에 대한

이입니다.

기술적으로는 해결하고 필요한 jar 파일을 다운로드 보이지만 클러스터의 첫 번째 작업으로 인해 spark-submit

Exception in thread "main" java.lang.RuntimeException: [download failed: mysql#mysql-connector-java;6.0.6!mysql-connector-java.jar] 
    at org.apache.spark.deploy.SparkSubmitUtils$.resolveMavenCoordinates(SparkSubmit.scala:1177) 
    at org.apache.spark.deploy.SparkSubmit$.prepareSubmitEnvironment(SparkSubmit.scala:298) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:153) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 

전체에서 방출 경고의 실패 것은 그러나

Ivy Default Cache set to: /root/.ivy2/cache 
The jars for the packages stored in: /root/.ivy2/jars 
:: loading settings :: url = jar:file:/usr/lib/spark/jars/ivy-2.4.0.jar!/org/apache/ivy/core/settings/ivysettings.xml 
mysql#mysql-connector-java added as a dependency 
:: resolving dependencies :: org.apache.spark#spark-submit-parent;1.0 
    confs: [default] 
    found mysql#mysql-connector-java;6.0.6 in central 
downloading https://repo1.maven.org/maven2/mysql/mysql-connector-java/6.0.6/mysql-connector-java-6.0.6.jar ... 
:: resolution report :: resolve 527ms :: artifacts dl 214ms 
    :: modules in use: 
    mysql#mysql-connector-java;6.0.6 from central in [default] 
    --------------------------------------------------------------------- 
    |     |   modules   || artifacts | 
    |  conf  | number| search|dwnlded|evicted|| number|dwnlded| 
    --------------------------------------------------------------------- 
    |  default  | 1 | 1 | 1 | 0 || 1 | 0 | 
    --------------------------------------------------------------------- 

:: problems summary :: 
:::: WARNINGS 
     [FAILED  ] mysql#mysql-connector-java;6.0.6!mysql-connector-java.jar: Downloaded file size doesn't match expected Content Length for https://repo1.maven.org/maven2/mysql/mysql-connector-java/6.0.6/mysql-connector-java-6.0.6.jar. Please retry. (212ms) 

     [FAILED  ] mysql#mysql-connector-java;6.0.6!mysql-connector-java.jar: Downloaded file size doesn't match expected Content Length for https://repo1.maven.org/maven2/mysql/mysql-connector-java/6.0.6/mysql-connector-java-6.0.6.jar. Please retry. (212ms) 

    ==== central: tried 

     https://repo1.maven.org/maven2/mysql/mysql-connector-java/6.0.6/mysql-connector-java-6.0.6.jar 

     :::::::::::::::::::::::::::::::::::::::::::::: 

     ::    FAILED DOWNLOADS   :: 

     ::^see resolution messages for details^:: 

     :::::::::::::::::::::::::::::::::::::::::::::: 

     :: mysql#mysql-connector-java;6.0.6!mysql-connector-java.jar 

     :::::::::::::::::::::::::::::::::::::::::::::: 

클러스터의 후속 작업에서이 출력을 표시합니다.

Ivy Default Cache set to: /root/.ivy2/cache 
The jars for the packages stored in: /root/.ivy2/jars 
:: loading settings :: url = jar:file:/usr/lib/spark/jars/ivy-2.4.0.jar!/org/apache/ivy/core/settings/ivysettings.xml 
mysql#mysql-connector-java added as a dependency 
:: resolving dependencies :: org.apache.spark#spark-submit-parent;1.0 
    confs: [default] 
    found mysql#mysql-connector-java;6.0.6 in central 
:: resolution report :: resolve 224ms :: artifacts dl 5ms 
    :: modules in use: 
    mysql#mysql-connector-java;6.0.6 from central in [default] 
    --------------------------------------------------------------------- 
    |     |   modules   || artifacts | 
    |  conf  | number| search|dwnlded|evicted|| number|dwnlded| 
    --------------------------------------------------------------------- 
    |  default  | 1 | 0 | 0 | 0 || 1 | 0 | 
    --------------------------------------------------------------------- 
:: retrieving :: org.apache.spark#spark-submit-parent 
    confs: [default] 
    0 artifacts copied, 1 already retrieved (0kB/7ms) 

그래서 제 질문은 : 원인 &이가 GCP에서 좋은 사람들에 의해 고정 할 수 있습니다 무엇

  1. ?
  2. 클러스터의 시작시 실패 할 수있는 더미 작업을 실행하는 것 외에 임시 해결 방법이 있습니까?

답변

1

얼마나 일관되게 재현 할 수 있습니까? 다른 클러스터 설정으로 재현하려고 시도한 후에 나의 가장 좋은 이론은 아마도 5xx 오류를 반환하는 오버로드 된 서버 일 수 있습니다.

는 지금까지 해결이가는대로 :

1) 메이븐 중앙에서 항아리를 다운로드하고 작업을 제출할 때 --jars 옵션을 전달합니다. 초기화 작업을 통해 클러스터에서이 파일을 준비하는 것보다 자주 새 클러스터를 만드는 것이 좋습니다. https://www.infoq.com/news/2015/11/maven-central-at-google

+0

우리는 모든이 있습니다

2) 다른 담쟁이 설정 (이 축소/5XX 오류의 가능성을 제거한다)

것은이 문서를 참조하십시오 구글 메이븐 중앙 미러를 가리키는 spark.jars.ivySettings 속성을 통해 파일 제공 클러스터가 만들어지기 때문에 꽤 재현 할 수 있습니다 :-) 내용이 프로토콜 (또는 그 이상)에 의해 gzip 처리 되었기 때문에 content-length에 대해 불평합니다. 우리는 당신의 접근 방식을 시도하고 어떤 것이 효과가 있는지보고 할 것입니다. (가장) –

+0

어떤 구역에서 이런 현상이 발생합니까? 또한'--no-address' 플래그를 사용하고 있습니까, 아니면 외부 액세스를 막는 방화벽 규칙을 가지고 있습니까? – tix

+0

현재 'europe-west1-d'이지만 플래그는 아니며 방화벽 규칙이 아닙니다. 다운로드가 실제로 성공했다고 말했지만, 파일 크기가 일치하지 않는다는 경고 때문에 오류가 발생합니다. 불행하게도 이것은 첫 번째 작업에는 실패하지만 Airflow 덕분에 재 시도 할 것이지만 꽤 좋지 않고 어떤 종류의 GCP 버그처럼 보입니다. –