azkaban的安裝和使用

hgs19921112發表於2018-09-09

2. 3 Azkaban 安裝部署

準備工作

Azkaban Web 伺服器

azkaban-web-server-2.5.0.tar.gz

Azkaban 執行伺服器  

azkaban-executor-server-2.5.0.tar.gz

 

MySQL

目前 azkaban 只支援  mysql, 需安裝 mysql 伺服器 , 本文件中預設已安裝好 mysql 伺服器 , 並建立了  root 使用者 , 密碼  root.

 

 

下載地址 :

 

 

 

安裝

將安裝檔案上傳到叢集 , 最好上傳到安裝  hive sqoop 的機器上 , 方便命令的執行

在當前使用者目錄下新建  azkabantools 目錄 , 用於存放源安裝檔案 . 新建 azkaban 目錄 , 用於存放 azkaban 執行程式

azkaban web 伺服器安裝

解壓 azkaban-web-server-2.5.0.tar.gz

命令 : tar –zxvf azkaban-web-server-2.5.0.tar.gz

將解壓後的 azkaban-web-server-2.5.0  移動到  azkaban 目錄中 , 並重新命名  webserver

命令 : mv azkaban-web-server-2.5.0 ../azkaban

        cd ../azkaban

        mv azkaban-web-server-2.5.0  server

 

azkaban  執行服器安裝

解壓 azkaban-executor-server-2.5.0.tar.gz

命令 :tar –zxvf azkaban-executor-server-2.5.0.tar.gz

將解壓後的 azkaban-executor-server-2.5.0  移動到  azkaban 目錄中 , 並重新命名  executor

命令 :mv azkaban-executor-server-2.5.0  ../azkaban

cd ../azkaban

mv azkaban-executor-server-2.5.0  executor

 

azkaban 指令碼匯入

解壓 : azkaban-sql-script-2.5.0.tar.gz

命令 :tar –zxvf azkaban-sql-script-2.5.0.tar.gz

將解壓後的 mysql  指令碼 , 匯入到 mysql :

進入 mysql

mysql> create database azkaban;

mysql> use azkaban;

Database changed

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

 

 

 

 

 

 

建立 SSL 配置

參考地址 :

命令 : keytool -keystore keystore -alias jetty -genkey -keyalg RSA

執行此命令後 , 會提示輸入當前生成  keystor 的密碼及相應資訊 , 輸入的密碼請勞記 , 資訊如下 :

 

輸入 keystore 密碼:  

再次輸入新密碼 :

您的名字與姓氏是什麼?

  [Unknown]  

您的組織單位名稱是什麼?

  [Unknown]  

您的組織名稱是什麼?

  [Unknown]  

您所在的城市或區域名稱是什麼?

  [Unknown]  

您所在的州或省份名稱是什麼?

  [Unknown]  

該單位的兩字母國家程式碼是什麼

  [Unknown]   CN

CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN  正確嗎?

  [ ]   y

 

輸入 <jetty> 的主密碼

         (如果和  keystore  密碼相同,按回車):  

再次輸入新密碼 :

完成上述工作後 , 將在當前目錄生成  keystore  證照檔案 , keystore  考貝到  azkaban web 伺服器根目錄中 . :cp keystore azkaban/server

 

配置檔案

注:先配置好伺服器節點上的時區

1、 先生成時區配置檔案 Asia/Shanghai ,用互動式命令 tzselect 即可

2、 複製該時區檔案,覆蓋系統本地時區配置

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

 

 

azkaban web 伺服器配置

進入 azkaban web 伺服器安裝目錄  conf 目錄

 

v   修改 azkaban.properties 檔案

命令 vi azkaban.properties

內容說明如下 :

#Azkaban Personalization Settings

azkaban.name=Test                             # 伺服器 UI 名稱 , 用於伺服器上方顯示的名字

azkaban.label=My Local   Azkaban                                 # 描述

azkaban.color=#FF3601                                                   #UI 顏色

azkaban.default.servlet.path=/index                           #

web.resource.dir=web/                                                     # 預設根 web 目錄

default.timezone.id=Asia/Shanghai                              # 預設時區 , 已改為亞洲 / 上海   預設為美國

 

#Azkaban UserManager class

user.manager.class=azkaban.user.XmlUserManager     # 使用者許可權管理預設類

user.manager.xml.file=conf/azkaban-users.xml                # 使用者配置 , 具體配置參加下文

 

#Loader for projects

executor.global.properties=conf/global.properties      # global 配置檔案所在位置

azkaban.project.dir=projects                                                  #

 

database.type=mysql                                                                # 資料庫型別

mysql.port=3306                                                                         # 埠號

mysql.host=localhost                                                        # 資料庫連線 IP

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.port=8443                                                                     #Jetty SSL

jetty.port=8081                                                                           #Jetty

jetty.keystore=keystore                                                            #SSL 檔名

jetty.password=123456                                                               #SSL 檔案密碼

jetty.keypassword=123456                                                        #Jetty 主密碼    keystore 檔案相同

