2013-11-08 11 views
6

答えは「それに依存する」と思われますが、Facebook Prestoにはどのような種類のハードウェアを使用する予定ですか?Facebookのハードウェア要件Presto

Prestoはコーディネータと作業者のセットを使用し、作業者はデータを使用して作業するため、コーディネータに十分なRAMがあり、作業者からコーディネータに送信される部分的な結果に十分なネットワーク帯域幅があると思います。

これについて適切にサイズを設定する方法について一般的な考えを伝えることができれば、私はそれらを聞いてみたいです。

+0

は、あなたがに見たことが

  • 当社のサーバーのSTは、10ギガビットネットワーク上にあるが、我々は(正常に動作します)1つのギガビットを使用して一つの大きな古いcruftyクラスタを持っていますhttp://prestodb.io/docs/current/installation/deployment.html? – sufinawaz

  • 答えて

    24

    ほとんどの人は、既に持っているHadoopノードでPrestoを実行しています。 Facebookでは、通常、Hadoopクラスタ内のいくつかのノードでPrestoを実行し、ネットワークの負荷を分散します。

    一般的に、私は新しいクラスタの業界標準の比率、つまり、2つのコアと各ディスクの2〜4ギガヘルツのメモリと、10ギガビットのネットワーキングを備えています。いくつかのマシン(4+)を使用した後、データに対するクエリを使用してベンチマークを行います。比率を調整する必要があるかどうかは明らかです。ゼロからクラスタのために考慮すべきいくつかのことをハードウェアサイジングの面で

    • 総データサイズはあなたが必要とするディスクの数を決定します。 HDFSには大きなオーバーヘッドがあり、多くのディスクが必要になります。
    • ディスクとCPUの速度の比は、ホットデータ(作業中のデータ)とコールドデータ(アーカイブデータ)の比率によって決まります。データウェアハウスを始めるだけであれば、すべてのデータが新しく熱くなるため、多くのCPUが必要になります。一方、ほとんどの物理ディスクはデータを高速でしか配信できないため、ある時点でより多くのCPUが役に立たない。
    • CPU速度とメモリの比率は、実行する集計と結合のサイズとキャッシュする(ホット)データの量によって異なります。現在、Prestoでは、最終的な集計結果とジョイン用のハッシュテーブルが1台のマシン上のメモリに収まる必要があります(これらの制限の削除に積極的に取り組んでいます)。大量のメモリがある場合、OSはディスクページをキャッシュします。これにより、クエリのパフォーマンスが大幅に向上します。次のように我々はプレスト・プロセスを実行Facebookので

    • 私たちはプレストを実行するマシンでOSのバッファ
    • ために利用可能なほとんどのメモリを残すために16ギガバイトのヒープと私たちのJVMを実行にはドンを我々
    • 私たちがいるPrestoマシンの多くは、16個の実際のコアを持っており、Prestoを12コアに制限するために(すぐにcgroupsになるように)プロセッサアフィニティを使用しています(DFSクライアントやその他のものは簡単に実行できます)
    • Mo私たちは、コーディネーターのために同じ設定を使用して、労働者
    +0

    詳細、迅速な返信ありがとう! – benvolioT

    +0

    このような素晴らしい応答をありがとう – Pradatta

    関連する問題