1

大きなハイブ テーブルがあります (最大 90 億レコード、オーク形式で最大 45 GB)。テーブルのプロファイリングを行うためにspark sqlを使用していますが、これに対して操作を行うには時間がかかりすぎます。入力データ フレーム自体をカウントするだけで、完了するまでに最大 11 分かかります。また、任意の列の最小値、最大値、平均値だけでも、完了するまでに 1 時間半以上かかります。

私は限られたリソース クラスター (利用可能な唯一のものであるため) で作業しています。それぞれ 2 つのコアと 3 つの物理ノードにまたがるエグゼキューターあたり 5GB のメモリを備えた合計 9 つのエグゼキューターです。

これを最適化する方法はありますか、たとえば、同じクラスターで各列のすべての集計関数を実行する時間を少なくとも 30 分未満に短縮するか、リソースを増やすことが唯一の方法ですか?? 個人的にはあまりやりたくないことです。データ フレーム操作を高速化するために私が見つけた 1 つの解決策は、それらをキャッシュすることです。しかし、私の場合、それは実行可能なオプションではないと思います。

私が遭遇した現実世界のシナリオはすべて、この種の負荷に巨大なクラスターを使用しています。

どんな助けでも大歓迎です。kryoシリアライザーを使用してスタンドアロンモードでspark 1.6.0を使用しています。

4

1 に答える 1