jetty.truststore=keystore                                                                  #SSL 檔名

jetty.trustpassword=123456                                                      # SSL 檔案密碼

 

執行伺服器屬性

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                                                              # 快取目錄

 

 

v   azkaban  執行伺服器 executor 配置

進入執行伺服器安裝目錄 conf, 修改 azkaban.properties

vi azkaban.properties

#Azkaban

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

 

# Azkaban JobTypes  外掛配置

azkaban.jobtype.plugin.dir=plugins/jobtypes                     #jobtype  外掛所在位置

 

#Loader for projects

executor.global.properties=conf/global.properties

azkaban.project.dir=projects

 

# 資料庫設定

database.type=mysql                                                                         # 資料庫型別 ( 目前只支援 mysql)

mysql.port=3306                                                                                  # 資料庫埠號

mysql.host=192.168.20.200                                                             # 資料庫 IP 地址

mysql.database=azkaban                                                                  # 資料庫例項名

mysql.user=root                                                                         # 資料庫使用者名稱

mysql.password=root                                  # 資料庫密碼

mysql.numconnections=100                                                             # 最大連線數

 

執行伺服器配置

executor.maxThreads=50                                                                  # 最大執行緒數

executor.port=12321                                                                 # 埠號 ( 如修改 , 請與 web 服務中一致 )

executor.flow.threads=30                                                                  # 執行緒數


 

 

v   使用者配置

進入 azkaban web 伺服器 conf 目錄 , 修改 azkaban-users.xml

vi 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>

 

 

啟動

web 伺服器

azkaban web 伺服器目錄下執行啟動命令

bin/azkaban-web-start.sh

: web 伺服器根目錄執行

或者啟動到後臺

nohup  bin/azkaban-web-start.sh  1>/tmp/azstd.out  2>/tmp/azerr.out &

執行伺服器

在執行伺服器目錄下執行啟動命令

bin/azkaban-executor-start.sh

: 只能要執行伺服器根目錄執行

 

啟動完成後 , 在瀏覽器 ( 建議使用谷歌瀏覽器 ) 中輸入 https:// 伺服器 IP 地址 :8443 , 即可訪問 azkaban 服務了 . 在登入中輸入剛才新的戶用名及密碼 , 點選  login.

-------------------------------------------------------------------------------------------------------------------

2.4 Azkaban 實戰

Azkaba 內建的任務型別支援 command java

 

Command 型別單一 job 示例

1、 建立 job 描述檔案

vi command.job

#command.job

type=command                                                     

command=echo 'hello'

 

 

2、 job 資原始檔打包成 zip 檔案

zip command.job

 

3、 透過 azkaban web 管理平臺建立 project 並上傳 job 壓縮包

首先建立 project

上傳 zip

4 、啟動執行該 job


Command 型別多 job 工作流 flow

1、 建立有依賴關係的多個 job 描述

第一個 job foo.job

# foo.job

type=command

command=echo foo

第二個 job bar.job 依賴 foo.job

# bar.job

type=command

dependencies=foo

command=echo bar

 

2、 將所有 job 資原始檔打到一個 zip 包中

3、 azkaban web 管理介面建立工程並上傳 zip

4、 啟動工作流 flow

HDFS 操作任務

1、 建立 job 描述檔案

# fs.job

type=command

command=/home/hadoop/apps/hadoop-2.6.1/bin/hadoop   fs -mkdir /azaz

 

2、 job 資原始檔打包成 zip 檔案

3 、透過 azkaban web 管理平臺建立 project 並上傳 job 壓縮包

4 、啟動執行該 job

MAPREDUCE 任務

Mr 任務依然可以使用 command job 型別來執行

1、 建立 job 描述檔案,及 mr 程式 jar 包(示例中直接使用 hadoop 自帶的 example jar

# mrwc.job

type=command

command=/home/hadoop/apps/hadoop-2.6.1/bin/hadoop  jar hadoop-mapreduce-examples-2.6.1.jar   wordcount /wordcount/input /wordcount/azout

 

 

2、 將所有 job 資原始檔打到一個 zip 包中

3 、在 azkaban web 管理介面建立工程並上傳 zip

4 、啟動 job


HIVE 指令碼任務

l   建立 job 描述檔案和 hive 指令碼

Hive 指令碼: test.sql

use default;

drop table aztest;

create table aztest(id int,name string)   row format delimited fields terminated by ',';

load data inpath '/aztest/hiveinput' into   table aztest;

create table azres as select * from   aztest;

insert overwrite directory   '/aztest/hiveoutput' select count(1) from aztest;

Job 描述檔案: hivef.job

# hivef.job

type=command

command=/home/hadoop/apps/hive/bin/hive   -f 'test.sql'

 

2 、將所有 job 資原始檔打到一個 zip 包中

3 、在 azkaban web 管理介面建立工程並上傳 zip

4 、啟動 job


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31506529/viewspace-2213847/,如需轉載,請註明出處,否則將追究法律責任。

相關文章