Linux環境Azkaban安裝配置

YBCarry發表於2019-03-12

Linux環境Azkaban安裝配置

1. 認識Azkaban

(1) Azkaban介紹

  • 任務排程工具
  • 官網:https://azkaban.github.io/
  • Azkaban是一套簡單的任務排程服務,整體包括三部分webserver、dbserver、executorserver。
  • Azkaban是linkin的開源專案,開發語言為Java。
  • Azkaban是在LinkedIn上建立的批處理工作流作業排程程式,用於執行Hadoop作業。Azkaban通過作業依賴性解決訂單,並提供易於使用的Web使用者介面來維護和跟蹤工作流程。
  • 工作流作業:
    • flume -> hdfs -> mr -> hive建表 -> 匯入load data指令碼

2. Azkaban-2.5.0安裝配置流程

(1) Azkaban準備:

  • 安裝包:
    • 執行器:azkaban-executor-server-2.5.0.tar.gz
    • web伺服器:azkaban-web-server-2.5.0.tar.gz
    • sql指令碼:azkaban-sql-script-2.5.0.tar.gz
  • Hadoop
  • Hive

(2) 解壓Azkaban-2.5.0相關安裝包到目標目錄下:

  • tar -zxvf .tar.gz -C 目標目錄

(3) 為後續方便,重新命名Azkaban相關資料夾:

  • mv azkaban-web-2.5.0/ server
  • mv azkaban-executor-2.5.0/ executor
  • mv azkaban-2.5.0/ azkaban

(4) 匯入解壓的sql指令碼:

  • 進入MySQL建立azkaban庫:
    • create database azkaban;
  • 切換資料庫:
    • use azkaban;
  • 匯入指令碼:
    • source /XX/azkaban-2.5.0/create-all-sql-2.5.0.sql;

(5) 生成證照:

  • HTTP協議證照生成:
    • keytool -keystore keystore -alias jetty -genkey -keyalg RSA
    • 根據提示輸入金鑰庫口令(密碼);
    • 再次輸入金鑰庫口令(密碼);
    • 輸入姓名(可不填);
    • 輸入組織單位名稱(可不填);
    • 輸入組織名稱(可不填);
    • 輸入所在城市或者區域名稱(可不填);
    • 輸入所在的省、市、自治區名稱(可不填);
    • 輸入單位的雙字母國家、地區程式碼(可不填);
    • 確認輸入的資訊(y/n);
    • 輸入jetty的金鑰口令(如果和金鑰庫口令相同,按回車);
    • 此時, keystore已生成在當前資料夾。
  • 將keystore移動到server-2.5.0資料夾下:
    • mv keystore server-2.5.0/

(5) 時間同步配置:

  • Azkaban是任務排程工具,所以要求叢集本地時間保持一致。
  • Linux系統時間網路同步:
    • vi /etc/crontab
    •  # 每天0:00自動進行網路校時,並同時更新BIOS的時間
       00 0 * * * root /usr/sbin/ntpdate -u 210.72.145.44;hwclock -w
       # 每隔一個小時同步一下internet時間,並同時更新BIOS的時間
       * */1 * * * root ntpdatetime.nuri.net;hwclock -w
      複製程式碼
  • 修改時區:
    • vi /etc/profile
    • export TZ='Asia/Shanghai'
  • 檢視系統時間:
    • date
  • 檢視硬體時鐘:
    • hwclock --show
  • 系統時間同步硬體時鐘:
    • hwclock --systohc
  • 硬體時鐘與系統時間:
    • hwclock --hctosys

