1. 程式人生 > >Kettle 叢集(cluster)在多個伺服器(windows、linux)上併發執行

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輸出