Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Apache Kafka for HDInsight (public preview) (1)

Microsoft Japan Data Platform Tech Sales Team

高木 英朗

分散型のストリーミングプラットフォームとして人気の Apache Kafka が Microsoft Azure の Hdinsight に Kafka for HDInsight としてリリースされました。 本記事の投稿時点 (2017/01/23) ではパブリックプレビュー版となります。

HDInsight については以下をご参照ください。

  • Microsoft Azure の Hadoop ディストリビューション HDInsight を使ってみよう! (1)
  • Microsoft Azure の Hadoop ディストリビューション HDInsight を使ってみよう! (2)
  • HDInsight にデータを取り込む方法

Apache Kafka とは?
Apache Kafka はリアルタイム アプリケーションなどによって生成される非常に大量のデータを処理するための、オープンソースの分散ストリーミングプラットフォームです。Pub/Sub 型のメッセージングモデルで、名前付きデータストリームの公開および購読ができる、メッセージブローカーを提供しています。

Kafka には 4 つのコア API があります。

  • Producer API: トピックにストリームデータを配信
  • Consumer API: トピックからストリームデータを購読
  • Streams API: Spark Streaming や Storm などを使用せずにリアルタイムのストリーム処理(加工や変換等)を実行
  • Connector API: 他のデータソース(RDBMS 等)に接続してデータをやり取り


From

トピック
Kafka は「トピック」というストリームデータのカテゴリごとに送受信します。トピックはクラスタ内でパーティション化されます。パーティション数はトピック作成時に指定することができます。Producer によってレコードが書き込まれると、パーティションの後ろに追記していきます。パーティションをノード間で複製することでフォールト トレランスを実現することができます。各パーティション内でそれぞれシーケンス番号がふられて順序が保たれています。Producer はトピック内のどのパーティションにレコードを書くかを Round-Robin やレコード内の Key に基づいた関数に従って選択することができます。
Kafka は一般的なメッセージキューと異なり、Consumer によってレコードが読まれたからといってレコードは削除されず、Retention period に従って維持されます。


From

パーティションと負荷分散
パーティションは負荷分散のための重要な機能です。Kafka は複数の Consumer 間でトピックの読み取りの負荷分散が可能です。Consumer Group と呼ばれるラベルを振り、同じグループを使用する 複数の Consumer で読み取りの負荷分散を実現します。Consumer はパーティション単位で読み取るため、Consumer Group にはパーティション数以上の Consumer を含めることはできません。トピック内の 1 つの パーティションにつき、Consumer Group 内の 1 つの Consumer が担当するような構成をとります。

From

レコードの順序はパーティション内のみで保証されますが、パーティション間では保証されません。
Producer からのレコード書き込み時に分散方式に Key を指定することで、同じ Key を同じパーティションに書き込むことが可能なため、この仕組みを利用して対応すると良いでしょう。もし、レコード全体で順序保証したい場合はパーティションを分割せずに利用する必要があります。

Kafka for HDInsight
Kafka for HDInsight は Apache Kafka を HDInsight に機能追加したものです。HDInsight により、管理された、拡張性の高い、高可用性の Kafka サービスを Microsoft Azure 上で使用することが可能です。

From

大規模システムで実績豊富な Kafka が HDInsight に登場したことで、様々な OSS 分析基盤との連携がしやすくなり、よりデータ活用の幅が広がります。Kafka を実際に導入している企業はこちらから参照することができます。

次回は実際に Kafka for HDInsight をデプロイして動かす方法についてご紹介します。

関連記事

  • Microsoft Azure の Hadoop ディストリビューション HDInsight を使ってみよう! (1)
  • Microsoft Azure の Hadoop ディストリビューション HDInsight を使ってみよう! (2)
  • HDInsight にデータを取り込む方法
  • [Microsoft Tech Summit (11/1-2) ] (DAT011) “HDInsight + Spark + R を活用した機械学習のためのスケーラブルなビッグデータ分析基盤” セッションフォローアップ

Share the post

Apache Kafka for HDInsight (public preview) (1)

×

Subscribe to Msdn Blogs | Get The Latest Information, Insights, Announcements, And News From Microsoft Experts And Developers In The Msdn Blogs.

Get updates delivered right to your inbox!

Thank you for your subscription

×