Kettle 叢集(cluster)在多個伺服器(windows、linux)上併發執行
Kettle叢集(cluster)在多個伺服器(windows、linux)上併發執行
目錄
不管是linux下還是windows下部署kettle前提是機器上都已安裝JDK。其次把kettle的安裝檔案解壓後即可。Windows下啟動spoon.bat;linux下啟動spoon.sh。
本實驗使用的伺服器:
127.0.0.1 lixuemei-PC
10.2.2.11 DBM011
10.4.2.12 DBM012
10.2.2.10 DBM010
本實驗開啟的四個carte服務,其中一臺為Master另外三臺為Slave,來實現在Kettle的Spoon中對mysql資料庫中資料表讀取後,以叢集方式來執行排序的過程。
Carte的配置檔案所在路徑:F:\BDE\kettle\data-integration\pwd
(1)主伺服器(carte-config-master-8080.xml)的配置內容為:
<slaveserver>
<name>master1</name>
<hostname>lixuemei-PC</hostname>
<port>8080</port>
<master>Y</master>
</slaveserver>
其中<hostname>lixuemei-PC</hostname>表示以本機作為主伺服器。在本機的C:\Windows\System32\drivers\etc\hosts 檔案中新增內容:127.0.0.1 lixuemei-PC。相應的其他三個伺服器上的hosts檔案中也新增內容:10.200.4.163lixuemei-PC。
(2)子伺服器(carte-config-8082.xml)的配置內容為:
<masters>
<slaveserver>
<name>master1</name>
<hostname>lixuemei-PC</hostname>
<port>8080</port>
<username>cluster</username>
<password>cluster</password>
<master>Y</master>
</slaveserver>
</masters>
<report_to_masters>Y</report_to_masters>
<slaveserver>
<name>slave2-8082</name>
<hostname>10.2.2.11</hostname>
<port>8082</port>
<username>cluster</username>
<password>cluster</password>
<master>N</master>
</slaveserver>
其中<hostname>10.2.2.11</hostname>為子伺服器的ip。
同樣方式設定其他自伺服器(carte-config-8083.xml、carte-config-8085.xml)的配置內容。把更改好的windows下的pwd資料夾分別覆蓋其他三個伺服器上的相應資料夾。
對於Windows執行:Carte.batIP address port
對於Linux執行:carte.shIP address port
圖1所示啟動windows上的主節點,並已啟動成功。
圖1 Master1
相似地,圖2—圖4在linux上啟動其他三個子節點:
圖2 Slave1-8085
圖3 Slave2-8082
圖4 Slave3-8083
特別需要注意的是:伺服器的名稱一定要與pwd資料夾下面的配置檔案<name>屬性所對應的值是一致的。所新建的子伺服器一定要在pwd資料夾下面要有對應的配置檔案才可以。
圖5所示配置好的主節點,需要在“是伺服器嗎”選項勾選。
圖5 主節點配置
圖6所示配置好的三個配置好的子節點,在"是主伺服器嗎?"這個選項中,因為它不是主伺服器,所以不對其進行勾選。
圖6 子節點配置
下圖是將各個子伺服器匯入到叢集中,命名為linux_test_cluster:
圖7 kettle叢集schemas設定
點選【主物件樹】下的【DB連線】進行建立資料庫連線。
圖8 資料庫連線
在【核心物件】中的【輸入】中把【表輸入】拖到主視窗。雙擊工作區中的【表輸入】圖表就可以寫對應的查詢語句:
圖9 建立表輸入
在【核心物件】中的【轉換】中把【排序記錄】拖到主視窗。雙擊工作表中的【排序記錄】,設定需要排序的欄位,具體如下圖:
圖10 排序記錄設定
如果要實現的是叢集併發的方式來對資料進行排序,需要右鍵單擊【排序記錄】後選擇【叢集】
圖11 選擇叢集
確定後【排序記錄】成如下情形:
圖12 選擇集群后結果
對於輸出,我們輸出到site資料庫的kettle_rank_site_copy表:
圖13 建立表輸出
執行轉換時選擇【叢集方式執行】:
圖14 叢集方式執行
圖15 Master1輸出
圖16 slave1-8085輸出
圖17 slave2-8082輸出
圖18 slave3-8083輸出