ソースファイルをGoogledataproc HDFSとGoogleクラウドストレージ(Googleバケット)に保存する

ramd

それぞれ500万レコードを含む64個のJSONファイルに分散した最大500GBのデータを処理したいと思います基本的に、Map(Pyspark)は3億レコードのそれぞれで機能します。

PySparkマップ関数をテストするために、google Dataprocクラスターをセットアップしました(1つのマスター5ワーカーで1つのJSONファイルのみをテストします)。

ここでのベストプラクティスは何ですか?

(DataprocのHadoop分散ファイルシステムを利用するために)マスターノード内のすべてのファイルをコピーする必要がありますか、それともファイルをGCSバケットに保持し、Pyspark内のファイルの場所を指定する場合も同様に効率的ですか?

また、私のコードは、マスターにコピーしたかなりの数の外部モジュールをインポートし、インポートはマスターで正常に機能します。Pysparkがそれらのワーカーで実行されたときにインポートエラーが発生しないように、他のすべてのワーカーノードにコピーするためのベストプラクティスは何ですか。

Google Cloud Webサイトでいくつかの記事を読みましたが、ファイルを保存する場所について明確な回答が得られませんでした。

外部モジュールを各ワーカーノードに手動でコピーすることはできますが、少なくとも100ノードを処理する場合、本番環境ではコピーできません。

tix

あなたはいくつかの質問をしているので、一度に一つずつ取り上げましょう。

  1. 私のコードは、マスターにコピーしたかなりの数の外部モジュールをインポートし、インポートはマスターで正常に機能します。Pysparkがそれらのワーカーで実行されたときにインポートエラーが発生しないように、他のすべてのワーカーノードにコピーするためのベストプラクティスは何ですか。

モジュールが外部にある場合(たとえば、を介してモジュールをインストールする場合pip install)、初期化アクションを使用します

あなたが持っているものがあなたが.py書いたたくさんのファイルであるならば、私はそれらをアーカイブファイルに入れて、--py-files議論であなたの仕事に渡します。また、車輪や卵を作ることを検討することをお勧めします。

このリンクが役立つ場合があります:https//developerzen.com/best-practices-writing-production-grade-pyspark-jobs-cb688ac4d20f

  1. マスターノード内のすべてのファイルをコピーする必要がありますか(DataprocのHadoop分散ファイルシステムを利用するため)、またはファイルをGCSバケットに保持する場合も同様に効率的ですか?

データがすでにGCSにあり、そこに保存する場合は、マスターノードにコピーするメリットはありません。GCSコネクタはGCSからその場で(そして並行して!)それを読み取ることができ、これはGCSとの間で個別にコピーするよりも(計算コストの点で)安価になる可能性があります。

データはすでに適切にシャーディングされているようです。これは、GCSから直接Sparkで読み取るのに十分な理由です。

GCSコネクタページには、明示的にこれを呼び出します。

  • 直接データアクセス–データをクラウドストレージに保存して直接アクセスします。最初にHDFSに転送する必要はありません。HDFSの互換性– hdfs://の代わりにgs://プレフィックスを使用して、CloudStorageのデータに簡単にアクセスできます。

  • 相互運用性– Cloud Storageにデータを保存すると、Spark、Hadoop、およびGoogleサービス間のシームレスな相互運用性が可能になります。

  • ストレージ管理のオーバーヘッドなし– HDFSとは異なり、Cloud Storageは、ファイルシステムのチェック、ファイルシステムの以前のバージョンへのアップグレードまたはロールバックなどの定期的なメンテナンスを必要としません。

  • クイックスタートアップ– HDFSでは、NameNodeがセーフモードを終了するまでMapReduceジョブを開始できません。このプロセスは、データのサイズと状態に応じて数秒から数分かかる場合があります。Cloud Storageを使用すると、タスクノードが開始するとすぐにジョブを開始できるため、時間の経過とともに大幅なコスト削減につながります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Googleクラウドストレージバケットからプライベートファイルにアクセスする

分類Dev

githubリポジトリをGoogleクラウドストレージバケットと同期する

分類Dev

Google AppEngineクラウドストレージバケットにアップロードされたExcelファイルを読み取るPHPコード

分類Dev

データをストリーミング(アップロード)してGoogleクラウドストレージのバケットに保存し、同時にダウンロードできるようにすることは可能ですか?

分類Dev

Googleクラウドストレージバケットに保存されている画像を表示するにはどうすればよいですか?

分類Dev

Googleクラウドストレージ(JAVA)にファイルをアップロードする

分類Dev

PySparkドライバーへの引数としてファイルにアクセスする-GoogleDataproc Jobs

分類Dev

複数のファイルをGoogleクラウドストレージバケットに非同期アップロード

分類Dev

Googleクラウドストレージにモデル履歴を保存する

分類Dev

.ipynbファイルのクラスターでGoogleDataproc PySparkジョブを送信する方法はありますか?

分類Dev

データプロシージャクラスターで実行されているjupyterノートブックからGoogleクラウドストレージバケットからファイルを読み取ることができません

分類Dev

nodeJSのURLからファイルを取得し、zipファイルを作成し、クラウドストレージバケットにパイプする方法

分類Dev

ドロップボックス/ドライブからGoogleクラウドストレージにファイルを転送する

分類Dev

Googleクラウドストレージでgzipを有効にする(静的ファイル)

分類Dev

GoogleDataprocクエリの出力をテキストファイルにリダイレクトする

分類Dev

JavaでGoogleクラウドデータフローを使用してクラウドストレージから読み取るときに、csvファイルのキャリッジリターンをスキップする方法

分類Dev

Googleバケットからファイルをプルダウンするときにアクセス拒否の例外メッセージ

分類Dev

メモリに保存せずにGoogleストレージにファイルをアップロードする

分類Dev

Googleクラウドストレージの監視対象バケットに現在設定されているチャネル通知を一覧表示します

分類Dev

RStudioのGoogleクラウドストレージからファイルにアクセスする

分類Dev

Googleクラウドストレージバケットからダウンロードするときに1秒あたりの遅いリクエストを改善する方法

分類Dev

Googleストレージ-ファイルごとに異なるキーを持つバックアップバケット

分類Dev

ローカル開発サーバー(Google App Engine + JAVA)のGoogleクラウドストレージにアップロードされたファイルのパブリックリンクを取得する方法

分類Dev

2つのGoogleクラウドストレージファイルを1つにマージすることは可能ですか?

分類Dev

GoogleクラウドストレージをLaravel5ファイルシステムとして使用するにはどうすればよいですか?

分類Dev

バイナリファイルをクラウドオブジェクトストレージからノートブックファイルシステムに保存するにはどうすればよいですか?

分類Dev

Javaを使用してGoogleクラウドストレージファイルのファイル名を変更することは可能ですか?

分類Dev

どのようにCSVファイルをGoogleバケットとMySQL 5.7.17にあるときは、MySQLのLOAD DATA INFILEを使用するには、クラウドでRHELのマシンにインストールされていますか?

分類Dev

クライアントフロントエンドからプライベートGoogleクラウドストレージバケットから読み取ることはできますか

Related 関連記事

  1. 1

    Googleクラウドストレージバケットからプライベートファイルにアクセスする

  2. 2

    githubリポジトリをGoogleクラウドストレージバケットと同期する

  3. 3

    Google AppEngineクラウドストレージバケットにアップロードされたExcelファイルを読み取るPHPコード

  4. 4

    データをストリーミング(アップロード)してGoogleクラウドストレージのバケットに保存し、同時にダウンロードできるようにすることは可能ですか?

  5. 5

    Googleクラウドストレージバケットに保存されている画像を表示するにはどうすればよいですか?

  6. 6

    Googleクラウドストレージ(JAVA)にファイルをアップロードする

  7. 7

    PySparkドライバーへの引数としてファイルにアクセスする-GoogleDataproc Jobs

  8. 8

    複数のファイルをGoogleクラウドストレージバケットに非同期アップロード

  9. 9

    Googleクラウドストレージにモデル履歴を保存する

  10. 10

    .ipynbファイルのクラスターでGoogleDataproc PySparkジョブを送信する方法はありますか?

  11. 11

    データプロシージャクラスターで実行されているjupyterノートブックからGoogleクラウドストレージバケットからファイルを読み取ることができません

  12. 12

    nodeJSのURLからファイルを取得し、zipファイルを作成し、クラウドストレージバケットにパイプする方法

  13. 13

    ドロップボックス/ドライブからGoogleクラウドストレージにファイルを転送する

  14. 14

    Googleクラウドストレージでgzipを有効にする(静的ファイル)

  15. 15

    GoogleDataprocクエリの出力をテキストファイルにリダイレクトする

  16. 16

    JavaでGoogleクラウドデータフローを使用してクラウドストレージから読み取るときに、csvファイルのキャリッジリターンをスキップする方法

  17. 17

    Googleバケットからファイルをプルダウンするときにアクセス拒否の例外メッセージ

  18. 18

    メモリに保存せずにGoogleストレージにファイルをアップロードする

  19. 19

    Googleクラウドストレージの監視対象バケットに現在設定されているチャネル通知を一覧表示します

  20. 20

    RStudioのGoogleクラウドストレージからファイルにアクセスする

  21. 21

    Googleクラウドストレージバケットからダウンロードするときに1秒あたりの遅いリクエストを改善する方法

  22. 22

    Googleストレージ-ファイルごとに異なるキーを持つバックアップバケット

  23. 23

    ローカル開発サーバー(Google App Engine + JAVA)のGoogleクラウドストレージにアップロードされたファイルのパブリックリンクを取得する方法

  24. 24

    2つのGoogleクラウドストレージファイルを1つにマージすることは可能ですか?

  25. 25

    GoogleクラウドストレージをLaravel5ファイルシステムとして使用するにはどうすればよいですか?

  26. 26

    バイナリファイルをクラウドオブジェクトストレージからノートブックファイルシステムに保存するにはどうすればよいですか?

  27. 27

    Javaを使用してGoogleクラウドストレージファイルのファイル名を変更することは可能ですか?

  28. 28

    どのようにCSVファイルをGoogleバケットとMySQL 5.7.17にあるときは、MySQLのLOAD DATA INFILEを使用するには、クラウドでRHELのマシンにインストールされていますか?

  29. 29

    クライアントフロントエンドからプライベートGoogleクラウドストレージバケットから読み取ることはできますか

ホットタグ

アーカイブ