3. Azkaban實戰
Azkaba内置的任務類型支援command、java
3.1. Command 類型單一 Job 示例
Step 1: 建立 Job 描述檔案
建立文本檔案,更改名稱為mycommand.job 注意字尾.txt一定不要帶上,儲存為格式為
UFT-8 without bom
内容如下
type=command
command=echo 'hello world'
Step 2: 将job資源檔案打包成zip檔案
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CMzkTMhFmZ5QzNhBTYzYWN2MmYzYDM1YTY4gDN5ITZ38CX3EzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.png)
Step 3: 建立project并上傳壓縮包
通過azkaban的web管理平台建立project并上傳job壓縮包
首先建立project
上傳zip包
Step 4: 啟動執行job
3.2. Command 類型多 Job 示例
Step 1: 建立有依賴關系的多個job描述
第一個job:foo.job
type=command
command=echo 'foo'
第二個job:bar.job依賴foo.job
type=command
command=echo 'bar'
dependencies=foo
Step 2: 将所有job資源檔案打到一個zip包中
Step 3: 在azkaban的web管理界面建立工程并上傳zip包
Step 4: 啟動工作流flow
3.3. HDFS 操作任務
Step 1: 建立job描述檔案fs.job
type=command
command=/export/servers/hadoop‐3.1.1/bin/hdfs dfs ‐mkdir /azkaban
Step 3: 通過azkaban的web管理平台建立project并上傳job壓縮包
Step 4: 啟動執行該job
3.4. MapReduce 任務
MR 任務依然可以使用command的job類型來執行
Step 1: 建立job描述檔案,及mr程式jar包(示例中直接使用hadoop自帶的example jar)
type=command
command=/export/servers/hadoop‐3.1.1/bin/hadoop jar hadoop‐mapreduce‐ examples‐3.1.1.jar pi 3 5
Step 4: 啟動job
3.5. Hive 腳本任務
Step 1: 建立job描述檔案和hive腳本
create database if not exists azhive;
use azhive;
create table if not exists aztest(id string,name string) row format
delimited fields terminated by '\t';
Step 2: Job描述檔案:hive.job
type=command
command=/export/servers/apache‐hive‐3.1.1‐bin ‐f 'hive.sql'
Step 3: 将所有job資源檔案打到一個zip包中
Step 4: 在azkaban的web管理界面建立工程并上傳zip包
Step 5: 啟動job
3.6. Azkaban 的定時任務
-
每分鐘執行一次定時排程任務*/1 * ? * *
-
每天晚上淩晨一點鐘執行這個任務0 1 ? * *
-
每隔兩個小時定時執行這個任務0 */2 ? * *
-
每天晚上九點半定時執行這個任務30 21 ? * *