E-MapReduce 3.4.0 以降は Kafka をサポートしています。

Kafka クラスターの作成

E-MapReduce でクラスターを作成するときは、クラスタータイプを Kafka に設定します。 デフォルトでは、Kafka コンポーネントのみを含むクラスターが作成されます。 コンポーネントには、基本コンポーネントと、Zookeeper、Kafka、および KafkaManager コンポーネントが含まれます。 各ノードにデプロイされる Kafka ブローカーは 1 つのみです。 Hadoop サービスと混合するのではなく、専用の Kafka クラスターを使用することを推奨します。

エフェメラルディスクの Kafka クラスター

単価を削減し、より大きなストレージのニーズに対応するため、E-MapReduce 3.5.1 はローカルディスク上の Kafka クラスター (D1 クラスターモデル) をサポートしています。 詳細はついては、「ECS モデル」をご参照ください。 クラウドディスクと比較した場合、ローカルディスクの Kafka クラスターには次の特徴があります。

  • 高い I/O スループット、190 MB/sの単一ディスクでのシーケンシャルな読み書きパフォーマンス、最大 5 GB/s のストレージ I/O 機能を備えた大容量のローカル SATA HDD ディスク
  • SSD クラウドディスクのコストより 97% 低いローカルストレージのコスト
  • より高いネットワークパフォーマンス (ネットワーク帯域幅のインスタンスが最大 17 Gbit/s)。 これは、ピークビジネスインスタンスのデータインタラクション要件を満たします。
ローカルディスクモデルには、次の機能もあります。
操作 エフェメラルディスクデータのステータス 説明
オペレーティングシステム内での再起動、ECS コンソールでの再起動または強制再起動 保持 ローカルのエフェメラルディスクのストレージ容量は保持されます。 データも保持されます。
オペレーティングシステム内でのシャットダウン、ECS コンソールでの停止または強制停止 保持 ローカルのエフェメラルディスクのストレージ容量は保持されます。 データも保持されます。
コンソールでのリリース (インスタンス) 消去 ローカルのエフェメラルディスクのストレージ容量が消去されます。 データは保持されません。
重要
  • ホストがダウンしているか、ディスクが破損している場合、ディスク上のデータは失われます。
  • ローカルのエフェメラルディスクにビジネスデータを長期間保存しないでください。 データを適宜バックアップし、高可用性アーキテクチャを採用します。 長期保存の場合は、クラウドディスクにデータを保存することを推奨します。

ローカルディスクに Kafka をデプロイできるようにするため、E-MapReduce には次のデフォルト要件があります。

  1. default.replication.factor = 3 の場合は、トピック内のパーティションとレプリカの数が少なくとも 3 つであることを示します。 設定するレプリカの数を少なくすると、データ損失のリスクが高まります。
  2. min.insync.replicas = 2 の場合は、プロデューサが ack をすべて (-1) に設定する必要がある場合、一度に少なくとも 2 つのレプリカを書き込むことに成功したと見なされます。

ローカルディスクの破損が発生すると、E-MapReduce は以下を実行します。

  1. ブローカー構成から不正ディスクを削除し、Broker を再起動して、損失したデータを他の使用可能なローカルディスク上の不正ディスクから復元します。 データの復元にかかる時間は、破損したディスクに書き込まれたデータの量によって異なります。
  2. 破損したマシンディスクの数が 20% を超えると、E-MapReduce が率先してマシンを移行し、異常なディスクを復元します。
  3. 破損したディスク上の損失したデータを復元するのに十分なディスク容量が現在のマシンにない場合、Broker は異常終了します。 この場合は、一部のデータをクリーンアップするか、ディスク領域を解放するか、Broker サービスを再起動することを選択できます。 E-MapReduce でチケットを起票して、マシンの移行や異常なディスクの復元を行うこともできます。

パラメーターの説明

E-MapReduce クラスター構成管理インターフェースで Kafka ソフトウェア構成を確認できます。
設定項目 説明
zookeeper.connect Kafka で構成された Zookeeper 接続アドレス
kafka.heap.opts Kafka ブローカーのヒープメモリのサイズ
num.io.threads Kafka ブローカーの I/O スレッドの数。デフォルトでは、CPU コアの数の 2 倍です。
num.network.threads Kafka ブローカーのネットワークスレッドの数。デフォルトでは、CPU コアの数と同じです。