Azkaban使用安裝文檔


         Azkaban使用安裝文檔

 

Azkaban簡介

Azkaban的是什么

Azkaban是由Linkedin公司推出的一個批量工作流任務調度器,用於在一個工作流內以一個特定的順序運行一組工作和流程。Azkaban使用job配置文件建立任務之間的依賴關系,並提供一個易於使用的web用戶界面維護和跟蹤你的工作流。

Azkaban 的優點

  • 提供功能清晰,簡單易用的Web UI界面
  • 提供job配置文件快速建立任務和任務之間的依賴關系
  • 提供模塊化和可插拔的插件機制,原生支持command、Java、Hive、Pig、Hadoop
  • 基於Java開發,代碼結構清晰,易於二次開發

Azkaban的安裝

Azkaban的安裝模式

Azkaban有三種部署方式:solo server mode , cluster server mode,multiple-execoutor

  • solo server mode(單機模式):該模式中webServer和executorServer運行在同一個進程中,進程名是AzkabanSingleServer。可以使用自帶的H2數據庫或者配置mysql數據。該模式適用於小規模的使用。
  • cluster server mode(集群模式):該模式使用MySQL數據庫,webServer和executorServer運行在不同進程中,該模式適用於大規模應用。

3.0以后出現

  • multiple-executor模式:exec進程和web進程在不同的機器上,存放元數據的數據庫為mysql

安裝mysql

本地安裝

解壓mysql

Tar -vxf mysql*

安裝mysql

MySQL-5.6.21-1.el7.x86_64.rpm-bundle.tar

MySQL-client-5.6.21-1.el7.x86_64.rpm

MySQL-devel-5.6.21-1.el7.x86_64.rpm

MySQL-embedded-5.6.21-1.el7.x86_64.rpm

MySQL-server-5.6.21-1.el7.x86_64.rpm

MySQL-shared-5.6.21-1.el7.x86_64.rpm

MySQL-shared-compat-5.6.21-1.el7.x86_64.rpm

MySQL-test-5.6.21-1.el7.x86_64.rpm

可能會報錯

刪除包沖突即可

yum -y remove mariadb-libs-*

在線安裝

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

rpm -ivh mysql-community-release-el7-5.noarch.rpm

yum install mysql-community-server

安裝完成后

systemctl start mysqld.service

設置mysql賬號並創建azkaban數據庫

mysql -uroot

mysql> set password for 'root'@'localhost' = password('123456');

mysql> CREATE DATABASE azkaban;

mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';   

mysql> GRANT ALL ON azkaban.* to 'azkaban'@'%' IDENTIFIED BY 'azkaban';

mysql> flush privileges;

安裝jdk

Jdk版本必須為1.8以上版本,低版本報錯

上傳jdk-8u141-linux-x64.tar.gz 並解壓

tar –xvzf jdk-*;

配置jdk環境

export JAVA_HOME=/jdk

export JRE_HOME=/jdk/jre

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JRE_HOME/lib

 

Azkaban安裝

 

本測試在linux(Centos7.2)版本 使用azkaban-3.38進行安裝測試

.編譯,安裝過程

1.  git clone https://github.com/azkaban/azkaban.git

源碼,當前為3.38版本(注:需要安裝git服務  yum –y install git)

  1. 進入azkaban 項目進行編譯 ./gradlew distTar(注:使用gradle進行安裝,若沒有gradle會自行安裝)

編譯結果為

azkaban-common : 常用工具類。

azkaban-db : 對應的sql腳本

azkaban-hadoop-secutity-plugin : hadoop 有關kerberos插件

azkaban-solo-server: web和executor 一起的項目。

azkaban-web/executor-server:azkaban的 web和executor的server信息

azkaban-spi: azkaban存儲接口以及exception類

創建azkaban-3.38

Mkdir azkaban-3.38

分別將

ls

 cd azkaban-web-server/build/distributions/

 ls

  cp azkaban-web-server-3.38.0-2-gbd9e6e4.tar.gz /azkaban-3.38/

  cd ../../../

  ls

  cd azkaban-exec-server/build/distributions/

  ls

  cp azkaban-exec-server-3.38.0-2-gbd9e6e4.tar.gz /azkaban-3.38/

  cd ../../../

ls

  cd azkaban-db/build/distributions/

  ls

   cp azkaban-db-3.38.0-2-gbd9e6e4.tar.gz /azkaban-3.38/

解壓縮后並重新命名

 

 

tar -xvzf azkaban-db-3.38.0-2-gbd9e6e4.tar.gz

     tar -xvzf azkaban-exec-server-3.38.0-2-gbd9e6e4.tar.gz

     tar -xvzf azkaban-web-server-3.38.0-2-gbd9e6e4.tar.gz

     刪除tar壓縮包

     rm -fr *.tar.*

     重新命名

     mv azkaban-db-3.38.0-2-gbd9e6e4 azkaban-db-3.38.0-2

     mv azkaban-exec-server-3.38.0-2-gbd9e6e4 azkaban-exec-server-3.38.0-2

     mv azkaban-web-server-3.38.0-2-gbd9e6e4 azkaban-web-server-3.38.0-2

將 azkaban下的

cd azkaban-solo-server/build/distributions/

解壓

tar -xvzf azkaban-solo-server-3.38.0-2-gbd9e6e4.tar.gz

然后復制 conf 及plugins 文件到azkaban-3.38下的exec及web下

cp -r  conf  /azkaban-3.38/azkaban-exec-server-3.38.0-2/

  cp -r  conf  /azkaban-3.38/azkaban-web-server-3.38.0-2/

  cp -r  plugins /azkaban-3.38/azkaban-web-server-3.38.0-2/

  cp -r  plugins  /azkaban-3.38/azkaban-exec-server-3.38.0-2/

導入azkaban sql

打開mysql使用azkaban數據庫

use azkaban

source  /azkaban-3.38/azkaban-db-3.38.0-2/create-all-sql-3.38.0-2-gbd9e6e4.sql
source  /azkaban-3.38/azkaban-db-3.38.0-2/create.active_executing_flows.sql
source  /azkaban-3.38/azkaban-db-3.38.0-2/create.execution_flows.sql

 

 

 

配置keystore

在azkaban-web=*/conf下

keytool -keystore keystore -alias jetty -genkey -keyalg RSA
輸入密鑰庫口令:  
密鑰庫口令太短 - 至少必須為 6 個字符
輸入密鑰庫口令:  
再次輸入新口令: 
您的名字與姓氏是什么?
[Unknown]:  
您的組織單位名稱是什么?
[Unknown]:  
您的組織名稱是什么?
[Unknown]:  
您所在的城市或區域名稱是什么?
[Unknown]:  
您所在的省/市/自治區名稱是什么?
[Unknown]:  
該單位的雙字母國家/地區代碼是什么?
[Unknown]: CN
CN=, OU=, O=, L=, ST=, C=CN是否正確?[否]:  Y


.配置 conf/azkaban.properties

修改是數據庫配置

 

database.type=mysql

mysql.port=3306

mysql.host=192.168.3.247

mysql.database=azkaban

mysql.user=azkaban

mysql.password=azkaban

mysql.numconnections=100

 

添加mysql驅動

在/azkaban-3.38/azkaban-exec-server-3.38.0-2下新建文件夾

mkdir extlib

將lib下的mysql鏈接驅動復制到extlib下

同時需要修改ban-3.38/azkaban-web-server-3.38.0-2

下的azkaban.properties和建立extlib文件將mysql驅動拷入

添加log4j.properties文件

在/conf下新建log4j.properties文件

log4j.rootLogger=INFO,C

log4j.appender.C=org.apache.log4j.ConsoleAppender

log4j.appender.C.Target=System.err

log4j.appender.C.layout=org.apache.log4j.PatternLayout

log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

拷入同樣執行器exec文件下的/conf也需要新建

啟動

注意先啟動執行器然后啟動web服務器,需要在bin級目錄執行,否則匯報找不到配置文件的錯誤

cd azkaban-exec-server-3.38.0-2

            bin/azkaban-executor-start.sh

 cd azkaban-web-server-3.38.0-2

   bin/azkaban-web-start.sh

 

~                                                                                                                                                                     

~                                                                                         

附錄

問題一:

若報錯ntive.lib找不到修改文件

vi /azkaban/azkaban-common/src/main/java/azkaban/jobExecutor/ProcessJob.java

 

 

將true改為false,重新啟動集群

問題二:

若mysql數據庫鏈接不上請檢查mysql數據庫下azkaban數據庫是否可以訪問,

若無法遠程訪問請使用root用戶登錄到mysql數據庫

mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';   

mysql> GRANT ALL ON azkaban.* to 'azkaban'@'%' IDENTIFIED BY 'azkaban';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM