Apache Flink(アパッチフリンク)。分散ストリーム処理プラットフォームです。バッチ処理にも対応し、耐障害性/拡張性を備えたストリーム処理基盤です。

Apache Flinkとは

Apache Flink(アパッチフリンク)。分散ストリーム処理プラットフォームです。バッチ処理にも対応し、耐障害性/拡張性を備えたストリーム処理基盤です。

基本情報

概要

Apache Flink(アパッチフリンク)とは、分散ストリーム処理プラットフォームです。バッチ処理にも対応し、耐障害性/拡張性を備えたストリーム処理基盤です。

基本説明

Apache Flinkは、ストリーム基盤として「データディストリビューション機能」「通信機能」「データストリームフォールトトレランス機能」「柔軟なAPI連携機能」などを備えています。本体はScalaで実装されています。

「ユーザコードによるメモリ枯渇が発生しない」「ガーベージコレクション削減」「効率的ディスクI/O」「ランタイムチューニング不要」「堅牢」「安定パフォーマンス」「機械学習/グラフ処理ライブラリ」などの特徴があります。

「Apache Spark」との相違点

同様な製品として「Apache Spark」があります。

「Spark」はバッチ処理からストリーム処理に派生したイメージです。それに対して「Flink」はストリーム処理からバッチ処理に派生しています。「Flink」は、耐障害性/ストリーミングを最優先しています。

TOPに戻る

主な特徴

All-in-One構成

Flinkでは同一のランタイムで「ストリーム処理」と「バッチ処理」を実行可能です。「複合イベント処理」「機械学習」「SQLライクAPI」も提供しています。

優れた耐障害性

Flinkは、耐障害性に優れているのが大きな特徴です。各処理をステートフルで扱っており、障害が発生した際には、処理を自動で復旧させる機能を有しています。

Flinkで処理されるイベントは、正確に1回だけ実行する「Exactly-once」ポリシーに基づいて処理されます。

「Chandy-Lamportアルゴリズム」を利用した分散スナップショットにより、高スループットを維持しつつ、耐障害性を実現しています。

高過負荷状態の場合には、イベント処理を中断し、全体がハングアップしないようにするフロー制御機能を有しています。

高パフォーマンス

Yahooが発表したベンチマークによると「Apache Storm」と同等以上の性能を示しています。

イベントタイムサポート

Flinkでは、受信したイベントに対する時間について、「Processing Time(システム時間)」「Event Time(イベントの発生元時間)」「Ingestion Time(イベント取得時間)」の3つの概念で扱えます。

柔軟なAPI

コアAPIとして、ストリーム用「DataStream API」、静的データ用「DataSet API」、SQL発行用「Table API」が用意されています。

オプション(ライブラリ/API)として、複雑なイベント処理用「CEP」、機械学習用「FlinkML」、グラフ操作用「Gelly」も用意されています。

独自のメモリ管理機構

アプリケーションがスケールしても、ガーベージコレクションの影響を回避できるようになっています。

イテレーション機構

機械学習/グラフ処理用に、高速に繰返し計算ができる「イテレーション機構」をサポートしています。

プログラム最適化(バッチ処理)

バッチ処理では、自動で最適化された実行計画を選択します。

他製品との連携

Flinkは、YARN上で動作し、HDFS/Kafka/Hadoop関連のプロダクトと連携できます。

TOPに戻る

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Apache Spark」「Apache Storm」など。

TOPに戻る

ライセンス情報

Apache Flinkのライセンスは「Apache License Version 2」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

TOPに戻る

ダウンロード

ダウンロードページ

TOPに戻る

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

Apache Flink最新TOPICS

最新情報はありません。

Apache Flink最新CLOSEUPコラム

  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter