ツェッペリンアーキテクチャの主成分分析
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コードを使用して結果をグラフとしてレンダリングします。