2017-04-21 9 views
1

6つのスレーブでスパーク1.6を使用しています。各スレーブは約64GBのRAMを搭載しています。 CSVファイルをデータフレームに変換して参加させています。ファイルの1つは約50GBで、もう1つは約25MBに圧縮されています。非常に多くのRAMがあっても、プロセスはクラッシュします。大きなファイルには数百万行があります。メモリとファイルのサイズに関する経験則がありますか?ファイルをCSVヘルプの代わりにフラットファイルとして扱いますか?spark sqlアプリケーションが50GBのテキストファイルで使用されるとクラッシュする

+1

どのようなエラーが表示されますか?私はoutofmemoryerror、javaヒープ空間を想定しています。物理サーバが64GBのメモリを持っているからといって、Javaプロセスの許可をすべて与えているわけではありません(64ビットマシンが64ビットマシンにインストールされています、 念のため)。デフォルトのメモリ割り当ては非常に小さいです。 25MBも、私が参加するためのオプションとして放送を考えさせるのに十分小さいです。 – puhlen

+0

RPCタイムアウトまたは接続がピアによって停止した状態を継続します。ネットワークタイムアウト、heartbeattimeoutを更新してください。 – user373201

答えて

0

spark.sql.shuffle.partitionsを増やすことで動作するかどうか試してみてください。デフォルトは200ですので、2048のように増やしてみてください。

あなたのケースでは、dfをRDDに変換し、RDDをHashPartitionerでパーティション化することをお勧めします。

関連する問題