Kangaroo Cloudのオープンソース プロジェクトの 1 つであるTaier は、分散および視覚化された DAG タスク スケジューリング システムです。ETL 開発コストを削減し、ビッグ データ プラットフォームの安定性を向上させ、ビッグ データ開発者がタスクの複雑な依存関係や基盤となるビッグ データ プラットフォームのアーキテクチャを気にすることなく、Taier でビジネス ロジックを直接開発できるようにすることを目的としています。ビジネスにもっと焦点を当てます。
この記事では、Taierのプロセス全体を、Taier のプロセス概要、構造分析、拡張可能なポイントの 3 つの側面から分析して説明します。
Taier プロセスの簡単な説明
タイア主従部門
Taier は別のアプリケーションであり、プロセスにはマスターとスレーブの分割はなく、複数のインスタンスが実行されている場合、マスターとスレーブの分割はZK を通じて実現されます。LeaderLatchの実装により、起動時にロックを取得するノードがマスター(Master)、ロックを取得しないノードがスレーブ(Worker)となり、1つのマスターと複数のスレーブの状況が発生します。
他のワーカーがマスターが電話を切ったということを ZK で聞くと、ワーカーは再びロックを奪い合い、ロックを掴んだ人がマスターになります。
Taier では、マスターの主な役割には、定期的なインスタンスの生成、インスタンスの事前配布、ワーカー ノード タスクの災害復旧、インスタンスの送信などが含まれ、スレーブは主にインスタンスの送信を担当します。
階層サイクル インスタンス (T+1)
定期インスタンスとは Taier の独自用語で、設定されたスケジュール時間に従って 1 回実行されるタスクをインスタンスといいますが、今回の定期インスタンスの仕組みは T+1 です。
明日のすべてのタスクに対応する定期インスタンスは、今日事前に生成されます。つまり、今日の定期インスタンスは昨日生成されます。デフォルトでは、Taier は翌日の定期インスタンスを 22:00 に生成します。タスクが22:00 以降にスケジュール システムに送信された場合、タスクは定期インスタンスとして生成されません。
設定項目はjob.graph.build.cron=22:00:00となっており、時間は自分で調整可能です。
階層化タスクの送信
Taier タスク送信の具体的なフローチャートは次のとおりです。
タスクプロセス投入の事前判定は主に 2 つの部分に分かれており、1 つはタスクの上流と下流の依存関係検証であり、定期インスタンスの上流が完了しているかどうかを判定し、上流の操作が失敗した場合には、次に、タスクを送信する準備ができていません。2 つ目は、リソースの検証です。タスクはすべてクラスター上で実行されており、多くのリソースを占有しているため、送信前の検証は、現在のクラスターのリソースが適切であるかどうかを判断するために実行されます。リソースが不足している場合は、提出を遅らせる措置が実行されます。
Taier タスクによって送信される具体的なコードは次のとおりです。
ティア構造解析
Taier の構造は主に UI、アプリケーション層、プラグインの 3 つの部分に分かれており、プラグインの中で最も重要なプラグインは Taier worker-plugin と Taier datasource-plugin です。
Taier ワーカープラグイン
Taier ワーカー プラグインの主な用途は次のとおりです。
· タスクの提出
・タスクのステータスを取得する
・タスクログ取得
· タスクを強制終了します
具体的なコードは次のとおりです。
関連するクラスには次のものがあります。
· com.dtstack.taier.common.client.ClientFactory
· com.dtstack.taier.common.client.ClientProxy
· com.dtstack.taier.common.client.ClientCache
Taier データソース プラグイン
Taier データソース プラグインの主な用途は次のとおりです。
・接続チェック
・SQLの実行
・テーブル一覧の取得
· テーブルのメタデータを取得する
・データのダウンロード
・ログのダウンロード
具体的なコードは次のとおりです。
Taier タスク送信プラグイン
参照コード:
com.dtstack.taier.scheduler.jobdealer.JobSubmitDealer#submitJob
Taier の拡張ポイント
Taier は現在、そのコア機能がオープンソースであり、次のような他の機能の開発者は自分でそれを拡張できます。
· タスクはすぐにインスタンスを生成します
・ChunJunウィザードモード拡張
· DataX はウィザード モード構成をサポートします
· データ ソース プラグインのバージョン拡張
・新しい計算エンジン
· Hadoop マルチクラスター バージョンのサポート
· インスタンス分散戦略の強化
ビデオ講座&PPT取得
ビデオレッスン:
https://www.bilibili.com/video/BV1wP411z7rf/?spm_id_from=333.999.0.0
コースウェアの取得:
https://www.dtstack.com/resources/1047
「Dutstack 製品ホワイトペーパー」: https://www.dtstack.com/resources/1004?src=szsm
「データ ガバナンス業界実践ホワイト ペーパー」ダウンロード アドレス: https://www.dtstack.com/resources/1001?src=szsm Kangaroo Cloud のビッグデータ製品、業界ソリューション、顧客事例について詳しく知りたい、相談したい場合は、 Kangaroo Cloud 公式 Web サイトにアクセスしてください: https://www.dtstack.com/?src=szkyzg
同時に、ビッグデータのオープンソース プロジェクトに興味のある学生は、最新のオープンソース テクノロジー情報を交換するために「Kangaroo Cloud Open Source Framework DingTalk Technology qun」に参加することを歓迎します。qun 番号: 30537511、プロジェクト アドレス: https: // github.com/DTStack
マルチ環境開発をサポートする国内初のIDE——CEC-IDE MicrosoftがPythonをExcelに統合、グイおじさんがフレームワーク策定に参加 中国プログラマーらギャンブルプログラム作成を拒否、歯14本抜かれ88%の身体損傷 オープンソースのSongフォントを模倣したPodman Desktop、 ダウンロード数50万件を突破 オープニング画面の広告を自動的に 無期限に更新停止 「Li Tiao Tiao」が スキップ Xiaomiがmios.cnウェブサイトのドメイン名を申請