(6) 修改配置檔案:

  • 修改server端配置檔案:
    • 進入server/conf路徑:
      • vi azkaban.properties
       # 伺服器UI名稱(在伺服器上方顯示)
       azkaban.name=Test
       # 描述資訊
       azkaban.label=My Local Azkaban
       # UI顏色
       azkaban.color=#FF3601
       # 首頁路徑
       azkaban.default.servlet.path=/index
       # 網路資源目錄(絕對路徑)
       web.resource.dir=/opt/module/azkaban-2.5.0/server/web/web/
       # 預設時區ID
       default.timezone.id=Asia/Shanghai    # ——修改項
      
       # 使用者許可權配置
       #Azkaban UserManager class
       # 使用者許可權管理預設類
       user.manager.class=azkaban.user.XmlUserManager
       # 使用者配置檔案路徑
       # 避免在外部啟動時報錯,修改為絕對路徑
       user.manager.xml.file=/XXX/conf/azkaban-users.xml    # ——修改項
      
       #Loader for projects
       # 配置檔案所在位置
       executor.global.properties=conf/global.properties
       azkaban.project.dir=projects
      
       #Azkaban資料庫配置
       #資料庫型別(目前只支援mysql)
       database.type=mysql
       mysql.port=3306
       # 填自己的主機名
       mysql.host=bigdata01    # ——修改項
       # Azkaban資料庫名
       mysql.database=azkaban    # ——修改項   
       # mysql使用者名稱
       mysql.user=root    # ——修改項 
       # mysql密碼
       mysql.password=密碼    # ——修改項
       # mysql最大連線數
       mysql.numconnections=100
      
       # Velocity dev mode
       velocity.dev.mode=false
       # Jetty伺服器屬性
       # Azkaban Jetty server properties.
       # 最大執行緒數
       jetty.maxThreads=25
       # Jetty SSL埠                                 
       jetty.ssl.port=8443 
       # Jetty埠                                
       jetty.port=8081
       # HTTP協議證照檔名(絕對路徑)                                     
       jetty.keystore=keystore 
       # HTTP協議證照檔案密碼                           
       jetty.password=/XX/server/keystore密碼    # ——修改項        
       # Jetty主密碼 與 keystore檔案密碼相同                              
       jetty.keypassword=keystore密碼    # ——修改項    
       # SSL檔名(絕對路徑)                           
       jetty.truststore=/XX/server/keystore 
       # SSL檔案密碼                          
       jetty.trustpassword=keystore密碼    # ——修改項                        
       
       # 執行伺服器屬性
       # 執行伺服器埠
       executor.port=12321                                
       
       # 郵件設定
       #傳送郵箱
       mail.sender=xxxxxxxx@163.com    # ——修改項
       #傳送郵箱smtp地址                           
       mail.host=smtp.163.com    # ——修改項 
       # 傳送郵件時顯示的名稱                             
       mail.user=xxxxxxxx    # ——修改項 
       # 任務失敗時傳送郵件的地址                           
       job.failure.email=xxxxxxxx@163.com    # ——修改項  
       # 任務成功時傳送郵件的地址                 
       job.success.email=xxxxxxxx@163.com    # ——修改項               
      
       lockdown.create.projects=false
       # 快取目錄
       cache.directory=cache                               
      複製程式碼
      • vi azkaban-users.xml
      •  # 配置個人管理員登入賬戶
         <user username="ybcarry" password="3150997" roles="admin,metrics"/>
        複製程式碼
  • 修改executor端配置檔案:
    • 進入executor/conf路徑:
      • vi azkaban.properties
       #Azkaban
       #時區
       default.timezone.id=Asia/Shanghai    # ——修改項                 
      
       # Azkaban JobTypes Plugins
       # jobtype 外掛所在位置
       azkaban.jobtype.plugin.dir=plugins/jobtypes           
       
       #Loader for projects
       #絕對路徑
       executor.global.properties=/XX/executor/conf/global.properties    # ——修改項
       azkaban.project.dir=projects
      
       # 資料庫設定
       # 資料庫型別(目前只支援mysql)
       database.type=mysql                               
       # 資料庫埠號
       mysql.port=3306 
       # 資料庫IP地址                                  
       mysql.host=192.168.20.200
       # Azkaban資料庫名
       mysql.database=azkaban    # ——修改項   
       # mysql使用者名稱
       mysql.user=root    # ——修改項 
       # mysql密碼
       mysql.password=密碼    # ——修改項
       # mysql最大連線數
       mysql.numconnections=100
      
       # Azkaban Executor settings
       # Azkaban執行器配置
       # 最大執行緒數
       executor.maxThreads=50 
       # 埠號(如修改,請與web服務中一致)                           
       executor.port=12321                              
       # 執行緒數
       executor.flow.threads=30                          
      複製程式碼

(7) 配置環境變數:

  • 修改配置檔案:
    • vi /etc/profile
  • 增加以下內容:
    • export AZKABAN_SERVER_HOME=azkaban server安裝路徑
    • export PATH=$PATH:$AZKABAN_SERVER_HOME/bin
    • export AZKABAN_EXECUTOR_HOME=azkaban executor安裝路徑
    • export PATH=$PATH:$AZKABAN_EXECUTOR_HOME/bin
  • 宣告環境變數:
    • source /etc/profile

(8) 啟動

  • 啟動server:
    • azkaban-web-start.sh
  • 啟動executor:
    • azkaban-executer-start.sh
  • 在瀏覽器中輸入網址:
    • https://主機IP:8443/
    • 輸入設定的使用者名稱、密碼
  • 啟動成功

相關文章