0

Dataproc Sparkクラスタを作成するときに --properties spark:spark.jars.packages=mysql:mysql-connector-java:6.0.6gcloud dataproc clusters createコマンドに渡します。当社PySparkスクリプトが、これは何もしませんが、最初の​​に、これはこの依存関係を解決しようとする創造にどうやらCloudSQLGCP Dataproc spark.jar.packagesで問題が発生しました

に保存するため

です。しかし

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 

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

技術的には完全な出力があり、解決し、必要なjarファイルをダウンロードするようですが、クラスタの最初の仕事は理由​​

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 
:: 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) 

だから私の質問は次のとおりです。

  1. &が、これはGCPで善良な人々によって固定することができ、原因は何ですか?
  2. 一時的な回避策はありますか?クラスタの開始時に失敗するダミータスクを実行すること以外にもありますか?

答えて

1

これを一貫して再現できますか?異なるクラスター設定で再現しようとした後の私の最高の理論は、恐らく5xxエラーを返すオーバーロードされたサーバーかもしれません。限り回避策が行くように

1)は、Mavenの中央からjarファイルをダウンロードして、ジョブを送信する際--jarsオプションでそれを渡します。初期化アクションを使用してクラスタ上でこのファイルをステージングするよりも頻繁に新しいクラスタを作成する方法があります。

2)この記事を参照してください(これは5xxのエラーのオッズをなくす/減らす必要があります)代替ツタの設定は、GoogleのMavenのセントラル・ミラーを指しspark.jars.ivySettingsプロパティを経由してファイル

を提供します https://www.infoq.com/news/2015/11/maven-central-at-google

+0

我々はそれのすべてを持っていますクラスタが作成されるまでにはかなりの再現性があります:-) コンテンツはプロトコル(またはそれ以上)でgzipされているので、コンテンツ長について不満を抱いていると思います。 私たちはあなたのアプローチを試し、何がうまくいくかを報告します(最高) –

+0

これはどのゾーンで起こっていますか?また、 '--no-address'フラグを使用していますか、または外部アクセスを防ぐファイアウォールルールを持っていますか? – tix

+0

現在のところ 'europe-west1-d'でもフラグではなく、ファイアウォールルールではありません。私は実際にダウンロードが成功したと言いましたが、ファイルサイズが一致しないという警告のためにエラーが発生します。残念ながら、これは最初の仕事には失敗しますが、気流のおかげで再試行されますが、それはかなりではなく、ある種のGCPバグのようです。 –