溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

azkaban的部署以及簡單使用

發布時間:2020-07-20 08:16:49 來源:網絡 閱讀:3474 作者:原生zzy 欄目:大數據

1.工作流調度器的介紹

(1)為什么要使用工作流調度器?

?? - 一個完整的數據分析系統通常都是由大量任務單元組成:shell 腳本程序,java 程序,mapreduce 程序、hive 腳本等
?? - 各任務單元之間存在時間先后及前后依賴關系
?? - 為了很好地組織起這樣的復雜執行計劃,需要一個工作流調度系統來調度執行

(2)常見工作流調度器

??在 hadoop 領域,常見的工作流調度器有 Oozie, Azkaban,Cascading,Hamake 等 。
azkaban的部署以及簡單使用

(3)Oozie與Azkaban的對比

?? 目前企業中最流行的兩種調度器是Oozie與Azkaban??偟膩碚fooize 相比 azkaban 是一個重量級的任務調度系統,功能全面,但配置使用也更復雜。如果可以不在意某些功能的缺失,輕量級調度器 azkaban 是很不錯的候選對象。
二者的區別可以從以下的幾個方面進行描述:
?功能
??兩者均可以調度 mapreduce,pig,java,腳本工作流任務兩者均可以定時執行工作流任務
?工作的定義
?? Azkaban 使用 Properties 文件定義工作流
?? Oozie 使用 XML 文件定義工作流
?工作流傳參
?? Azkaban 支持直接傳參,例如${input}
?? Oozie 支持參數和 EL 表達式,例如${fs:dirSize(myInputDir)} strust2(ONGL)
?定時執行
?? Azkaban 的定時執行任務是基于時間的
?? Oozie 的定時執行任務基于時間和輸入數據
?資源管理
?? Azkaban 有較嚴格的權限控制,如用戶對工作流進行讀/寫/執行等操作
?? Oozie 暫無嚴格的權限控制
?工作流執行
?? Azkaban 有兩種運行模式,分別是 solo server mode(executor server 和 web server 部署在同一臺節點)和 multi server mode(executor server 和 web server 可以部署在不同節點)
?? Oozie 作為工作流服務器運行,支持多用戶和多工作流
?工作流管理
?? Azkaban 支持瀏覽器以及 ajax 方式操作工作流
?? Oozie 支持命令行、HTTP REST、Java API、瀏覽器操作工作流

2.Azkaban 安裝部署

?? Azkaban 是由 Linkedin 開源的一個批量工作流任務調度器。用于在一個工作流內以一個特定的順序運行一組工作和流程。Azkaban 定義了一種 KV 文件(properties)格式來建立任務之間的依賴關系,并提供一個易于使用的 web 用戶界面維護和跟蹤你的工作流。
Azkaban的功能特點

  • Web 用戶界面
  • 方便上傳工作流
  • 方便設置任務之間的關系
  • 調度任務流
  • 認證/授權
  • 能夠殺死并重新執行任務
  • 模塊化和可插拔的插件機制
  • 工作流和任務的日志記錄審計

Azkaban的實戰安裝
安裝包:
Azkaban Web 服務器:azkaban-web-server-2.5.0.tar.gz
Azkaban Excutor 執行服務器:azkaban-executor-server-2.5.0.tar.gz
Azkaban 初始化腳本文件:azkaban-sql-script-2.5.0.tar.gz
下載地址:http://azkaban.github.io/downloads.html
① 解壓安裝包

[root@hadoop03 ~]# tar -zxvf azkaban-web-server-2.5.0.tar.gz -C apps/ azkaban/
[root@hadoop03 ~]# tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C apps/ azkaban/
[root@hadoop03 ~]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C apps/ azkaban/ 

②安裝 Azkaban 腳本導入

[root@hadoop03 ~]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C apps/ azkaban/
#進入MySQL執行腳本:
mysql> create database azkaban; Query OK, 1 row affected (0.01 sec) 

mysql> use azkaban; 
Database changed 

mysql> source /home/hadoop/apps/azkaban/azkaban-script-2.5.0/create-all-sql-2.5.0.sql; 

③創建 SSL 配置

#最好是在azkaban 目錄下:
[root@hadoop03 ~]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA 

#此命令執行之后會提示輸入當前生成 keystore 的密碼及相應信息,輸入密碼請勞記,信息如下:
azkaban的部署以及簡單使用
然后將在當前目錄生成 keystore 證書文件,將 keystore 拷貝到 azkaban web 服務器根目錄中.如:

[root@hadoop03 ~]#cp keystore azkaban/azkaban-web-2.5.0

④修改配置文件

#先配置好服務器節點上的時區
先生成時區配置文件 Asia/Shanghai,用交互式命令 tzselect 即可
拷貝該時區文件,覆蓋系統本地時區配置
[hadoop@hadoop03 ~]$ sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
#azkaban web 服務器配置進入 azkaban web 服務器安裝目錄 conf 目錄
[hadoop@hadoop03 ~]$ cd apps/azkaban/azkaban-web-2.5.0/conf/ 

#修改 azkaban.properties 文件

#用戶配置,具體配置參加下文 
#Loader for projects   # global 配置文件所在位置 
executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties azkaban.project.dir=projects 
  #數據庫類型
database.type=mysql
 #端口號
