Apache Storm 0.10.0-beta リリースの簡単な分析: Heron を狙う

Apache Storm 0.10.0-beta リリースの簡単な分析: Heron を狙う

Storm のリリース バージョンを簡単に分析する前に、まず Storm のバージョン番号について不満を述べておきます。私は Storm がまだ Twitter のオープンソース プロジェクトだった頃、バージョン 0.8.0 から Storm を使い始めました。Storm の古参ユーザーとして、Storm が新しいバージョンをリリースしたのを見て、いくつか考えました。 2013 年に Apache が Storm を引き継いで以来、バージョン番号のリリースは以前のスタイルで継続されています。はっきり言って、何年もみんなが楽しみにしているのに、バージョンがまだ「1」を超えていないんです。

Storm 0.10.0-beta の簡単な分析

//順序は公式サイトの要点に準じ、翻訳+個人的意見

1. クラスター セキュリティとマルチユーザー スケジュールの展開。

まずは公式サイトに記載されているポイントを列挙してみましょう。

  • 自動認証プッシュと更新を備えた Kerberos 認証

  • プラグ可能な認証と ACL

  • ユーザーごとの分離と構成可能なリソース制限を備えたマルチテナント スケジューリング。

  • ユーザーのなりすまし

  • Storm UI、ログ ビューア、DRPC (分散リモート プロシージャ コール) の SSL サポート

  • 他の Hadoop プロジェクト (ZooKeeper、HDFS、HBase など) との安全な統合

  • ユーザーの分離 (Storm トポロジは、それを送信したユーザーとして実行されます)

Storm の初期の設計では、システムのセキュリティは考慮されていませんでした。

実際、ほとんどのオープンソース ソフトウェアの開発プロセスは似ています。初期の開発は、間違いなく機能とパフォーマンスに基づいています。開発の特定の段階に達すると、システムのセキュリティが考慮されるようになります。現在、Storm の開発とリアルタイムのビジネス ニーズの高まりにより、実際のクラスターの展開が増加し、セキュリティ要件も高まっています。

今回のセキュリティサポートでは、Stormコミュニティに加え、Yahoo、Symantec、Hortonworksが大きな貢献を果たしました。

主な変更点:

  • (1)Kerberos認証メカニズムを自動的に更新する。

  • (2)プラグイン可能なアクセス許可およびアクセス制御メカニズム

  • (3)マルチユーザースケジューリングをサポートし、異なるユーザーにリソースを柔軟に割り当てることができます。 // これは集中型リソーススケジューリングの方向に近いです。

  • (4)マルチユーザースケジューリングをシミュレートする。

  • (5)UIの改善、SSLプロトコルログビューアとDRPCページ監視のサポート。

  • (6)Zookeeper、Hbase、HDFSなど、主にセキュリティの観点からHadoopエコシステムとの統合を最適化しました。//ビッグデータプラットフォームの統合とStormの推進により、ますます多くのHadoopエコシステムコンポーネントが統合されます。

  • (7)複数ユーザの分離、つまり各ユーザは自分で提出したトポロジタスクを操作できる。 // 実際には、複数ユーザを導入する際にはこれをサポートする必要がある。

要約:

セキュリティに関しては、あまり語れません。一般企業にとって、この点は優先度が高くないのではないかと思います。

マルチユーザー スケジューリングのサポートとリソース管理の最適化に重点が置かれています。Hadoop 2.0 以降、集中型リソース管理は常にホットな話題となっているため、この点での Storm の最適化は期待に値します。

2. バージョンアップと継続的な改善の最適化

これまで、Storm のアップグレードでは、トポロジの変更、トポロジの再展開など、多くの問題が発生することがよくありました。その理由は、異なるバージョン間ではデータ構造が異なることが多いためです。したがって、アップグレード プロセスは完全に下位互換性のあるプロセスではありません。

Storm 0.10.0 から、バージョン アップグレードが大幅に最適化されます。トポロジ タスクを停止せずにアップグレードすることもでき、プロセス全体を自動化できます。

