KETTLE完全分佈式集羣搭建和示例

一、Kettle的集羣原理
完全分佈式即是在該集羣環境中所有的kettle服務都是部署在不同的機器上,互相之間沒有影響。此處以一個真實環境爲例,來介紹kettle完全分佈式環境的開發使用。生產環境中kettle服務器都是部署在linux服務器上,在windows本地開發好kettle任務,然後在linux集羣環境上運行。
二、完全分佈式集羣搭建
1.環境規劃
該環境模擬一臺主服務器,兩臺從服務器的方式。
KETTLE完全分佈式集羣搭建和示例
2.環境準備
首先需要先準備三臺linux服務器,並且分別在三臺機器上安裝好jdk和kettle。
(1)JDK安裝
此處不做詳細介紹,可參考網上安裝文檔。
(2)Kettle安裝
創建一個目,將下載好的kettle解壓後放在該文件夾下。
KETTLE完全分佈式集羣搭建和示例
測試安裝是否成功
在kettle的data-integration目錄中執行kitchen.sh文件,若出現幫助信息,證明安裝成功
KETTLE完全分佈式集羣搭建和示例
KETTLE完全分佈式集羣搭建和示例
3.環境配置
和windows環境一樣修改kettle配置文件,打開kettle的安裝目錄,進入到data-integration->pwd目錄,找到carte-config-master-8080.xml文件。該文件主要是進行master主機配置,name、hostname、port依次配置名稱、主機IP和端口號(如果已經使用可以修改)。
注意:username和password並不是指主機的登陸賬號和密碼,是集羣的賬號密碼,該賬號密碼是集羣連接的依據,賬號密碼是通過混淆的方式保存在pwd文件,kettle默認的賬號密碼是cluster/cluster,所以,在本機開發的時候,爲了方便,賬號密碼都不用修改,都使用cluster即可。
KETTLE完全分佈式集羣搭建和示例
carte-config-8081.xml文件是從服務器1的配置文件。打開該文件,如下圖。其中masters中,name、hostname、port需要和carte-config-master-8080.xml中完全一致。然後,同樣修改carte-config-8082.xml文件。
KETTLE完全分佈式集羣搭建和示例
至此配置完畢,可以啓動集羣環境了。
4.啓動集羣
進入到data-integration目錄下,運行./carte.sh 192.168.7.234 8080,啓動master節點。
KETTLE完全分佈式集羣搭建和示例
出現以下日誌代表啓動成功。
KETTLE完全分佈式集羣搭建和示例
然後,切換到slave1上,進入到data-integration目錄下,運行./carte.sh 192.168.7.214 8081,則啓動8081端口的子服務器。切換到slave2上,重複動作,啓動8082端口的子服務器。
KETTLE完全分佈式集羣搭建和示例

KETTLE完全分佈式集羣搭建和示例

在啓動了三臺集羣服務器之後,在瀏覽器中輸入192.168.7.234:8080,輸入cluster/cluster,進入到頁面如下:
KETTLE完全分佈式集羣搭建和示例
表示主節點已經啓動完畢。輸入192.168.7.214:8081及192.168.7.215:8082查看子服務器狀態。到此,集羣部署完畢。
三、完全分佈式集羣下示例
1.需求說明
讀取源數據表中數據到目標數據表中,具體轉換過程如下所示:
KETTLE完全分佈式集羣搭建和示例

2.啓動環境
首先按上面步驟啓動集羣環境,然後雙擊雙擊 Spoon.bat 啓動 kettle圖形界面工具。
3.環境配置
1)在主對象樹中新建子服務器,配置分別如下圖
KETTLE完全分佈式集羣搭建和示例
KETTLE完全分佈式集羣搭建和示例
主服務器配置如上所示,記得勾選“是主服務器”。
KETTLE完全分佈式集羣搭建和示例
從服務器slave1配置如上所示,slave2也按照上面配置,記得修改端口和名稱。
2)在主對象樹中,在“kettle集羣schmas”中右鍵,新建,點擊“選擇子服務器”,添加剛纔新建的子服務器,然後確定。
KETTLE完全分佈式集羣搭建和示例
4.設置運行參數
1)在步驟上右擊,選擇集羣,然後會發現排序紀錄多出”CX2”,表示有2個子服務器來執行。在一個三個子服務器的集羣中,主服務器負責任務分發、結果收集,轉換任務由從服務器執行,故只有兩個節點執行
KETTLE完全分佈式集羣搭建和示例
2)在主對象樹中,在集羣-“Run Configurations”中右鍵,新建,新增一個參數配置。
KETTLE完全分佈式集羣搭建和示例
按如上所示進行配置,選擇“Settings”-“Slave server”,選擇“Clustered”表示採用集羣方式運行,還可以選擇“master”、“slave1”、“slave2”,則表示在相應的遠程服務器上運行。
5.運行用例
點擊“運行”,運行配置選擇剛剛創建的參數-“僞分佈式集羣”,點擊“啓動”
KETTLE完全分佈式集羣搭建和示例
觀察slave1和slave2後臺日誌,發現兩個從服務器都在執行轉換,主服務器沒有日誌,因爲它只負責分發。
(1)主服務器234上面日誌信息,彙總記錄總的日誌信息,總共讀入5條數據,輸出5條數據。如下所示:
KETTLE完全分佈式集羣搭建和示例
(2)子服務器214日誌信息,該服務器總共讀入3條數據,輸出3條數據,如下所示:
KETTLE完全分佈式集羣搭建和示例
(3)子服務器215日誌信息,該服務器總共讀入2條數據,輸出2條數據,如下所示:
KETTLE完全分佈式集羣搭建和示例
6.關閉iptables服務和防火牆
如果遇到集羣服務器連不上的問題,需要檢查一下是否是防火牆需要關閉,centos7使用iptables,可以通過命令/etc/init.d/iptables stop 停止
注意:想要學習通過kettle工具實現hive、hbase數據庫抽取輸出,和其他更多關於kettle的知識,請掃描以下二維碼或者鏈接獲取學習資料。
鏈接地址:
https://edu.51cto.com/sd/e80d0
二維碼地址:
KETTLE完全分佈式集羣搭建和示例
同時也歡迎各位看官關注本人公衆號,本人將相關資料和學習視頻上傳到上面,供大家一起學習討論:
KETTLE完全分佈式集羣搭建和示例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章