Apache Flink vs Spark – 一方が他方を追い越すか?

Last Updated: 2021 年 1 月 25 日

Apache Spark と Apache Flink はどちらもオープン ソースの分散処理フレームワークで、高速データ処理における Hadoop Mapreduce の待ち時間を短縮するために構築されたものです。 Apache Flink が Spark を置き換えるのか、それともこれら両方のビッグ データ テクノロジーが共存して、フォールト トレラントで高速なデータ処理という同様のニーズに応えることができるのか、よく誤解されることがあります。 Apache SparkとFlinkは、どちらも使ったことがなくHadoopしか知らない人にとっては似たようなものに見えるかもしれませんし、Apache Flinkの開発がほとんど余計なものだと感じるのは明らかでしょう。 しかしFlinkは、Apache Sparkのバッチ処理では不可能な、何行にもわたるデータをリアルタイムに処理するストリーム処理機能を備えているため、この分野で優位に立つことができたのです。 IBM の調査によると、私たちは毎日約 2.5 兆バイトのデータを作成しており、このデータ生成の速度は前例のないペースで増加し続けています。 別の見方をすれば、World Wide Webが一般に公開されてから20年以上経っているにもかかわらず、この世界に存在するすべてのデータの約90%が、ここ2年間に作成されたことになります。 インターネットが発展するにつれ、ユーザーの数も増え、コンテンツへの要求も高まり、この10年でWeb2.0への道が開かれました。 それは、ユーザーがインターネット上で独自のデータを作成することが許され、データに飢えたオーディエンスに消費される準備が整った初めてのケースでした

その後、ソーシャルメディアが私たちの生活に侵入する番が来ました。 wersm (we are social media) のレポートによると、Facebook は 1 分間に 400 万以上の「いいね!」を獲得しています。 他の一般的なソースによって生成されたデータについては、このデータがどのように消費されるかを見る前に、インフォグラフィック (同じ wersm の調査から引用) で触れています。

ビッグ データ実データと数値インフォグラフィック

「これらの膨大な量のデータをどのようにして保存するか」ということは、過去 10 年間ほとんど技術オタクの頭を悩ませてきた課題でした。 ソーシャルメディアの突然の台頭も、彼らのタスクを簡単にはしてくれませんでした。 しかし、クラウドコンピューティングのような新時代のストレージソリューションが業界に革命を起こし、最適な解決策を提示しました。 この10年間で、問題意識は「膨大な量のデータをどうするか」ということに移っています。 データ分析が究極の目標として浮上しましたが、その前に、さまざまなソースで異なるフォーマットで保存されたデータを統合し、処理と分析のために準備するために多くの作業を行う必要があり、これは大変な作業となります。

ビッグ データ企業の完全なリストとその給与については、ここをクリックしてください。

Apache Spark と Apache Flink という今日の 2 つのトピックでは、この質問とその他の質問に答えようと試みます。 Scala、Java、R、および Python で書かれており、プログラマーに、フォールトトレラントで読み取り専用の分散データ項目のマルチセット上に構築されたアプリケーション プログラミング インターフェイス (API) を提供します。 2014年5月のリリースから2年という短期間で、そのスピード、使いやすさ、高度な分析要件への対応力により、リアルタイム、インメモリ、高度な分析に広く受け入れられています。

Apache Spark Training Online

