BT

Neha Narkhede氏が語る - Apache Kafkaを使用した大規模ストリーム処理

| 作者: Ralph Winzinger フォローする 0 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2016年8月8日. 推定読書時間: 3 分 |

原文(投稿日:2016/06/19)へのリンク

QCon New York 2016で行われたプレゼンテーション“Large-Scale Stream Processing with Apache Kafka”の中で,Neha Narkhede氏は,ストリーミングデータを処理するKafkaの新機能であるKafka Streamを紹介した。アンバウンドなデータが多く見られるようになったことにより,ストリーミング処理は一般的なものになった,とNarkhede氏は言う。マシンラーニングの例でも見られるように,もはやニッチな問題ではないのだ。

Narkhede氏の講演は,データを扱う上での基本的なプログラミングパラダイムの紹介から始まった。

  • 要求/応答サイクル
  • バッチ処理
  • ストリーム処理

続いてリテールの領域から,ストリーミング処理に関する実例を紹介した。販売と出荷は基本的にアンバウンドなデータセットであり,このようなデータセットは効率的にストリーミング処理することができる。販売と出荷は,イベント(“何が起きたか”)のストリームと,これらイベントに基づいた価格の再計算機能(“何かを行う”)というストリーム処理なのだ。

 

次のNarkhede氏は,ストリーム処理を考える上で今日の開発者に許されている,2つの主要な選択肢について言及した。ひとつはDo-It-Yourselfアプローチである。これは単純なシナリオには有効かも知れないが,オーダリングやスケーラビリティ,フォールトトレランス,あるいは過去データといった処理の複雑性には対処できない。第2に開発者が選択できるのは,SparkやSamzaといった,主にMapReduceを用いたヘビーウェイトなソリューションの採用だ。しかしながら,ストリーム処理はMapReduceよりもイベントベースのマイクロサービスに近い,というのが氏の意見であり,これがKafka Streamsを開発した理由ともなっている。

Kafka Streamsは,パッケージングやデプロイメント上の制約なく,アプリケーションに組み込み可能な軽量ライブラである。続いてNarkhede氏は,ストリーム処理システムの重要な機能がKafka Streamsでどのように実現されているのか,その概要を説明した。

  • イベントログをパーティショニングすることで,スケーラビリティは自然に実現される。すなわち,Kafka Streamsベースのアプリケーションは,クラスタを形成することが可能なのだ。ユーザ向けライブラリには並列データ処理の支援もある。
  • フォールトトレランスも最初から提供されている。Kafka Streamのクラスタにはマスタがなく,すべて対等だ。ローカル状態はある程度キャッシュされているので,ノードが停止した場合でも,データ処理は単に別のノードにシフトすることができる。
  • ジョインやウィンドウ演算で必要とされるような,ステートフルな処理もサポートする。このような場合には,必要なデータがプロセッサにプッシュされることで,リモートアクセスの発生を回避している。
  • 新たなコンシューマがオフセット0で(先頭から)イベント処理を開始することによって,ビジネスロジック変更によるデータの再処理をサポートする。

 

Narkhede氏は次に,所定の機能を実装する上での基本的概念として,Kafka Streamsの二重性を紹介している。これは基本的に,テーブル(“現在の状態”)の概念と,ストリーム(“状態がどのように進化したか”)を組み合わせたものだ。従ってKafka Streamsベースのアプリケーションでは,リアクティブとステートフルの並立が可能になる。2つの概念を備えることは,結果としてアーキテクチャの簡素化にも寄与する。

Neha Narkhede氏は最後に,データベースやHadoop,Elastic Searchといったシステムと結合することで,Kafkaとデータ入出力を行なうサブプロジェクトであるKafka Connectについても簡単に説明して,自身の講演を終えている。

なお,カンファレンス終了後の数週間で無償公開されるのは,QConのプレゼンテーションの一部である点について了承頂きたい。

 
 

この記事を評価

関連性
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT