ホーム
Topics
Apache Sparkとは
Apache Kafka(Kafka)は(ストリーミング・プラットフォームの中でも特に)リアルタイムのイベント駆動型のアプリケーションの開発を可能にするオープン・ソースの分散ストリーミング・プラットフォームです。 つまり、どういうことなのでしょうか。
今日、何十億ものデータ・ソースが絶えず、イベント・ストリームなどのデータ・レコードを生成し続けています。 イベントとは、発生したアクションと発生時刻についてのデジタル記録です。 一般的に、イベントは他のアクションをプロセスの一部として駆動させるアクションです。 顧客による注文、フライトの座席の選択、または登録フォームの提出がイベントの例です。 イベントは人に関わるものでなくても構いません。たとえば、特定の時間にネット接続されたサーモスタットが温度を報告することもイベントです。
これらのストリームにより、アプリケーションがリアルタイムに、データまたはイベントに対応する機会を提供します。 ストリーミング・プラットフォームは、正しい発生順序に基づく高レベルの精度と正確性を備え、こうしたストリームを高速で絶えず消費、処理するアプリケーションを、開発者が構築できるようにします。
2011年、LinkedIn社は、独自で使用するために、高スループットのメッセージ・ブローカーとしてKafkaを開発し、その後、Kafkaをオープン・ソース化してApache Software Foundation (ibm.com外部へのリンク)に寄付しました。 今日、Kafkaは、ボリュームが拡大しても、明らかなパフォーマンス・ラグを発生させることはなく、1日に何兆もの記録を取り込み、処理できる、最も広く使用されるストリーミング・プラットフォームへと進化しました。 Target、Microsoft、AirBnB、NetflixなどのFortune 500に掲載されている組織はKafkaを利用し、リアルタイムのデータ駆動型のエクスペリエンスを顧客へ届けています。
Kafkaの詳しい情報については以下のビデオをご覧ください。(9:10)
Kafkaには以下の3つの主要機能があります。
開発者は以下の4つのAPIを介してこれらのKafkaの機能を活用できます。
Kafkaは分散プラットフォームです。複数のサーバー、さらには複数のデータ・センターにまたがる、フォールト・トレラントで可用性の高いクラスターとして実行されます。 Kafkaのトピックは、パフォーマンスに影響を及ぼすことなく、拡大でき、同時に大量のコンシューマーに提供できるように、パーティション化と複製が行われます。 Apacheの組織によると、その結果、「サーバー上の永続ストレージが50 KBであっても50 TBであってもKafkaは機能します。」
Kafkaは、主に以下に挙げるような2つのタイプのアプリケーションを作成するために使用されます。
RabbitMQは、とても人気のあるオープン・ソースのメッセージ・ブローカーで、アプリケーション、システム、およびサービスがメッセージング・プロトコルを内部で変換することで互いに通信することを可能にするミドルウェアの一種です。
Kafkaはメッセージ・ブローカーの一種として始まり(理論上は現在もメッセージ・ブローカーとして使用できます)、RabbitMQは(とりわけ)メッセージング・モデルの公開またはサブスクライブをサポートしているので、KafkaとRabbitMQはしばしば代替品として比較されます。 しかし、この比較は実際にはあまり実用的ではなく、人々は、2つの内のどちらかを選ぶ際のポイントととして、技術上の細かい部分を見ます。 例えば、Kafkaのトピックは複数のサブスクライバーを持てますが、それぞれのRabbitMQメッセージは1つしか持てません。また、Kafkaのトピックは耐性のあるものですが、RabbitMQメッセージは消費されると削除されます。
結論は以下の通りです。
Kafkaは頻繁に、より大きなストリーム処理、イベント駆動型のアーキテクチャー またはビッグ・データ分析のソリューションの一部として、他の複数のApacheのテクノロジーとともに使用されます。
Apache Sparkは、大規模なデータを処理するための分析エンジンです。 Sparkを使って、Apache Kafkaによって配信されるストリーム上で分析を実行し、前述したクリック・ストリーム分析などのリアルタイム・ストリーム処理アプリケーションを生み出します。
Apache NiFiは視覚的なドラッグ・アンド・ドロップ・インターフェースを持つデータ・フロー管理システムです。 NiFiはKafkaのプロデューサーおよびコンシューマーとして実行できるので、Kafkaが対処できないデータ・フローの課題を管理する理想的なツールです。
Apache Flinkは。イベント・ストリーム上で、一貫して高速で、低遅延で、大規模な計算を行うためのエンジンです。 FlinkはKafkaのコンシューマーとしてストリームを取り込み、これらのストリームに基づいて操作をリアルタイムで行い、結果をKafkaまたは別のアプリケーションに公開することができます。
Apache Hadoopは、ビック・データ分析、機械学習、データ・マイニング、およびその他の、構造化データと非構造化データを処理するデータ駆動型のアプリケーションで使用するために、膨大な量のデータをコンピューターのクラスター内で保管することを可能にする分散ソフトウェア・フレームワークです。 Kafkaはしばしば、Hadoopクラスターへのリアルタイム・ストリーミング・データ・パイプラインを作成するのに使用されます。
信頼性の高いさまざまなクラウドで、アプリケーションを安全に構築、モダナイズ、管理します。
ビジネス・ワークフローからIT運用まで、AIを活用した自動化を実現します。
アプリケーション、サービス、データを、市場で最も包括的な統合プラットフォームであるIBM Cloud Pak for Integrationで連携できます。