要約:

Storm の実際の展開ノードが増えると、必然的にバージョンアップに直面することになるため、この改善は、ユーザーのその後の継続的な使用に対する大きなテストとなるため、非常に重要です。

3. タスクとトポロジの展開の改善と最適化

Storm に詳しい方は、トポロジ タスクの展開では、トポロジが変更された場合、コードを再コンパイルする必要があることが多いことをご存知かもしれません。展開されたトポロジが大きい場合、これは大きな影響を与える可能性があります。

新しい改善の方向性としては、外部構成ファイルを通じてトポロジ レイアウトと関連する構成を定義することが期待されています。

まず、公式ウェブサイトの改善点をリストします。

  • トポロジーコードに構成を埋め込むことなく、Storm トポロジー (Storm コアと Micro-batch API の両方) を簡単に構成および展開できます。

  • 既存のトポロジーコードのサポート

  • 柔軟な YAML DSL を使用して Storm Core API (Spouts/Bolts) を定義する

  • ほとんどの Storm コンポーネント (storm-kafka、storm-hdfs、storm-hbase など) に対する YAML DSL サポート

  • 多言語コンポーネントの便利なサポート

  • 構成/環境を簡単に切り替えるための外部プロパティの置換/フィルタリング(Maven スタイルの ${variable.name} 置換に類似)

主な変更点:

  • (1)トポロジの構成と展開を最適化し、コードからトポロジ関連のコンテンツを削除する。

  • (2)既存のトポロジエンコーディングを引き続きサポートします。 // 下位互換性

  • (3) 柔軟な YAML DSL を使用して Spout と Bolt を定義します。// 率直に言えば、トポロジ構築を最適化することです。

  • (4) storm-kafka、storm-hbase、storm-hdfsなどの既存のインターフェースも引き続きサポートしています。// 下位互換性はありますが、詳細は不明です。

  • (5)多言語コンポーネントのサポート; // 以前は多言語をサポートすると謳われていましたが、実際にはPythonとJava以外の言語で開発するのはまだかなり困難です。

  • (6)Mavenの${variable name}置換と同様に、設定環境間の切り替えをサポートします。

要約:

一部の下位互換性の問題については、バージョンアップグレードでサポートされるはずの機能であるため、詳細には触れません。

焦点はトポロジの革命的な変化にあります。実際、Storm 0.10.0では、このトポロジを含め、柔軟性の面で大きな進歩を遂げていることがわかります。

4. 新しいグループ化戦略を提供する: ローカルキーワードグループ化

既存の Storm グループ化戦略はバージョン 0.8 以降変更されていません。現在、新しいグループ化戦略であるローカル キーワード グループ化戦略が導入されています。

ローカル キーワード グループ化はフィールド グループ化と同じです。違いは、下流のボルトの負荷を考慮し、残りのリソースをより有効に活用し、ノード間の負荷分散を実現しようとすることです。

要約:

このことから、Storm は柔軟性だけでなく、リソースのスケジュール設定においても革新的な改善を実現していることがわかります。

5. ログフレームワークを最適化

分散プログラムのデバッグは難しい作業です。通常、プログラムによって生成されたログ ファイルという 1 つの主要な情報源を通じてデバッグを分析します。

しかし、これは矛盾も生じます。Storm はリアルタイム アーキテクチャ システムであり、ログ記録レベルの制御が困難です。ログが多すぎるとディスクが簡単に圧倒され、ログが少なすぎると問題を見つけるのが難しくなります。

Storm 0.10.0 では、スループットが高くレイテンシが低いログ記録アーキテクチャである log4j v2 が使用されました。リソースをより効率的に使用し、ビジネス ロジックを簡単に追跡できます。

