問題タブ [google-cloud-dataproc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-cloud-dataproc - Google Cloud Dataproc - sc.textFile() コマンドでのジョブ ファイルのエラー
これは、UI を介して Dataproc で PySpark ジョブとして送信したファイルです。
開始してからエラーが発生します
どうしてこれなの?Spark コンテキストは、Dataproc によってすでに確立されているはずではありませんか? Spark コマンドとして受け入れられるように、コードに何を追加する必要がありますか?
python - 各 Spark executor でピクルできないデータをロードするにはどうすればよいですか?
Cython で書かれたNoAho ライブラリを使用しています。その内部トライはピクルできません。マスターノードにロードすると、ワーカーで実行される操作に一致するものは得られません。
各 Spark エグゼキュータで同じトライを使用したいので、このspaCy on Spark issueに触発されて、トライを遅延ロードする方法を見つけました。
これが機能している間、すべての.add()
呼び出しがすべての Spark ジョブに対して実行されます。これには約 1 分かかります。「Spark ジョブ」が正しい用語であるかどうかわからないので、より明確に説明します。私は Jupyter ノートブックで Spark を使用しており、get_match()
関数を必要とするセルを実行するたびに、トライはキャッシュされず、1 つ取得されます。これは、実行時間を支配します。
トライが確実にキャッシュされるようにするためにできることはありますか? または、私の問題に対するより良い解決策はありますか?
hadoop - DataProc MapReduce が機能しなくなった
BigTable テーブルの行をカウントする標準の hbase クラス (RowCounter) を実行します。Google Console の DataProc gui を使用します。それはうまくいきましたが、数週間後、私は同様のjarを実行しようとしましたが、ほとんど説明できない理由でジョブが失敗しました. 存在しない Hbase テーブル名を使用すると、これが理解されるため、これは接続パラメーターの問題のようには見えません。
結果は、1.1.2 と 1.0.1.1 の Hbase クライアントで同じです。1.0.1.1 は例からのものです。1.1.2 バージョンが bdutils によってセットアップされたクラスターで使用されていることがわかりました。
apache-spark - 異なるマシンで実行されている Spark マスターに IPython ノートブックを接続する
これが SO で既に回答されているかどうかはわかりませんが、問題の解決策が見つかりませんでした。
Google Container Engine の docker コンテナで IPython ノートブックを実行しています。コンテナはこのイメージjupyter/all-spark-notebookに基づいています
Google Cloud Dataprocで作成された Spark クラスターもあります
Spark マスターとノートブックは、異なる VMで実行されていますが、同じリージョンとゾーンで実行されています。
私の問題は、IPython ノートブックからスパーク マスターに接続しようとしていますが、成功していないことです。Pythonノートブックでこのコードスニペットを使用します
私はスパークを使い始めたばかりなので、何か(認証、セキュリティ...)が欠けていると確信しています。
そこで見つけたのは、 SSH トンネルを介してローカル ブラウザを接続していることです。
誰かがすでにこの種のセットアップを行っていますか?
前もって感謝します
c# - C# を使用した Google DataProc API Spark クラスター
Spark クラスタで分析を実行したい Big Query にデータがあります。ドキュメントによると、spark クラスタをインスタンス化する場合、Big Query コネクタが付属している必要があります。これを行うためのサンプルコードを探していましたが、pysparkで見つかりました。C# の例が見つかりませんでした。DataProc API nuget パッケージの関数に関するドキュメントも見つかりました。
C# を使用して Google クラウドで Spark クラスターを開始するサンプルを探しています。
apache-spark - Spark は、開始から 1 分後にすべてのエグゼキュータを失います
pyspark
デフォルト設定の 8 ノード Google dataproc クラスタで実行しています。開始から数秒後、30 個のエグゼキュータ コアが実行されていることがわかります (予想どおり)。
1分後:
その時点から、すべてのアクションは 2 つのコアのみで実行されます。
rng.cache()
コアがまだ接続されている間に実行すると、コアは接続されたままになり、ジョブが分散されます。
監視アプリ (マスター ノードのポート 4040) を確認すると、executor が削除されていることがわかります。
回避策なしでコアの接続を維持できる設定はありますか?
apache-spark - Dataproc py4j エラーでの Spark 1.6 kafka ストリーミング
次のエラーが表示されます。
Py4JError(u'o73.createDirectStreamWithoutMessageHandler の呼び出し中にエラーが発生しました。トレース:\npy4j.Py4JException: メソッド createDirectStreamWithoutMessageHandler([class org.apache.spark.streaming.api.java.JavaStreamingContext、class java.util.HashMap、class java.util .HashSet、クラス java.util.HashMap]) は存在しません\n\tat py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:335)\n\tat py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:344) \n\tat py4j.Gateway.invoke(Gateway.java:252)\n\tat py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)\n\tat py4j.commands.CallCommand.execute(CallCommand.java: 79)\n\tat py4j.GatewayConnection.run(GatewayConnection.java:209)\n\tat java.lang.Thread.run(Thread.java:745)\n\n',)
spark-streaming-kafka-assembly_2.10-1.6.0.jar を使用しています (これは、すべてのノード + マスターの /usr/lib/hadoop/lib/ フォルダーにあります)
(編集) 実際のエラーは次のとおりです: java.lang.NoSuchMethodError: org.apache.hadoop.yarn.util.Apps.crossPlatformify(Ljava/lang/String;)Ljava/lang/String;
これは、hadoop のバージョンが間違っていたことが原因でした。したがって、spark は正しい Hadoop バージョンでコンパイルする必要があります。
mvn -Phadoop-2.6 -Dhadoop.version=2.7.2 -DskipTests clean package
これにより、external/kafka-assembly/target フォルダーに jar が作成されます。
apache-spark - Java で Google Dataproc SparkJob を待つ最善の方法は何ですか?
現在、Dataproc の Java クライアント API を使用して、Spring REST サービス経由で Spark ジョブをトリガーしています。spark ジョブの基本は次のとおりです。
- スパークの初期化
- プロセスデータ
- 結果を GS バケット .json ファイルに保存する
データを保存する理由は、Spark ジョブが完了して結果を JSON ファイルに保存したときに、保存された結果を REST サービスから読み取ることができるようにするためです。ただし、Dataproc の Java クライアント API はジョブをトリガーするだけで、ジョブが完了するまで待機しません。では、spark ジョブが完了するのを待つ最善の方法は何でしょうか? 私は Object.wait(int time) を使用したくありません。スパーク ジョブごとに実行時間が異なるためです。