1. 背景 Apache Flink と Apache Storm は、現在業界で広く使用されている 2 つの分散リアルタイム コンピューティング フレームワークです。その中で、Apache Storm(以下、「Storm」)は、Meituan Dianpingのリアルタイムコンピューティング事業において比較的成熟した形で使用されています。管理プラットフォーム、共通 API、および対応するドキュメントがあります。多数のリアルタイムジョブが Storm に基づいて構築されています。 Apache Storm 参照リンク: http://storm.apache.org/
Apache Flink(以下、「Flink」)は最近注目を集めています。高スループット、低レイテンシ、高信頼性、正確な計算という特徴があり、イベント ウィンドウのサポートも優れています。 Meituan Dianpingのリアルタイムコンピューティング事業にも応用されています。 Apache Flink 参照リンク: https://flink.apache.org/ Flinkフレームワークをより深く理解し、その安定性と信頼性を検証し、リアルタイム処理性能を評価し、システムの欠点を特定し、性能ボトルネックを見つけて最適化し、ユーザーに最も適したリアルタイムコンピューティングエンジンを提供するために、豊富な実用経験を持つStormフレームワークをコントロールとして使用して、Flinkフレームワークのパフォーマンスをテストする一連の実験を実施しました。 「少なくとも 1 回」および「正確に 1 回」のセマンティクスを保証するリアルタイム コンピューティング フレームワークとしての Flink のリソース消費を計算し、リアルタイム コンピューティング プラットフォームのリソース計画、フレームワークの選択、パフォーマンス チューニング、Flink プラットフォームの構築などの決定に対して提案を行い、データ サポートを提供し、その後の SLA 構築に一定のリファレンスを提供します。 FlinkとStormの比較: 2. テストの目的 異なるシナリオと異なるデータ圧力下での 2 つのリアルタイム コンピューティング フレームワーク (Flink と Storm) の現在のパフォーマンスを評価し、詳細なパフォーマンス データを取得して、処理パフォーマンスの限界を見つけます。さまざまな構成が Flink のパフォーマンスにどの程度影響するかを理解し、さまざまな構成の適用可能なシナリオを分析して、チューニングの推奨事項を作成します。 1. テストシナリオ 1) 「入力-出力」のシンプルな処理シナリオ 「入力-出力」などの単純な処理ロジックのシナリオをテストすることで、他の要素の干渉を可能な限り最小限に抑え、2 つのフレームワーク自体のパフォーマンスを反映できます。 同時に、フレームワークの処理能力の限界が測定され、より複雑なロジックを処理するパフォーマンスは純粋な「入出力」よりも高くなりません。 2) ユーザーの操作に時間がかかるシナリオ ユーザーの処理ロジックが複雑になったり、データベースなどの外部コンポーネントにアクセスする場合、実行時間が長くなり、ジョブのパフォーマンスに影響します。そのため、ユーザー ジョブに長い時間がかかるシナリオで 2 つのフレームワークのスケジューリング パフォーマンスをテストしました。 3) ウィンドウ統計シナリオ リアルタイム コンピューティングでは、1 日の 5 分ごとの訪問数、100 件の注文ごとに使用された割引の数など、時間ウィンドウまたはカウント ウィンドウに関する統計を実行する必要があることがよくあります。Flink のウィンドウ サポートは Storm よりも強力で、API もより完全ですが、ウィンドウ統計の一般的なシナリオで 2 つのフレームワークのパフォーマンスを理解することも必要です。 4) 正確な計算シナリオ(つまり、メッセージ配信セマンティクスは「正確に 1 回」) Storm は、「最大 1 回」および「少なくとも 1 回」のメッセージ配信セマンティクスのみを保証できます。つまり、重複送信が発生する可能性があります。 高いデータ精度が求められ、メッセージが重複や欠落なく配信されることが期待されるビジネス シナリオは数多くあります。 Flink は「正確に 1 回」のセマンティクスをサポートしていますが、リソースが制限されている状況では、精度要件が厳しくなるとコストが高くなり、パフォーマンスに影響する可能性があります。 そのため、私たちは、正確なコンピューティング シナリオでのリソース計画のためのデータ参照を提供することを期待して、異なるメッセージ配信セマンティクスの下で 2 つのフレームワークのパフォーマンスをテストしました。 2. パフォーマンス指標 1) スループット
2) レイテンシー
3. テスト環境 Storm および Flink の場合、このテスト用に 1 つのマスター ノードと 2 つのスレーブ ノードで構成されるスタンドアロン クラスターが構築されました。実際の本番環境での Flink のパフォーマンスを観察するために、一部のテスト内容を Yarn 環境でもテストしました。 1. クラスターパラメータ 2. フレームワークパラメータ 4. 試験方法 1. テストプロセス 1) データ生成 データ ジェネレーターは特定のレートでデータを生成し、自動的に増加する ID と eventTime タイムスタンプを使用して Kafka トピック (トピック データ) に書き込みます。 2) データ処理 Storm タスクと Flink タスク (テスト ケースごとに異なります) は、Kafka トピック データの同じオフセットから消費を開始し、結果と対応する inTime および outTime タイムスタンプをそれぞれ 2 つのトピック (Topic Storm と Topic Flink) に書き込みます。 3) 指標統計 メトリック コレクターは、outTime 時間ウィンドウに従って 2 つのトピックからテスト メトリックを収集し、対応するメトリックを 5 分ごとに MySQL テーブルに書き込みます。 Metrics Collector は、outTime に従って 5 分間のローリング時間ウィンドウを取得し、5 分間の平均スループット (出力データの数)、5 分間の遅延の中央値 (outTime - eventTime または outTime - inTime)、および 99 行を計算し、対応する MySQL データ テーブルに書き込みます。最後に、MySQL テーブル内の 99 行の平均スループット、中央値レイテンシ、中央値レイテンシを計算し、グラフを描画して分析します。 2. デフォルトパラメータ
3. テストケース 1) アイデンティティ
アイデンティティフローチャート 2) 睡眠
睡眠フローチャート 3) ウィンドウ付き単語カウント
ウィンドウ付き単語カウントフローチャート 5. テスト結果 ① シングルスレッドスループットの識別 アイデンティティシングルスレッドスループット
② シングルスレッドジョブの遅延の識別 アイデンティティシングルスレッドジョブ遅延
③ 睡眠スループット 睡眠スループット
④ スリープシングルスレッドジョブ遅延(中央値) スリープ シングルスレッド ジョブの遅延 (中央値)
⑤ ウィンドウワードカウントシングルスレッドスループット ウィンドウ付きワードカウント シングルスレッドスループット
⑥ ウィンドウ付きワードカウントFlinkの少なくとも1回と正確に1回のスループット比較 ウィンドウ付きワードカウント Flink の少なくとも 1 回と正確に 1 回のスループット比較
⑦ ウィンドウ付きワードカウントストームの「少なくとも1回」と「最大で1回」のスループット比較 ウィンドウ付きワードカウントストームの「少なくとも 1 回」と「最大で 1 回」のスループット比較
⑧ ウィンドウワードカウント シングルスレッドジョブ遅延 ウィンドウ化されたワードカウント シングルスレッドジョブの遅延
⑨ ウィンドウ付きワードカウントFlinkの「少なくとも1回」と「正確に1回」のレイテンシ比較 ウィンドウ付きワードカウントFlinkの「少なくとも1回」と「正確に1回」のレイテンシ比較
⑩ ウィンドウ付きワードカウントストームの「少なくとも 1 回」と「最大で 1 回」の遅延比較 ウィンドウ付きワードカウントストームの「少なくとも 1 回」と「最大で 1 回」の遅延の比較
⑪ウィンドウ付きワードカウントFlinkスループットの異なるStateBackendsの比較 ウィンドウ付きワードカウント Flink スループットのさまざまな StateBackends の比較
⑫ ウィンドウ付きワードカウント Flink レイテンシの異なる StateBackends の比較 ウィンドウ化された単語カウントFlinkの異なるStateBackendsの遅延効果
VI.結論と提言 1. フレームワーク自体のパフォーマンス ①と⑤のテスト結果から、Stormのシングルスレッドスループットは1秒あたり約87,000レコード、Flinkのシングルスレッドスループットは1秒あたり350,000レコードに達することがわかります。 Flink のスループットは Storm の約 3 ~ 5 倍です。 ②と⑧のテスト結果から、Storm QPSがスループットに近い場合、レイテンシの中央値(Kafkaの読み込みと書き込み時間を含む)は約100ミリ秒、99行で約700ミリ秒であることがわかります。 Flink の平均レイテンシは約 50 ミリ秒で、99 行では約 300 ミリ秒です。フル スループットでの Flink のレイテンシは Storm の約半分であり、QPS が徐々に増加するにつれて、Flink のレイテンシの利点が現れ始めます。 まとめると、Flink フレームワーク自体のパフォーマンスは Storm よりも優れています。 2. 複雑なユーザーロジックがフレームワークの違いを弱める ①と③、②と④のテスト結果を比較すると、1回のBolt Sleepの継続時間が1ミリ秒に達すると、FlinkのレイテンシはStormよりも低いままですが、スループットの優位性は基本的に反映されなくなることがわかります。 したがって、ユーザー ロジックが複雑でテストに時間がかかるほど、そのロジックのテストに反映されるフレームワークの違いは小さくなります。 3. メッセージ配信のセマンティクスの違い ⑥、⑦、⑨、⑩のテスト結果から、Flink Exactly OnceのスループットはAt Least Onceよりも6.3%低く、レイテンシの差は大きくないことがわかります。 Storm At Most Once セマンティクスでのスループットは At Least Once の場合よりも 16.8% 高く、レイテンシはわずかに短縮されます。 Storm は各メッセージに ACK を送信し、Flink はメッセージのバッチに基づいてチェックポイントを実行するため、実装の原則が異なると、2 つの間で At Least Once セマンティクスのコストに大きな差が生じ、パフォーマンスに影響します。 Flink は、アライメント操作を追加するだけで Exactly Once セマンティクスを実装するため、演算子の同時実行性が大きくなく、低速ノードがない場合、Flink のパフォーマンスにほとんど影響はありません。 Storm At Most Once セマンティクスのパフォーマンスは、Flink よりもまだ低いです。 4. Flink状態ストレージバックエンドの選択 Flink は、メモリ、ファイル システム、RocksDB の 3 つの StateBackend を提供します。 ⑪と⑫のテスト結果を組み合わせると、3つの比較は次のようになります。 5. Flinkの使用に推奨されるシナリオ 上記のテスト結果に基づいて、次のリアルタイム コンピューティング シナリオでは Flink フレームワークを使用することをお勧めします。
七。見通し このテストには、まだ詳細にテストされていない内容がいくつかあり、後続のテストで補足する必要があります。例えば:
このテストでは、スループットとレイテンシという 2 つの指標のみが観察されました。システムの信頼性や拡張性などの重要なパフォーマンス指標は統計データ レベルでは考慮されておらず、後で補足する必要があります。 RocksDBStateBackend を使用する場合の Flink のスループットは低いため、さらなる調査と最適化が必要です。 Table API & SQL や CEP などの Flink のより高度な API については、さらなる理解と改善が必要です。 |
>>: Centos7 システムに基づく Pinpoint 分散監視のインストールと展開
1. 新しいことに挑戦しない待って。何?真剣に受け止めてください。ブログを書くたびに、まったく新しい...
2月1日、百度は2013年中国ウェブサイト発展動向レポートを発表し、中国の現在のウェブサイト生態環境...
Cloudcone は、年間 9.9 ドルという低価格で、VPS の定期年間支払いのプロモーションを...
オープンソースソリューションのリーディングプロバイダーであるRed Hat, Inc. (NYSE:...
Baidu 百科事典の権威は Baidu 検索エンジンで高い重みを持つだけでなく、Baidu 百科事...
6月5日、テンセントクラウドと平頂山銀行は戦略的協力協定を締結した。両者は金融テクノロジーなど複数の...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています電子商取引...
現在、クラウドゲームはゲーム業界で最もホットな技術分野の一つと言えます。クラウド コンピューティング...
中国工業情報化部が最近発表した「2018年中国ブロックチェーン産業白書」によると、2018年3月末現...
国内老舗商人KVMLAのDingyou Yearプロモーションが始まりました:[1]日本VPS、香港...
多くのウェブマスターの友人は、「外部リンクが多すぎると、ウェブサイトのランクが下がるのでしょうか?」...
過去1年間で、多くの若者がスマートフォンに長巴アプリをインストールしました。長巴を詳しく紹介する必要...
私たちがよく知るインターネット上の「メールマーケティング」は、スパムが横行するほどに、今では蔓延して...
raksmart香港データセンターのサーバーは現在、月額99ドルという低価格で販売中です。CN2+B...
みなさんこんにちは。私はMuzi Chengzhouです。権威の高いウェブサイトには、新しいウェブサ...