大家好,我是不溫卜火,是一名計算機學院大數據專業大二的學生,暱稱來源於成語—
不溫不火
,本意是希望自己性情溫和
。作爲一名互聯網行業的小白,博主寫博客一方面是爲了記錄自己的學習過程,另一方面是總結自己所犯的錯誤希望能夠幫助到很多和自己一樣處於起步階段的萌新。但由於水平有限,博客中難免會有一些錯誤出現,有紕漏之處懇請各位大佬不吝賜教!暫時只有csdn這一個平臺,博客主頁:https://buwenbuhuo.blog.csdn.net/
此篇爲一文帶你快速瞭解Azkaban的實戰應用。
一. 實戰前的準備
- 1. 在executor服務器目錄下執行啓動命令
[bigdata@hadoop002 executor]$ bin/azkaban-executor-start.sh
- 2. 在azkaban web服務器目錄下執行啓動命令
[bigdata@hadoop002 server]$ bin/azkaban-web-start.sh
注意:
先執行executor,再執行web,避免Web Server會因爲找不到執行器啓動失敗
。
- 3. jps查看進程
- 4. web查看
- 輸入https://服務器IP地址:8443,即可訪問azkaban服務。
https://hadoop002:8443/
在登錄中輸入剛纔在azkaban-users.xml文件中新添加的戶用名及密碼,點擊 login。
二. 實戰案例一:單一job案例
- 1. 創建job描述文件
[bigdata@hadoop002 azkaban]$ mkdir jobs
[bigdata@hadoop002 jobs]$ vim first.job
// 內容
type=command
command=echo 'this is my first job'
- 2. 將job資源文件打包成zip文件
[bigdata@hadoop002 jobs]$ zip first.zip first.job
注意:
目前,Azkaban上傳的工作流文件只支持xxx.zip文件。zip應包含xxx.job運行作業所需的文件和任何文件(文件名後綴必須以.job結尾,否則無法識別)。作業名稱在項目中必須是唯一的。
-
3. 把壓縮包拖動到真實主機上
-
4. 通過azkaban的web管理平臺創建project並上傳job的zip包
① 創建project
②上傳zip包
- 5. 啓動執行該job
- 6. Job執行成功
- 7. 點擊查看job日誌
- 8. 查看執行的歷史
三. 實戰案例二:多job工作流案例
- 1. 創建有依賴關係的多個job描述
第一個job:start.job
[bigdata@hadoop002 jobs]$ vim start.job
#start.job
type=command
command=touch /opt/module/buwenbuhuo.txt
第二個job:step1.job依賴start.job
[bigdata@hadoop002 jobs]$ vim step1.job
#step1.job
type=command
dependencies=start
command=echo "this is step1 job"
第三個job:step2.job依賴start.job
[bigdata@hadoop002 jobs]$ vim step2.job
#step2.job
type=command
dependencies=start
command=echo "this is step2 job"
第四個job:finish.job依賴step1.job和step2.job
[bigdata@hadoop002 jobs]$ vim finish.job
#finish.job
type=command
dependencies=step1,step2
command=echo "this is finish job"
- 2. 將所有job資源文件打到一個zip包中
[bigdata@hadoop002 jobs]$ zip jobs.zip start.job step1.job step2.job finish.job
- 3. 在azkaban的web管理界面創建工程並上傳zip包
- 4. 啓動工作流flow
- 5. Job執行成功
四. 實戰案例三:java操作任務
使用Azkaban調度java程序
- 1. 創建工程
- 2. 項目代碼
package com.buwenbuhuo.azkaban;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* @author 卜溫不火
* @create 2020-05-19 12:40
* com.buwenbuhuo.azkaban - the name of the target package where the new class or interface will be created.
* azkaban0519 - the name of the current project.
*/
public class JavaJob {
public static void main(String[] args) throws IOException {
// 根據需求編寫具體代碼
FileOutputStream fos = null;
try {
fos = new FileOutputStream("/opt/module/azkaban_0519.txt");
fos.write("this is a java job".getBytes());
}catch (IOException e){
e.printStackTrace();
}finally {
try{
fos.close();
} catch (IOException e){
e.printStackTrace();
}
}
}
}
- 3. 打包成jar包並放到本地
- 4. 在本地編寫job文件並整理成壓縮包
type=javaprocess
java.class=com.buwenbuhuo.azkaban.JavaJob
classpath=./azkaban-0519-1.0-SNAPSHOT.jar
- 5. 通過azkaban的web管理平臺創建project並上傳job壓縮包,啓動執行該job
- 6. 在Linux下查看文件
[bigdata@hadoop002 jobs]$ cd ..
[bigdata@hadoop002 azkaban]$ cd ..
[bigdata@hadoop002 module]$ ll
五. 實戰案例四:HDFS操作任務
- 1. 創建job描述文件並打包
#hdfs job
type=command
command=/opt/module/hadoop-2.7.2/bin/hadoop fs -mkdir /azkaban
- 2. 通過azkaban的web管理平臺創建project並上傳job壓縮包
// 先啓動hdfs和yarn
[bigdata@hadoop002 module]$ start-dfs.sh
[bigdata@hadoop003 module]$ start-yarn.sh
- 3. 運行job並在hdfs上查看
六. 實戰案例五:mapreduce任務
mapreduce任務依然可以使用azkaban進行調度
- 1.創建job描述文件,並生成zip包
#mapreduce job
type=command
command=/opt/module/hadoop-2.7.2/bin/hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output_0519
- 2. 在azkaban的web管理界面創建工程並上傳zip包
- 3. 啓動job
- 4. 查看結果
本次的分享就到這裏了,
好書不厭讀百回,熟讀課思子自知。而我想要成爲全場最靚的仔,就必須堅持通過學習來獲取更多知識,用知識改變命運,用博客見證成長,用行動證明我在努力。
如果我的博客對你有幫助、如果你喜歡我的博客內容,請“點贊” “評論”“收藏”
一鍵三連哦!聽說點讚的人運氣不會太差,每一天都會元氣滿滿呦!如果實在要白嫖的話,那祝你開心每一天,歡迎常來我博客看看。
碼字不易,大家的支持就是我堅持下去的動力。點贊後不要忘了關注
我哦!