同様に、E テキストの要点は次のとおりです。

  • サイズ、期間、日付ベースのトリガーを組み合わせ可能なローリングログファイル

  • ログメッセージを削除せずにログ構成を動的に更新

  • JMX によるリモート ログ監視と (再) 構成

  • Syslog/RFC-5424 準拠のアペンダー。

  • syslog-ngなどのログアグリゲータとの統合

主なポイント:

  • (1)ログファイルのサイズ、時刻、日付を組み合わせてログローリングをトリガーする。

  • (2)ログデータを失うことなくログ設定を動的に変更する。

  • (3)ログのリモート監視とJMXのリモート設定をサポートする。

  • (4)RFC-5424プロトコルをサポートする。

  • (5)Syslog-ngの統合とログ集約のサポート;将来的には、syslog-ngがsyslogを完全に置き換える可能性が非常に高いが、検証には時間がかかるだろう。

要約:

ログに関しては、特に言うことはありません。既存のログで十分であり、問​​題はほとんどありません。もちろん、より良いサポートと最適化があれば素晴らしいと思います。

6. Hiveデータアクセスのサポート

この機能は 0.13 で導入され、Hive から Storm へのデータにアクセスするための API と、Hive からデータを取得するための API が提供され、Storm から Hive へのデータ転送プロセスがより合理的かつ便利になります。データがソースで送信されると、Hive でクエリを実行できます。

Storm と Hive の統合を実現し、マイクロバッチ処理とトランザクション処理で Hive をサポートします。

要約:

これは、ビッグデータ プラットフォームの統合と、Storm と Hadoop エコシステムのさらなる統合における改善です。

7. Microsoft Azure Event Hubs の統合

Azure クラウド コンピューティング プラットフォームは Storm の展開と実行をサポートしていますが、これについては詳しく説明しません。 Storm の影響力は拡大しており、多くのクラウド プラットフォームが Storm と「結婚」する取り組みを始めているとしか言いようがありません。

8. Redisのサポート

Hadoop エコシステムに加えて、Storm は人気の Nosql の統合も開始しました。他のコンポーネントのサポートと同様に、いくつかのユースケースが提供されており、これも Storm 統合の傾向です。

9. JDBC/RDBMS統合

Storm 0.10.0 は、非常に柔軟でカスタマイズ可能な統合をサポートし、ほぼすべてのタイプの JDBC と互換性があります。トポロジ タプル データとデータベース データがトポロジ内で柔軟にやり取りすることも可能になります。

要約:

Hadoopが普及する以前は、Stormのデータ格納方法は実は非常に単調でした。Stormで処理したデータをデータベースに格納するのが主流の手法でした。そのため、この点での最適化によって、多くの歴史的課題が解決されたと言えます。

10. 依存関係の競合の最適化

簡単に要約すると、Storm の以前のバージョンでは、依存関係のバージョン競合が頻繁に発生していました。 Storm 0.10.0 では、この点が最適化されました。さて、これはもう 1 つの歴史的な問題であり、Storm がさらに標準化されていることを示しています。

まとめると

Twitter が Heron をリリースした数日後、Apache は Storm 0.10.0 をリリースしました。これは非常にタイムリーなリリースでした。

それもそのはず。Heron は破壊的なデザインで知られています。まだオープンソースではないし、Storm がリアルタイムデータ処理分野の半分を占めているにもかかわらず、危機感は残っています。

さて、本題に戻って私の考えを共有しましょう。

(1)ビッグデータプラットフォームの統一・統合の動向

私は以前、「DT 時代の変化についての考察」という記事の中で、「ビッグデータの発展を支える中核はデータ プラットフォームです」と述べました。

Hadoop の大規模オフラインデータ処理技術が成熟するにつれて、リアルタイムビジネスに対する需要が徐々に高まっており、これが Storm が急速に発展できた理由の 1 つです。

現在普及しているリアルタイム処理プラットフォームとHadoopエコシステムプラットフォームは方向性が異なり、論理的にも分離されています。

ビッグデータ処理に対する要求が多様化するにつれ、異なるプラットフォーム間でデータを循環させることが急務となっています。

現在、Storm の現在のバージョンの Hive と redis のサポートであれ、以前の HDFS、Hbase、Zookeeper などのサポートであれ、これらはすべてデータ プラットフォームを統合するための Storm の取り組みです。

ビッグデータプラットフォームにおいては、リアルタイム処理、Hadoopに代表されるオフラインバッチ処理、Nosqlストレージなど、プラットフォームの統一的な統合がトレンドとなるでしょう。

(2)資源の集中管理

Storm では、リソース トポロジ タスクのリソース割り当てに常に欠陥がありました。 Hadoop 2.0 のリリースにより、Hadoop リソースは Yarn によって統一的に管理されるようになり、分散面でのリソース管理の最適化のトレンドが始まりました。

追記:翻訳に誤りや個人的な意見がありましたら、遠慮なく訂正してください。

出典: Blogworm による寄稿、オリジナルリンク。


元のタイトル: Apache Storm 0.10.0-beta リリースの簡単な分析: Heron を狙う

キーワード: Apache

<<:  Seagate Personal Cloud: ホーム NAS ソリューション

>>:  オンラインパスワードマネージャーLastPassがハッキングされる

推薦する

Amazon Web Services、量子コンピューティングハードウェアの開発を支援するオープンソースソフトウェアPalaceをリリース

最近、Amazon Web Services は、量子コンピューティング ハードウェアの開発を支援す...

WeChat Moments マーケティングをうまく行いたいなら、次の 7 つのポイントに注意する必要があります。

WeChat Momentsには毎日大量のアップデートがあり、すべてをスクロールするのは不可能です。...

ウェブサイトのキーワード停滞に対する解決策

最適化を行う人は、キーワードの停滞の影響を受けます。記事を更新したり、外部リンクを公開したり、リンク...

CrownCloud-1g メモリ/KVM/Phoenix/月額 5 ドル/Win

crowncloud は、ロサンゼルスで 2GB のメモリを搭載した KVM、フェニックスで 1GB...

APC は仮想化時代のデータセンターの課題を解決します

IT テクノロジーの継続的な更新に伴い、データセンターの変革も進行中です。その中で最も重要な特徴の ...

AIGCシステムの導入により、企業のクラウドアーキテクチャが変化する可能性がある

クラウド アーキテクチャを構築し、高性能 AI システムも設計している場合、何を変える必要があります...

ブランドマーケティング: 一般的な消費者心理 15 項目とそれに対応するマーケティング戦略

消費者心理にはさまざまな種類があり、インターネット上の多くの記事でも関連する説明が提供されていますが...

クラウドとデータセンター インフラストラクチャの将来: 4 つの主要なトレンドとパブリック クラウド支出の役割

クラウド コンピューティングへの傾向とパブリック クラウドへの支出の増加により、ビジネスの形が変化し...

モバイルゲーム市場は正式にストック時代に入った

コア要約: 2018年、中国のモバイルゲーム市場は上昇傾向を維持し、市場規模は1,646.1億元で前...

クラウド革命が2021年にイノベーションを加速させる方法

過去 1 年間、クラウド コンピューティングは、組織が新型コロナウイルス感染症のパンデミックによるビ...

MissFreshとDingdong Maicaiが米国の生鮮食品市場で氷と炎の戦いを繰り広げる

6月9日、鼎東麦菜は正式にニューヨーク証券取引所に上場申請書を提出し、同日、ミスフレッシュもナスダッ...

外部リンク損失率が高い理由と解決策

SEO の最適化とプロモーションにおいて、外部リンクはウェブサイト全体の重みとキーワードのランキング...

Sina Weiboのマーケティング手法と手順

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeibo はコミュニケ...

誰もがクラウド ネイティブについて話していますが、クラウド ネイティブとは正確には何でしょうか?

ほとんどの定義によれば、クラウド ネイティブとは、クラウドベースのサービスと配信モデルを最大限に活用...