在使用Kettle的集群排序中 Carte的设定——(基于Windows)
在使用Kettle的集群排序中 Carte的設(shè)定——(基于Windows)
本片文章主要是關(guān)于使用Kettle的UI界面:
Spoon來實現(xiàn)基于集群的對數(shù)據(jù)庫中的數(shù)據(jù)表數(shù)據(jù)進(jìn)行排序的試驗。
以及在實驗過程中所要開啟的Carte服務(wù)的一些配置文件的設(shè)置,
還有基于Windows cmd 的相關(guān)Carte命令。
文章主要分為六個部分:
1.介紹carte
2.carte相關(guān)配置文件的設(shè)定
3.carte服務(wù)的開啟命令
4.在kettle的圖形界面中對集群進(jìn)行相關(guān)的設(shè)定
5.使用kettle集群模式對相關(guān)的數(shù)據(jù)進(jìn)行排序
6.有關(guān)于集群調(diào)用子服務(wù)器的java源代碼調(diào)用實現(xiàn)
1.介紹carte
carte是由kettle所提供的web server的程序,
carte也被叫做子服務(wù)器(slave) 在kettle調(diào)用集群(cluster)來進(jìn)行分布式分發(fā)、處理任務(wù)的時候,
可以開啟多個carte服務(wù)進(jìn)程 來進(jìn)行分發(fā)ETL(master)任務(wù)和接收,運行,提交ETL任務(wù)(slave)。
就像是《pentaho kettle solutions》中對Carte的定義:
"Carte a lightweight server process allows for remote monitoring and enables the transformation clustering capabilities ".
"Carte是一個輕量級的服務(wù)器進(jìn)程,可以遠(yuǎn)程監(jiān)控和開啟轉(zhuǎn)換集群的能力".
2.carte相關(guān)配置文件的設(shè)定
與hadoop的結(jié)點設(shè)置類似,本實驗將要實現(xiàn)的是基于一臺主機,
開啟四個carte服務(wù),其中一臺為Master另外三臺為Slave,
來實現(xiàn)在Kettle的Spoon中對數(shù)據(jù)庫中數(shù)據(jù)表讀取后 以集群的方式來執(zhí)行排序的過程。
開啟的carte服務(wù)所顯示的命令窗口都是一樣的,但是究竟哪一個是主服務(wù)哪些又是子服務(wù)呢?
對于集群中的主服務(wù)器還是子服務(wù)器的設(shè)定,
我們?nèi)耘f引用《pentaho kettle solutions》書中的一段話進(jìn)行說明(因為很權(quán)威的):
"A cluster schema consists of one master server that is being used as a controller
for the cluster , and a number of non-master slave servers. In short, we refer to
the controlling Carte server as the master and the other Carte servers as slaves"
LZ在不考慮到句式主 謂 賓 定 狀 補的條件下,對上述介紹的理解是這樣的。
"一個集群實體是由 一個 用來主控整個集群的主節(jié)點
和多個 不是主節(jié)點
(也就是主節(jié)點除外,即配置文件中 屬性<master>N</master>對應(yīng)的值置為N的對應(yīng)結(jié)點)
的子服務(wù)器所構(gòu)成的。
簡而言之,我們把開啟的主控Carte 服務(wù)器 叫做 主節(jié)點 而其他的Carte 服務(wù)器叫做 從結(jié)點"。
關(guān)于Carte的服務(wù)器是主還是從是由相關(guān)的配置文件:carte-config.xml中的
屬性<master></master>中是"Y"還是"N" 所設(shè)定的,
其實這個和hadoop通過相關(guān)的XML配置文件來設(shè)定是主節(jié)點還是從節(jié)點是很神似的。
配置文件吧,其實根據(jù)計算機不同,以及計算機中的環(huán)境變量的不同而千差萬別。
主要說一下LZ關(guān)于配置文件的設(shè)定過程吧,
若想讓Carte程序可以成功運行的話,首先就應(yīng)該設(shè)定它的配置文件,
配置文件所在的路徑,如下圖所示:
(carte-config.xml 截圖)
在這里L(fēng)Z在正常進(jìn)行配置的時候cmd窗口報錯,說是在kokia/Acer/user/acer/
的下面找不到pwd文件夾(kokia是LZ的計算機名稱)
所以LZ根據(jù)提示將kettle安裝解壓路徑下的pwd文件夾復(fù)制了一份到提示信息的路徑下,
才使得Carte正常運行,不過要讓LZ說是什么原理嘛,其實LZ也不知道的,
或許默認(rèn)Carte服務(wù)啟動的時候會到該路徑下自行尋找相關(guān)的配置文件吧......
pwd這個文件夾下面默認(rèn)存放的是關(guān)于Carte的一些配置文件以及登陸用戶名以及密碼等等,
它所在的kettle安裝包的路徑就是./data-integration/pwd 這個下面的。
下面是關(guān)于主服務(wù)器(master:carte-config-master-8080.xml)配置文件進(jìn)行相關(guān)注釋說明:
<slave_config> <slaveserver> <name>master1</name> <hostname>localhost</hostname> <port>8080</port> <master>Y</master> </slaveserver> </slave_config> <!-- even though called master node , it is a instance of the slaveserver <name> attribute is used to define the name of the slaveserver <hostname> in this conf file is the localhost which equal to the "127.0.0.1" IP address
當(dāng)然,對于這個hostname的話,在Linux的環(huán)境中,
在對應(yīng)的配置文件中 有相關(guān)的IP地址與主機名稱相對應(yīng)的,
在Windows下面,LZ并不知道相關(guān)的配置文件在哪里,
所以如果是集群的節(jié)點所在的并不是基于一臺主機的話,
<hostname>這個屬性的值可以使用該節(jié)點所在的主機IP地址所代替。 <port> 8080 , in carte the port of 8080 is regarded as the port of the master node in default <master> : Y which talked about above , attribute value = Y means that the current slaveserver is regarded as the master node in the cluster. -->
下面是關(guān)于子服務(wù)器(slave)的配置文件進(jìn)行相關(guān)注釋說明:
<slave_config> <masters> <slaveserver> <name>master1</name> <hostname>localhost</hostname> <port>8080</port> <username>cluster</username> <password>cluster</password> <master>Y</master> </slaveserver> </masters> <report_to_masters>Y</report_to_masters> <slaveserver> <name>slave1-8081</name> <hostname>localhost</hostname> <port>8081</port> <username>cluster</username> <password>cluster</password> <master>N</master> </slaveserver> </slave_config>
從節(jié)點的配置文件照比主節(jié)點的配置文件要稍微多一些內(nèi)容的,
首先,多的是<masters>這個屬性,其中包含的是關(guān)于一個<slaveserver>實體的設(shè)定,
其實也就是相應(yīng)的在其中引入了主節(jié)點的相關(guān)設(shè)定的屬性值。
然后有一個屬性是<report_to_masters>這個屬性是用來設(shè)定:
slave1-8081這個節(jié)點已經(jīng)是主節(jié)點的子節(jié)點了,但是是否向主節(jié)點提交信息還是不知道的,
所以要通過這個屬性對其進(jìn)行相關(guān)的設(shè)定。
接下來就是對從節(jié)點進(jìn)行相關(guān)的設(shè)定,關(guān)于IP地址,端口號,節(jié)點名稱,登錄用戶名以及密碼,
又因為該節(jié)點是子節(jié)點,所以<master>這個屬性值對應(yīng)的是"N".
需要注意的是,如果是在開啟carte或是Spoon的時候進(jìn)行相關(guān)的配置文件 進(jìn)行設(shè)定的話呢,
需要退出程序之后再次進(jìn)入才能是相關(guān)的配置文件生效。
3.carte服務(wù)的開啟命令
Carte有著針對不同系統(tǒng)可以正常運行的不同腳本文件,
對于Windows有著:Carte.bat
對于Linux有著:carte.sh
本文主要討論的是基于Windows的運行。
首先,打開cmd控制臺窗口:
然后(LZ的cmd 運行有一些問題,因為LZ的計算機是64bit的,
所以需要右鍵單擊cmd:選擇這個"以管理員的身份運行"這個選項,
才能保證carte的正確運行,不然權(quán)限不夠啟動會出錯的)
Windows下,運行Carte:
./Carte.bat IP address port
如截圖所示:master node是8080端口,下面開啟master node:
如下圖所示,代表的是本地的主節(jié)點(port=8080)Carte服務(wù)已經(jīng)被成功開啟了,
4.在kettle的圖形界面中對集群進(jìn)行相關(guān)的設(shè)定
首先,應(yīng)該開啟Spoon程序,進(jìn)入到圖形界面中后,創(chuàng)建一個轉(zhuǎn)換,
然后選擇左邊選項樹的的左選項:主對象樹,
然后找到子服務(wù)器右擊選擇新建,如下圖所示配置好主節(jié)點。
需要注意的是:
1.服務(wù)器的名稱一定要與pwd文件夾下面的配置文件<name>屬性所對應(yīng)的值是一致的
2.所新建的子服務(wù)器一定要在pwd文件夾下面要有對應(yīng)的配置文件才可以,
否則即便在Spoon中進(jìn)行相關(guān)的設(shè)定也不會在集群中作為一個節(jié)點所運行的。
因為配置文件決定的是Carte服務(wù)的啟動運行,而Spoon中需要調(diào)用到Carte服務(wù)。
如果一開始配置文件中沒有該節(jié)點的話,就無法啟動Carte服務(wù),
在Spoon中也就無法調(diào)用該Carte作為子服務(wù)器,更不用說是將該子服務(wù)器作為集群中的節(jié)點了。
當(dāng)然LZ也試著在Spoon界面中創(chuàng)建相關(guān)的子服務(wù)器,然后存盤該.ktr文件,
然后到相應(yīng)的pwd文件夾下面尋找是否有相關(guān)的配置文件生成,但沒有找到。
所以今后在Spoon中設(shè)定配置子服務(wù)器的時候,一定要先配置好Carte的配置文件才好。
下面的截圖是,將要作為集群的一個子節(jié)點在pwd文件夾下的配置文件信息:
可以看到的是,對應(yīng)的<name>屬性的值是:slave1-8081
所以在Spoon中設(shè)定子服務(wù)器作為子節(jié)點的時候,
最好是要保證二者(Spoon中的子服務(wù)器設(shè)定和配置文件)的一致性才好:
接下來的其余子節(jié)點就不進(jìn)行一一演示了。
在"是主服務(wù)器嗎?"這個選項中,因為它不是主服務(wù)器,所以不對其進(jìn)行勾選。
接下來將各個子服務(wù)器導(dǎo)入到集群中去,
選擇左對象樹,然后右鍵單擊:Kettle集群schemas->新建。
接下來選中相關(guān)的子服務(wù)器:
選中所有的要加入到cluster中的子服務(wù)器之后,點擊確定。
接下來就可以在集群schema對話框中看到相應(yīng)的選中的服務(wù)器了,如下圖所示:
感覺這篇文章的內(nèi)容有一點多了呢,估計后面的兩個主題也會涉及到很多的東西呢,
所以5、6這 兩個主題就留到接下來的一篇文章中來介紹吧~
5.使用kettle集群模式對相關(guān)的數(shù)據(jù)進(jìn)行排序
6.有關(guān)于集群調(diào)用子服務(wù)器的java源代碼實現(xiàn)
分類:Kettle
總結(jié)
以上是生活随笔為你收集整理的在使用Kettle的集群排序中 Carte的设定——(基于Windows)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pinus学习(1)
- 下一篇: 轻颜相机如何找到使用过的特效(汉典轻字的