1. 程式人生 > 實用技巧 >Azkaban(一)叢集安裝

Azkaban(一)叢集安裝

目錄

一.下載解壓

1.下載地址https://github.com/azkaban/azkaban

2.上傳tar包

1)將azkaban-db-3.84.4.tar.gz,azkaban-exec-server-3.84.4.tar.gz,azkaban-web-server-3.84.4.tar.gz上傳到hadoop102的/opt/software路徑

[hadoop@hadoop102 software]$ ll
總用量 35572
-rw-r--r--. 1 atguigu atguigu     6433 4月  18 17:24 azkaban-db-3.84.4.tar.gz
-rw-r--r--. 1 atguigu atguigu 16175002 4月  18 17:26 azkaban-exec-server-3.84.4.tar.gz
-rw-r--r--. 1 atguigu atguigu 20239974 4月  18 17:26 azkaban-web-server-3.84.4.tar.gz

2)新建/opt/module/azkaban目錄,並將所有tar包解壓到這個目錄下

[hadoop@hadoop102 software]$ mkdir /opt/module/azkaban
3)解壓azkaban-db-3.84.4.tar.gz、 azkaban-exec-server-3.84.4.tar.gz和azkaban-web-server-3.84.4.tar.gz到/opt/module/azkaban目錄下
[hadoop@hadoop102 software]$ tar -zxvf azkaban-db-3.84.4.tar.gz -C /opt/module/azkaban/
[hadoop@hadoop102 software]$ tar -zxvf azkaban-exec-server-3.84.4.tar.gz -C /opt/module/azkaban/
[hadoop@hadoop102 software]$ tar -zxvf azkaban-web-server-3.84.4.tar.gz -C /opt/module/azkaban/

4)進入到/opt/module/azkaban目錄,依次修改名稱

[hadoop@hadoop102 azkaban]$ mv azkaban-exec-server-3.84.4/ azkaban-exec
[hadoop@hadoop102 azkaban]$ mv azkaban-web-server-3.84.4/ azkaban-web

二. 配置Mysql

1.正常安裝MySQL
參考Hive(一)【基本概念、安裝】中的Mysql安裝

以下密碼設定為000000

2.啟動MySQL

[hadoop@hadoop102 azkaban]$ mysql -uroot -p000000

3.登陸MySQL,建立Azkaban資料庫

mysql> create database azkaban;

4.建立azkaban使用者並賦予許可權
設定密碼有效長度4位及以上

mysql> set global validate_password_length=4;

設定密碼策略最低級別

mysql> set global validate_password_policy=0;

建立Azkaban使用者,任何主機都可以訪問Azkaban,密碼是000000

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

賦予Azkaban使用者增刪改查許可權

mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;

賦予Azakban使用者遠端訪問許可權,密碼是000000

mysql> grant all privileges on azkaban.* to 'azkaban'@'%'  identified by '000000' with grant option;

5.建立Azkaban表,完成後退出MySQL

mysql> use azkaban;
mysql> source /opt/module/azkaban/azkaban-db-3.84.4/create-all-sql-3.84.4.sql
mysql> quit;

6.更改MySQL包大小;防止Azkaban連線MySQL阻塞

[hadoop@hadoop102 software]$ sudo vim /etc/my.cnf
在[mysqld]下面加一行max_allowed_packet=1024M
[mysqld]
max_allowed_packet=1024M
8)重啟MySQL
[atguigu@hadoop102 software]$ sudo systemctl restart mysqld

三. 配置Azkaban Executor

Azkaban Executor Server處理工作流和作業的實際執行。
1.編輯azkaban.properties

[hadoop@hadoop102 azkaban]$ vim /opt/module/azkaban/azkaban-exec/conf/azkaban.properties

修改如下屬性

#修改和伺服器時區一致
default.timezone.id=Asia/Shanghai
#Web伺服器的地址
azkaban.webserver.url=http://hadoop102:8081
#埠
executor.port=12321
#注意改成自己的主機、使用者、密碼
database.type=mysql
mysql.port=3306
mysql.host=hadoop102
mysql.database=azkaban
mysql.user=azkaban
mysql.password=000000
mysql.numconnections=100
在最後新增
executor.metric.reports=true
executor.metric.milisecinterval.default=60000

2.同步azkaban-exec到所有節點

[hadoop@hadoop102 azkaban]$ xsync /opt/module/azkaban/azkaban-exec
3)必須進入到/opt/module/azkaban/azkaban-exec路徑,分別在三臺機器上,啟動executor server
[hadoop@hadoop102 azkaban-exec]$ bin/start-exec.sh
[hadoop@hadoop103 azkaban-exec]$ bin/start-exec.sh
[hadoop@hadoop104 azkaban-exec]$ bin/start-exec.sh

注意:如果在/opt/module/azkaban/azkaban-exec目錄下出現executor.port檔案,說明啟動成功,沒有說明前面配置有問題。
4.啟用executor

[hadoop@hadoop102 azkaban-exec]$ curl -G "hadoop102:$(<./executor.port)/executor?action=activate" && echo
[hadoop@hadoop103 azkaban-exec]$ curl -G "hadoop103:$(<./executor.port)/executor?action=activate" && echo
[hadoop@hadoop104 azkaban-exec]$ curl -G "hadoop104:$(<./executor.port)/executor?action=activate" && echo

如果三臺機器都出現如下提示,則表示啟用成功

{"status":"success"}

注意:每次啟動都需要重新啟用

四. 配置Azkaban WebServer

Azkaban Web Server處理專案管理,身份驗證,計劃和執行觸發。
1.編輯azkaban.properties

[hadoop@hadoop102 azkaban]$ vim /opt/module/azkaban/azkaban-web/conf/azkaban.properties

修改如下屬性,

...
#改時區
default.timezone.id=Asia/Shanghai
...
#自己的主機,使用者,密碼
database.type=mysql
mysql.port=3306
mysql.host=hadoop102
mysql.database=azkaban
mysql.user=azkaban
mysql.password=000000
mysql.numconnections=100
...
#只需要StaticRemainingFlowSize,CpuStatus
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus

說明

azkaban.executorselector.filters: 當有多個Executor同時啟動的時候,需要從中選擇一個Executor去執行任務,這裡設定一組過濾器的種類,不滿足要求的Executor就不會被分配任務
StaticRemainingFlowSize:正在排隊的任務數;
CpuStatus:CPU佔用情況
MinimumFreeMemory:記憶體佔用情況。測試環境,必須將MinimumFreeMemory刪除掉,否則它會認為叢集資源不夠,不執行。

2.修改azkaban-users.xml檔案,新增atguigu使用者

[hadoop@hadoop102 azkaban-web]$ vim /opt/module/azkaban/azkaban-web/conf/azkaban-users.xml
<azkaban-users>
  <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
  <user password="metrics" roles="metrics" username="metrics"/>
  <!--測試使用者-->
  <user password="test" roles="metrics,admin" username="test"/>

  <role name="admin" permissions="ADMIN"/>
  <role name="metrics" permissions="METRICS"/>
</azkaban-users>

3.必須進入到hadoop102的/opt/module/azkaban/azkaban-web路徑,啟動web server

[hadoop@hadoop102 azkaban-web]$ bin/start-web.sh

4.訪問http://hadoop102:8081,並用test使用者登陸

出現以下頁面說明安裝成功。