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使用者登陸
出現以下頁面說明安裝成功。