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がハッキングされる

推薦する

ザックはリン・シゲのゲストとしてSEOに関する質問に答えました

中国語 SEO の分野では、Zac の名前は非常に優れているため、彼を紹介するのにこれ以上言葉を無駄...

Kubernetes ネットワークの 4 つのシナリオの分析

この記事では、コンテナ間、Pod 間、Pod からサービス、外部から内部の 4 つのシナリオにおける...

成都での「クラウド+AI」のインテリジェント衝突、ゲストの感想を聞いてみましょう。

デジタル化の波の中で、企業はどのように機会を捉え、真にニーズを満たす変革とアップグレードの方法を見つ...

shuhost: 香港サーバーが20%割引、最低326元、E3-1230v2/16gメモリ/1tハードディスク/30M帯域幅、Huawei CN2など。

Shuhost は年末に香港データセンターの独立サーバーを 20% 割引で提供しており、香港の独立サ...

ウェブサイトの掲載は実際にランキングを下げるのでしょうか?

ウェブマスターは、自分のウェブサイトにできるだけ多くの項目を含めるという目標を追求しています。それは...

Googleの.searchやその他のトップレベルドメインの申請は業界団体から反対された

北京時間3月20日朝のニュースによると、大手インターネット企業による新しいトップレベルドメイン名の競...

結婚・出会い系サイトは共同で変革を模索:オフラインプラットフォームへの反撃とアップグレード

文/張南5年前、出会い系サイトがインターネットが伝統的な産業をどのように変えたかのモデルになったとす...

電子商取引戦争再び:価格戦争は「保護色」

6月18日、JD.comは創立14周年を記念して今年最大のプロモーションを開始し、価格戦争を仕掛ける...

Kubernetes Pod のトラブルシューティングをマスターする: 高度な戦略とシナリオ

Kubernetes (K8s) のデプロイメントでは、ポッド、サービス、イングレス、応答しないクラ...

検索エンジンがウェブサイトをランク付けし、フレンドリーさを確立する方法を説明する

現在、SEO 業界に参入するほとんどの人は、検索エンジンのランキング ルールをあまり理解していません...

観光業界の様々なチャネルでの広告データの参考に!

業種:観光事業製品:観光ファン、観光企業向けオンライン相談配信チャネル:百度検索、百度情報フロー、今...

Weibo ブランドアカウント ソーシャルマーケティングハンドブック

2020年でもWeiboを使うべきでしょうか?ブランドブルーVが登場したとき、私たちは新しいチャネル...

安定した VPS の推奨: ServerHub / SSD ハードドライブ / Phoenix データセンター

ServerHub は、ドメイン名登録、仮想ホスティング、VPS、サーバーレンタルなど、さまざまなサ...

Canalys:中国のクラウドサービス支出は2021年第1四半期に60億ドルに達した

市場調査会社Canalysが発表した最新データによると、中国のクラウドインフラサービス支出は2021...

企業のウェブサイトはホームページのキーワードランキングにもっと注意を払っているようだ

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています企業のウェ...