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 には次のデフォルト要件があります。
- default.replication.factor = 3 の場合は、トピック内のパーティションとレプリカの数が少なくとも 3 つであることを示します。 設定するレプリカの数を少なくすると、データ損失のリスクが高まります。
- min.insync.replicas = 2 の場合は、プロデューサが ack をすべて (-1) に設定する必要がある場合、一度に少なくとも 2 つのレプリカを書き込むことに成功したと見なされます。
ローカルディスクの破損が発生すると、E-MapReduce は以下を実行します。
- ブローカー構成から不正ディスクを削除し、Broker を再起動して、損失したデータを他の使用可能なローカルディスク上の不正ディスクから復元します。 データの復元にかかる時間は、破損したディスクに書き込まれたデータの量によって異なります。
- 破損したマシンディスクの数が 20% を超えると、E-MapReduce が率先してマシンを移行し、異常なディスクを復元します。
- 破損したディスク上の損失したデータを復元するのに十分なディスク容量が現在のマシンにない場合、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 コアの数と同じです。 |