データスケジューリングコンポーネント:Azkabanに基づく時系列タスクの実行を調整します

1.アズカバンの概要

1.タスクのタイミング

データサービスのビジネスシナリオでは、非常に一般的なビジネスプロセスは、ログファイルをビッグデータで分析し、その結果データをビジネスに出力することです。このプロセスでは、実行するタスクが多くなります。タスク実行の終了時間を正確に把握することは困難ですが、リソースを解放するために、タスクチェーン全体ができるだけ早く終了することも望んでいます。

データスケジューリングコンポーネント:Azkabanに基づく時系列タスクの実行を調整します

おおよその実行順序は次のとおりです。

  • ビジネスログファイルはHDFSファイルシステムに同期されます。
  • Hadoopを介して分析および計算プロセスを実行します。
  • 結果データは、インポートされたデータウェアハウスに保存されます。
  • 最後に、データウェアハウス内のデータをビジネスデータベースに同期する必要があります。

このようなプロセスは、ビジネスでのタスクスケジューリングを必要とせず、時間は基本的に予測可能です。十分なタスク間隔時間を維持するだけです。ビッグデータのタスクリンクでは、通常、時間コストを削減するために、一方を終了してもう一方を直接開始する必要があります。データサービス会社では、同期タスクの実行は完了したものの、最終的な個別のCSVデータファイルが生成されず、100万近くの分析データの同期とビジネスデータベースの更新に失敗する場合がありました。 。

2.アズカバン入門

Azkabanは、Linkedinによって起動されたスケジューラーであり、バッチワークフロータスクを管理できます。ワークフロー内の特定の順序で一連のジョブとプロセスを実行するために使用されます。Azkabanは、ジョブ構成ファイルを使用してタスク間の依存関係を確立し、ワークフローを維持および追跡するための使いやすいWebユーザーインターフェイスを提供します。

アズカバンの機能と利点

  • 明確で使いやすいWebUIインターフェイスを提供します。
  • シンプルなジョブ構成、明確なタスクとジョブの依存関係。
  • スケーラブルなコンポーネントを提供します。
  • Java言語開発に基づいており、二次開発が容易です。

Oozie構成ワークフロープロセスと比較すると、多くのXML構成を作成する必要があり、そのコードの複雑さは比較的高く、二次開発が容易ではありません。Azkabanは軽量で、機能と使用法は比較的単純で使いやすいです。

2、サービスのインストール

1.コアパッケージ

ウェブサービス

azkaban-web-server-2.5.0.tar.gz

エグゼクティブサービス

azkaban-executor-server-2.5.0.tar.gz

SQLスクリプト

azkaban-sql-script-2.5.0.tar.gz

2.インストールパス

上記の3つのインストールパッケージをアップロードして解凍します。

[root@hop01 azkaban]# pwd
/opt/azkaban
[root@hop01 azkaban]# tar -zxvf azkaban-web-server-2.5.0.tar.gz
[root@hop01 azkaban]# tar -zxvf azkaban-executor-server-2.5.0.tar.gz
[root@hop01 azkaban]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz
[root@hop01 azkaban]# mv azkaban-web-2.5.0/ server
[root@hop01 azkaban]# mv azkaban-executor-2.5.0/ executor

3.MySQLインポートスクリプト

[root@hop01 ~]# mysql -uroot -p123456
mysql> create database azkaban_test;
mysql> use azkaban_test;
mysql> source /opt/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql

表を見る

データスケジューリングコンポーネント:Azkabanに基づく時系列タスクの実行を調整します

4.SSL構成

[root@hop01 opt]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA

ファイルの生成:keystore

AzkabanWebサーバーディレクトリにコピーします。

[root@hop01 opt]# mv keystore /opt/azkaban/server/

5.Webサービスの構成

基本構成

[root@hop01 conf]# pwd
/opt/azkaban/server/conf
[root@hop01 conf]# vim azkaban.properties

コアの変更:MySQLとJetty。

default.timezone.id=Asia/Shanghai

# Azkaban MySQL server properties.
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban_test
mysql.user=root
mysql.password=123456
mysql.numconnections=100

# Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
jetty.password=123456
jetty.keypassword=123456
jetty.truststore=keystore
jetty.trustpassword=123456

ここでの構成は、ローカル構成パラメーターを満たすことができます。

ユーザー構成

[root@hop01 conf]# vim azkaban-users.xml

管理者ユーザーを追加します。

<azkaban-users>
    <user username="admin" password="admin" roles="admin,metrics" />
</azkaban-users>

データスケジューリングコンポーネント:Azkabanに基づく時系列タスクの実行を調整します

6.エグゼキュータサービスの構成

[root@hop01 conf]# pwd
/opt/azkaban/executor/conf
[root@hop01 conf]# vim azkaban.properties

コアの変更:MySQLとタイムゾーン。

default.timezone.id=Asia/Shanghai

# Azkaban MySQL server properties.
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban_test
mysql.user=root
mysql.password=123456
mysql.numconnections=100

7、サーバーを起動します

ウェブサービス

[root@hop01 bin]# pwd
/opt/azkaban/server/bin
[root@hop01 bin]# ll
total 16
-rwxr-xr-x 1 root root  161 Apr 21  2014 azkaban-web-shutdown.sh
-rwxr-xr-x 1 root root 1275 Apr 21  2014 azkaban-web-start.sh

起動スクリプトとシャットダウンスクリプトは次のとおりです。

[root@hop01 bin]# /opt/azkaban/server/bin/azkaban-web-start.sh

エグゼキュータサービス

[root@hop01 bin]# /opt/azkaban/executor/bin/azkaban-executor-start.sh

スタートアップログ

2つのサービスの主要なエンドラインログ:

Azkaban Server running on ssl port 8443.
Azkaban Executor Server started on port 12321

ログインインターフェース

これはhttpsプロトコルに基づいていることに注意してください。

https://hop01:8443/

データスケジューリングコンポーネント:Azkabanに基づく時系列タスクの実行を調整します

三、手術事例

1.紹介ケース

コマンドタイプのジョブを作成する

[root@hop01 flow_01]# pwd
/opt/azkaban/testJob/flow_01
[root@hop01 flow_01]# vim simple.job

type=command
command=echo 'mySimpleJob'

Zipパッケージ

[root@hop01 flow_01]# zip -q -r simpleJob.zip simple.job

プロジェクトを作成する

データスケジューリングコンポーネント:Azkabanに基づく時系列タスクの実行を調整します

タスクパッケージをアップロードする

データスケジューリングコンポーネント:Azkabanに基づく時系列タスクの実行を調整します

タスクを実行する

データスケジューリングコンポーネント:Azkabanに基づく時系列タスクの実行を調整します

2.タスクシーケンスの実行

タスクAを作成する

[root@hop01 flow_02]# vim simpleA.job

type=command
command=echo 'simplejobA'

タスクBを作成する

[root@hop01 flow_02]# vim simpleB.job

type=command
dependencies=simpleA
command=echo 'simplejobB'

パッケージングタスク

[root@hop01 flow_02]# zip -q -r simpleTwoJob.zip simpleA.job simpleB.job

データスケジューリングコンポーネント:Azkabanに基づく時系列タスクの実行を調整します

同じ操作方法で、2つのタスクをzipパッケージに入れ、Webサービスを介してアップロードし、実行効果を確認できます。

第四に、ソースコードアドレス

GitHub·地址
https://github.com/cicadasmile/big-data-parent
GitEE·地址
https://gitee.com/cicadasmile/big-data-parent

ラベルを読む

[ Java Foundation ] [デザインパターン] [構造とアルゴリズム] [ Linuxシステム] [データベース]

[分散アーキテクチャ] [マイクロサービス] [ビッグデータコンポーネント] [ SpringBoot Advanced ] [ Spring&Boot Foundation ]

[データ分析] [テクニカルマップ] [職場]

データスケジューリングコンポーネント:Azkabanに基づく時系列タスクの実行を調整します

おすすめ

転載: blog.51cto.com/14439672/2676904