ツェッペリンアーキテクチャの主成分分析



Zeppelin Architecture Principle Analysis



概要:

  • Zeppelinの全体的なアーキテクチャ分析
  • ツェッペリン-通訳
  • ツェッペリン-注
  • ツェッペリン-段落

3.1、ノートモジュールの概念

ノートブックセクションには、理解する必要のある重要な概念がいくつかあります。



  • ノートブックサーバー:フロントエンドWebページとバックエンドサーバー間のWebsocket接続を確立および維持するために使用されます。実際には、フロントエンドWebページから送信されたNote実行要求を受信して​​処理し、生成して実行するジョブリスナーです。バックエンドの対応するジョブ、およびジョブ実行のステータス情報をすべてのフロントエンドページにブロードキャストします。
  • メッセージ:メッセージクラスは、フロントエンドWebページとバックエンドノートブックサーバー間の通信プロトコルです。これはWebsocketで送信され、主にNoteの実行に関連する情報を説明するために使用されます。
  • ノート、メモ、段落、仕事:
    • ノートブック:Zeppelinは、実行中の例全体がノートブックであり、多くのノートブックを使用できると考えています。
    • 注:各注は特定のページであり、コード段落である多くの段落が存在する可能性があります。
    • 段落:各段落はコード段落であるため、段落は実行可能ユニットであり、ジョブと同等です。
    • ジョブ:ジョブはZeppelinバックエンドのスケジューリングと実行の単位であり、特定のインタープリターで実行されます。

3.2ノートモジュールの主な機能

Noteは、単一の「メモ帳」メモリオブジェクトであり、zeppelinによって管理される最小単位です。権限の制御、共有、永続性のいずれの場合でも、注は粒度です。クラス関係の観点から、Noteは一連の順序付けられた段落で構成されているため、その責任のほとんどは段落の管理に関連しています。

1.段落CRUD、相対シーケンス制御



2.フロントエンドデータとバックエンドデータの双方向プッシュを処理するAngularObjectによる管理

3.全体および単一の段落の実行、およびオブザーバーモードの実行プロセスフックに基づく実行プロセス

4.基本的なスタイルの外観制御に注意してください



「関心の分離」を行うために、次のような他の機能があります。

1.関連するインタプリタのロードと初期化に注意してください

2.持続性の遅延を含む持続性と反持続性

3.権限管理

4、ツェッペリン-段落

段落は、コードの一部とその実行をサポートするために必要な「環境情報」を表し、コード実行の最小単位です。段落の責任は次のとおりです。

1.コードテキストを取得し、%sparkと同様に、インタープリター宣言セクションと実行可能コードセクションを解析して分離します。

2.コードの実行、および実行プロセスの制御(進行と終了)

3.コード実行結果の取得

4.コード内の変数を見つけて置換します

5.クエリの実行プロセス

例としてSparkInterpreterを取り上げます

SparkInterpreterの動作原理は次のとおりです。

  • 内部的にはSparkILoopとSparkIMainに基づいており、関数はSpark-Shellに似ています。つまり、行ごとの解析コードです。
  • ツェッペリンを使用する- -SparkのジョブグループIDとして、ジョブグループIDを使用してSparkContextから実行の進行状況情報を取得します。
  • SparkInterpreterプロセスで作成されたSparkContextをSparkIMainにバインドしてから、ZepplinContextなどの環境構成と構文糖衣構文を事前定義します。
  • ByteArrayOutputStreamを使用して、SparkIMainの出力をキャプチャし、表示可能な出力に変換します。

SparkSqlInterpreterの動作原理は次のとおりです。

  • SparkInterpreterで実行します。つまり、SparkInterpreterでSqlContextまたはHiveContestを実行します。
  • SparkSqlInterpreterの実行結果はテーブルの形式でフロントエンドに返されるため、フロントエンドページは対応するAngularJSコードを使用して結果をグラフとしてレンダリングします。