ビッグデータのキャリアについての詳細情報をご希望の場合は、このページの上にあるオレンジ色の「情報をリクエストする」ボタンをクリックしてください。 その中でも顕著なものは 本質的に MapReduce を次のレベルに引き上げ、数倍高速なパフォーマンスを実現します。 Spark の主な差別化要因の 1 つは、ディスクに書き戻して再度読み込むのではなく、中間結果をメモリ内に保持する機能です。

  • 使いやすさ – Apache Sparkは、大規模なデータセットで操作するために構築された、使いやすいAPIを持っています。 しかし、他のクラスタ・マネージャやストレージ・プラットフォーム(CassandraやAmazon S3など)と連携し、Hadoopから独立して実行することも可能です。 また、SQLクエリのデータストリーミング、機械学習、グラフ処理などをサポートする高位レベルのライブラリも付属しています。
  • メモリ内データ共有 – 異なるジョブがメモリ内でデータを共有できるため、反復処理、対話処理、イベントストリーム処理タスクに最適です。
  • アクティブで拡大するユーザーコミュニティ – アクティブなユーザーコミュニティにより、最初のリリースから2年以内にSparkの安定リリース(2016年6月)を実現しました。 7560>

    Apache Flink

    ドイツ語で「迅速」または「軽快」を意味する Apache Flink は、Hadoop の古くなった MapReduce を置き換えようとしているビッグ データ分析に焦点を当てたオープン ソース フレームワークのリストへの最新の参入者で、Spark と同様の存在と言えます。 Flinkは2016年3月に最初のAPI安定版をリリースしており、Sparkと同様にバッチデータのインメモリ処理のために構築されています。 このモデルは、同じデータに対して繰り返しパスを実行する必要がある場合に、実に便利です。 そのため、機械学習や、適応学習、自己学習型ネットワークなどを必要とするユースケースに最適なのです。

    Flink の利点

    • 実際のストリーム処理エンジンは、バッチ処理に近似することができ、むしろその逆であることができます。
    • 優れたメモリ管理 – 明示的なメモリ管理により、Spark フレームワークに見られる時折発生するスパイクを取り除くことができます。
    • スピード – 繰り返し処理をクラスタが独立して実行するのではなく、同じノードで実行することにより、より高速なスピードを管理できます。 その性能は、データセット全体ではなく、変更されたデータの部分のみを再処理するように調整することによって、さらに調整することができます。 7560>
    • Less configuration

    Apache Flink vs Spark

    Flink が登場したとき、Apache Spark はすでに世界中の多くの組織で、高速でインメモリのビッグデータ分析要件のための事実上のフレームワークとなっていました。 このため、Flink は余計なものに見えていました。 結局のところ、既存のデータ処理エンジンの審査がまだ終わっていないのに、なぜ別のデータ処理エンジンが必要なのでしょうか? 多くのアナリストは、Flink を「データ分析の 4G」と呼んでいますが、何が Flink を際立たせているのかを観察するには、Flink の機能をより深く掘り下げる必要があります。 カジュアルな議論のためには正しいのですが、Spark は純粋にストリーム処理エンジンではありません。 Ian Pointer氏がInfoWorldの記事’Apache Flink’で述べているように、Sparkは純粋なストリーム処理エンジンではない。 Apache Flink: New Hadoop contender squares off against Spark’というInfoWorldの記事でIan Pointer氏が述べたように、Sparkは本質的に、時間単位で入ってくるデータの一部だけを処理する高速バッチ処理である。 Sparkは、公式ドキュメントでこれを「マイクロバッチ」と呼んでいる。 この問題は、ミリ秒単位の遅延が大きな影響を与えるような低遅延を必要とするユースケース(金融システム)でない限り、運用上、実用的な意味を持つことはないと思われます。

    Flink はバッチ処理を必要とする雑用を実行できるストリーム処理フレームワークであり、低レイテンシ応答を必要とする Apache Storm のようなテクノロジに頼ることなく、両方のモードで同じアルゴリズムを使用するオプションを提供します。

    SparkとFlinkはどちらもメモリ内で反復処理を行うことができます。 スピードに関しては、Flinkは、変更されたデータのみを処理するようにプログラムできるため、優位に立つことができ、Sparkに勝るとも劣らない。

    Growth stories – Spark and Flink

    どんなソフトウェア フレームワークでも、企業が最大の価値を引き出すことができるようにするには、専門的技術以上のものを必要とします。 このセクションでは、Databricks による Apache Spark 2015 Year in Review の記事を掘り下げ、ユーザーと開発者のグローバル コミュニティでどのような成果を上げたかを見ていきます。 この年には4つのリリース(1.3から1.6)があり、それぞれにフレームワークを改善するための何百もの修正が施されました。 私たちの目を引いたのは、貢献する開発者の数の増加です。2014年には500人でしたが、2015年には1000人を超えました また、Sparkで顕著なのは、ユーザーの新バージョンへの移行が容易であることです。 レポートでは、3カ月以内に大半のユーザーが最新リリースに移行していると言及しています。 これらの事実は、最も活発に開発され採用されているオープンソースデータツールとしての評判を高めています。

    Flink は比較的後発ですが、公式サイトの 2015 年度レビューでは、最も完全なオープンソースストリーム処理フレームワークとしてここに留まっている理由が示されています。 FlinkのGithubリポジトリ(Get the Repository – Here)は、2015年にコミュニティが75人のコントリビューターから150人に倍増したことを示しています。 リポジトリのフォークは1年で3倍以上になり、リポジトリの星の数も増えました。 ドイツのベルリンからスタートしたユーザーコミュニティは、大陸を越えて北米やアジアにまで拡大しました。 Flink Forward Conferenceは、Flinkにとってもう一つのマイルストーンとなりました。250人以上の参加者があり、100人以上の参加者が世界中から集まり、Google, MongoDB, Telecom, NFLabs, RedHat, IBM, Huawei, Ericsson, Capital One, Amadeusなどの組織の技術講演に参加したのでした。

    これらの2つのうちの1つを明確な勝者として選ぶのはまだ早いですが、私たちは、多くのフレームワークに同じことをさせるのではなく、新規参入者に異なることをさせて、既存のものと競争させるのではなく、補完することによって、技術界によりよいサービスを提供するという見解を持っています。

    Apache Spark オンライン トレーニング

    PREVIOUS

    NEXT