Ask Learn
Preview
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign inThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Japan Data Platform Tech Sales Team
高木 英朗
分散型のストリーミングプラットフォームとして人気の Apache Kafka が Microsoft Azure の HDInsight に Kafka for HDInsight としてリリースされました。 本記事の投稿時点 (2017/01/23) ではパブリックプレビュー版となります。
HDInsight については以下をご参照ください。
Apache Kafka とは?
Apache Kafka はリアルタイム アプリケーションなどによって生成される非常に大量のデータを処理するための、オープンソースの分散ストリーミングプラットフォームです。Pub/Sub 型のメッセージングモデルで、名前付きデータストリームの公開および購読ができる、メッセージブローカーを提供しています。
Kafka には 4 つのコア API があります。
From <https://kafka.apache.org/intro>
トピック
Kafka は「トピック」というストリームデータのカテゴリごとに送受信します。トピックはクラスタ内でパーティション化されます。パーティション数はトピック作成時に指定することができます。Producer によってレコードが書き込まれると、パーティションの後ろに追記していきます。パーティションをノード間で複製することでフォールト トレランスを実現することができます。各パーティション内でそれぞれシーケンス番号がふられて順序が保たれています。Producer はトピック内のどのパーティションにレコードを書くかを Round-Robin やレコード内の Key に基づいた関数に従って選択することができます。
Kafka は一般的なメッセージキューと異なり、Consumer によってレコードが読まれたからといってレコードは削除されず、Retention period に従って維持されます。
From <https://kafka.apache.org/intro>
パーティションと負荷分散
パーティションは負荷分散のための重要な機能です。Kafka は複数の Consumer 間でトピックの読み取りの負荷分散が可能です。Consumer Group と呼ばれるラベルを振り、同じグループを使用する 複数の Consumer で読み取りの負荷分散を実現します。Consumer はパーティション単位で読み取るため、Consumer Group にはパーティション数以上の Consumer を含めることはできません。トピック内の 1 つの パーティションにつき、Consumer Group 内の 1 つの Consumer が担当するような構成をとります。
From <https://kafka.apache.org/intro>
レコードの順序はパーティション内のみで保証されますが、パーティション間では保証されません。
Producer からのレコード書き込み時に分散方式に Key を指定することで、同じ Key を同じパーティションに書き込むことが可能なため、この仕組みを利用して対応すると良いでしょう。もし、レコード全体で順序保証したい場合はパーティションを分割せずに利用する必要があります。
Kafka for HDInsight
Kafka for HDInsight は Apache Kafka を HDInsight に機能追加したものです。HDInsight により、管理された、拡張性の高い、高可用性の Kafka サービスを Microsoft Azure 上で使用することが可能です。
From <https://azure.microsoft.com/ja-jp/services/hdinsight/apache-kafka/>
大規模システムで実績豊富な Kafka が HDInsight に登場したことで、様々な OSS 分析基盤との連携がしやすくなり、よりデータ活用の幅が広がります。Kafka を実際に導入している企業はこちらから参照することができます。
次回は実際に Kafka for HDInsight をデプロイして動かす方法についてご紹介します。
関連記事
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign in