2.9 GoldenGate Stream Analyticsのエンタープライズ・デプロイメントのハードウェア要件

この章では、GoldenGate Stream Analyticsの設計層とデータ層のハードウェア要件について説明します。

設計層

GoldenGate Stream Analyticsの設計層はマルチユーザー環境であるため、複数のユーザーがデータフロー・パイプラインを実装およびテストできます。また、設計層はストリーミング・データ用のダッシュボードを提供します。複数のユーザーが、ランタイム層(YARN/Sparkクラスタ)の容量に基づいてパイプラインを同時に構築、テストおよびデプロイできます。

GGSAは、HAをサポートするWebサーバーとしてJettyを使用します。GGSA設計層の本番デプロイメントでは、次に示す最小ハードウェア構成が必要です:

  • Webサーバー – 高可用性(HA)をサポートするJetty
  • 2つのJettyインスタンスの実行に対して、4つ以上のコアと32GB以上のRAMを備えた2つのノード。
  • MySQLまたはOracleメタストアの実行に対して、4つ以上のコアと16GB以上のRAMを備えた1つのノード。
  • 2つのKafkaインスタンスと3つのZooKeeperインスタンスの実行に対して、4つ以上のコアと16GB以上のRAMを備えた2つのノード。これは、GGSAの内部使用専用でインタラクティブなパイプライン設計に対応する、個別のKafkaクラスタであることに注意してください。GGSAのシステム設定UIで、このKafkaクラスタのZooKeeperエンドポイントを指定する必要があります。

ノート:

顧客がKafkaクラスタをすでに設置済で、そのクラスタをOSAの内部使用用に活用することに問題がない場合、2ノードKafkaクラスタは省くことができます。

前述の見積りに基づいて、設計層の合計コア数は12、概算メモリーは112GB RAMです。Jettyインスタンスは、ユーザー数の増加に伴い個別にスケールできます。次の図は、GGSAの設計層トポロジを示しています。OSAの設計層トポロジ

データ層

デプロイされたパイプラインは、YARNまたはSparkクラスタで実行されます。十分な予備容量がある場合、既存のYARN/Sparkクラスタを使用できます。

サイズ設定のガイドライン

GGSAパイプラインを実行するには、次のサイズ設定ガイドラインを使用します。パイプラインが共有記憶域にデプロイされていることを確認して、YARN/Sparkクラスタ内のすべてのノードからパイプライン・コードとライブラリにアクセスできるようにします。GGSAは共有記憶域に対してNFSをサポートしていますが、HDFSを使用する場合は、さらに2つのノードがハードウェアに必要です。
    • HDFSクラスタ(HDFS名の2つのインスタンスとデータ・ノード)の実行に対して、4つ以上のコア、16GB以上のRAMおよび500GBのローカル・ディスクを備えた2つのノード。
Spark層は作業を行うところで、Sparkクラスタ・サイズは次のものに依存します
  • 同時に実行されるパイプラインの数
  • 各パイプラインのロジック
  • 必要な並列度

ストリーミング・パイプラインごとに、必要な並列度に基づいて、コア数とメモリー容量が計算されます。たとえば、ダイレクト収集を使用して、顧客の、3つのパーティションを持つKafkaトピックTからデータを取り込むパイプラインについて考えてみます。ダイレクト収集では、Sparkレシーバは使用されません。この場合、最適なパフォーマンスを得るために実行する必要があるプロセスの最小数は、1つのSparkドライバ・プロセス + 3つのエグゼキュータ・プロセス(Kafkaトピックのパーティションごとに1つ)です。各エグゼキュータ・プロセスには、最低2コアが必要です。

パイプラインのコアの数は、次のように計算できます

-- executor-cores = 1 + エグゼキュータ数 * 2

JMSのようにレシーバ・ベースの収集の場合は、次のように計算されます

-- executor-cores = 2 + エグゼキュータ数 * 2

これは、詳細なスケジューリングが利用できない場合の、大まかな見積りおよび環境です。Kubernetesなどの環境では、より詳細なスケジューリングを使用できます。

メモリー・サイズを設定する式

(ウィンドウ数 * 平均ウィンドウ範囲 * イベント率 * イベント・サイズ) + (キャッシュされている検索/参照オブジェクトの数 * 検索オブジェクトのサイズ)。

次の図は、GGSAのデータ層トポロジを示しています。OSAのデータ層トポロジ

本番用ではなく、POC用のGGSAを検討している場合は、次の構成を使用できます:

設計層

  • 1つのJettyインスタンスを、32GB以上のRAMを備えた4コア以上の1ノードで実行。
  • メタデータ・ストア用に1つのMySQL/Oracleインスタンスを、16GB以上のRAMを備えた4コア以上の1ノードで実行。
  • Kafkaクラスタの1つのノードを、16GB以上のRAMを備えた4コア以上の1ノードで実行。

ノート:

これは、GGSAの内部使用専用でインタラクティブなパイプライン設計に対応する、個別のKafkaクラスタです。

データ層

  • 1つのHadoop分散ファイル・システム(HDFS)クラスタ・ノードを、16GB以上のRAMを備えた4コア以上の物理ノードで実行。
  • YARN/Sparkクラスタの2つのノードを、それぞれ16GB以上のRAMを備えた4コア以上の各物理ノードで実行。

開発モード構成

設計層

  • 1つのJettyインスタンス、1つのMySQL DBインスタンス、および1つのKafka+ZooKeeperインスタンスに対して、4つ以上のコアと16GB以上のRAMを備えた1つのノード

データ層

  • 1つのHDFSインスタンスおよび1つのYARN/Sparkインスタンスに対して、4つ以上のコアと16GB以上のRAMを備えた1つのノード。