mysql.port=3306       
#數據庫連接 IP
mysql.host=hadoop03                                                    
 #數據庫實例名 
mysql.database=azkaban                                                    
 #數據庫用戶名
mysql.user=root                                                                 
#數據庫密碼
mysql.password=root                                                           
  #最大連接數 
mysql.numconnections=100                                              

#Velocity dev mode velocity.dev.mode=false 
#Jetty 服務器屬性. 
 #最大線 程數
jetty.maxThreads=25                                                             
 #Jetty SSL 端口
jetty.ssl.port=8443  
 #Jetty 端口 
jetty.port=8081     
 #SSL 文件名
jetty.keystore=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore
#SSL 文件密碼
jetty.password=hadoop    
 #Jetty 主密碼 與 keystore 文件相同
jetty.keypassword=hadoop 
 #SSL 文件名 
jetty.truststore=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore        
  # SSL 文件密碼 
jetty.trustpassword=hadoop                                                 

# 執行服務器屬性 
executor.port=12321                                    #執行服務器端口 

# 郵件設置(可選項) 
mail.sender=xxxxxxxx@163.com                  #發送郵箱 

mail.host=smtp.163.com                                #發送郵箱 smtp 地址 

mail.user=xxxxxxxx                                        #發送郵件時顯示的名稱 

mail.password=**********                                #郵箱密碼 

job.failure.email=xxxxxxxx@163.com             #任務失敗時發送郵件的地址 
job.success.email=xxxxxxxx@163.com     #任務成功時發送郵件的地址 
lockdown.create.projects=false                 
# cache.directory=cache                           #緩存目錄

#進入 azkaban web 服務器 conf 目錄,修改 azkaban-users.xml 用戶配置

<azkaban-users> 
        <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" /> 
        <user username="metrics" password="metrics" roles="metrics"/> 
        <user username="admin" password="admin" roles="admin,metrics" /> 
        <role name="admin" permissions="ADMIN" /> 
        <role name="metrics" permissions="METRICS"/> 
</azkaban-users> 

#azkaban 執行服務器 executor 配置,進入執行服務器安裝目錄 conf,修改 azkaban.properties

#Azkaban 
default.timezone.id=Asia/Shanghai                                              #時區 

#Azkaban JobTypes 插件配置,插件所在位置 
azkaban.jobtype.plugin.dir=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/plugins/jobtypes 

#Loader for projects 
executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties azkaban.project.dir=projects 

#數據庫設置 
 #數據庫類型(目前只支持 mysql)
database.type=mysql  
#數據庫端口號
mysql.port=3306       
#數據庫 IP  地址
mysql.host=hadoop03    
 #數據庫實例名
mysql.database=azkaban                                                  
#數據庫用 戶名
mysql.user=root       
#數據庫密碼
mysql.password=root                                                         
  #最大連接數 
mysql.numconnections=100                                                

#執行服務器配置 
#最大線程數 
executor.maxThreads=50                                                     
#端口號(如修改,請與 web 服務中一致)                                                    
executor.port=12321   
 #線程數 
 executor.flow.threads=30   

⑤配置環境變量

[hadoop@hadoop03 ~]$  vim /etc/profile
#/etc/profile
export AZKABAN_WEB_HOME=/home/hadoop/apps/azkaban/azkaban-web-2.5.0 
export AZKABAN_EXE_HOME=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0 
export PATH=$PATH:$AZKABAN_WEB_HOME/bin:$AZKABAN_EXE_HOME/bin 

⑥啟動
#啟動 web 服務器

 nohup azkaban-web-start.sh 1>/home/hadoop/azwebstd.out 2>/home/hadoop/azweberr.out & 

#啟動執行服務器

nohup azkaban-executor-start.sh 1>/home/hadoop/azexstd.out 2>/home/hadoop/azexerr.out &

⑥驗證是否登錄成功
在瀏覽器中輸入:https://hadoop03:8443/
azkaban的部署以及簡單使用
看到以上界面表示安裝成功?。。?!
小編這里建議將Azkaban 的web、executor配置文件,所有的相對路徑都換成絕對路徑,不然經常會報出文件找不到的問題?。。?!

3.Azkaban 安裝部署報錯解決

azkaban的部署以及簡單使用
原因是:在azkaban的server和executor中缺少一個叫derby.jar的包
解決:在已經安裝的JDK中:

cp $JAVA_HOME/db/lib/derby.jar $AZKABAN_WEB_HOME/extlib
cp $JAVA_HOME/db/lib/derby.jar $AZKABAN_EXE_HOME/extlib

如果遇到與MySQL的權限問題:
請參考:https://blog.51cto.com/14048416/2344516 文章。

3.Azkaban 的簡單使用

①創建job :command.job

#command.job 
type=command                                             
command=echo 'hello' 

②將 job 資源文件打包
[hadoop hadoop03@~ ]$ zip command.job
③通過 azkaban web 管理平臺創建 project 并上傳壓縮包
azkaban的部署以及簡單使用
azkaban的部署以及簡單使用

azkaban的部署以及簡單使用
azkaban的部署以及簡單使用
azkaban的部署以及簡單使用
azkaban的部署以及簡單使用
azkaban的部署以及簡單使用
azkaban的部署以及簡單使用

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女