借鑑https://www.cnblogs.com/skyrim/p/5104557.html 尊重原創謝謝!
一、集羣的原理與優缺點
1.1集羣的原理
Kettle集羣是由一個主carte服務器和多個從carte服務器組成的,類似於master-slave結構,不同的是’master’處理具體任務,只負責任務的分發和收集運行結果。
Master carte結點收到請求後,把任務分成多個部分交給slave carte執行,slave執行完畢後把結果交給mater 進行彙總,再由mster返回結果。
1.2集羣的優點
和其它系統的集羣一樣,有以下優點:
1)多服務器運行,加快處理速度,對於大數據量的操作更明顯
2)防單點失敗,一臺服務器故障後其它服務器還可以運行
1.3集羣的缺點
1)採用主從結構,不具備自動切換主從的功能。所以一旦主節點宕機,整個系統不可用
2)對網絡要求高,節點之間需要不斷的傳輸數據
3)需要更多的服務器,而且主節點沒有處理能力
1.4 適用場景
適合於:
1)需求kettle能時刻保持正常運行的場景
2)大批量處理數據的場景
二、集羣搭建
2.1 配置子服務器
2.1.1 配置主服務器
打開ketlle目錄,找到pwd目錄,裏面有4個XML文件,分別是子服務器的配置文件和密碼文件:
Carte-config-master-8080.xml是主服務器的配置文件。編輯該文件,根據情況修改其中的name\hostname\port\master等屬性。Name是服務器的名稱,hostname是主機名或者IP,port是端口號,Master表明是否是主服務器。此外,加上兩行:
<username>cluster</username>
<password>cluster</password>
在<master>Y<mater>之下
接着啓動主服務器,在kettle目錄中打開cmd窗口,執行Carte.cmd localhost 8080
至此,主服務器配置完成。
2.1.2 配置從服務器
剩下的三個爲從服務器的配置文件。以carte-config-8081.xml爲例。打開該文件:
發現該文件有<master>和<slaveserver>兩層標籤,<master>標籤表示該服務器要連接的主服務器的信息,保持與carte-config-master.xml一致。<slaveserver>標籤是從服務器的信息,按照需要更改即可。
然後啓動slave1-8081從服務器: Carte.cmd localhost 8081
按照同樣的方法,配置slave2-8082\slave3-8083並啓動。
2.2 建立集羣
2.2.1 在spoon中創建子服務器。
打開spoon.bat,新建一個轉換。選擇主對象樹-子服務器,右鍵新鍵子服務器:
把xml中的信息複製過來,保證與xml中的信息一模一樣。按照這種文件配置master slave1-8081 slave2-8082。
2.2.2 建立集羣
在主對象樹中選擇kettle集羣schemas,填寫schema名稱,端口、sokects緩存大小、sockets刷新時間間隔、socketts數據是否壓縮。在右邊點擊選擇子服務器,選擇需要的子服務器。
Schema名稱即集羣的名稱。
端口即集羣對外服務的端口.
sockets緩存大小:sockets緩存
Sockets刷新時間間隔:達到多少行記錄時刷新到子服務器。
Sockets數據是否壓縮:如果網絡狀況差,則建議選擇。網絡良好時不用選擇。
2.3 執行轉換
配置完集羣后,選擇轉換中的執步驟”排序記錄“,右鍵該步驟,選擇”集羣”,選擇剛纔配置的集羣。
選擇然後會發現排序紀錄多出”CX2”,表示有2個子服務器來執行。在一個三個子服務器的集羣中,主服務器負責任務分發、結果收集,轉換任務由從服務器執行,故只有兩個節點執行。
執行該轉換:
在命令臺中,主服務器:
從服務器1:
從服務器2:
可以看到各個子服務器的執行情況。
至此,集羣搭建成功。