Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運(yùn)行,綠色無需安裝,數(shù)據(jù)抽取高效穩(wěn)定。
Kettle 中文名稱叫水壺,該項目的主程序員MATT希望把各種數(shù)據(jù)放到一個壺里,然后以一種指定的格式流出。
Kettle這個ETL工具集,它允許你管理來自不同數(shù)據(jù)庫的數(shù)據(jù),通過提供一個圖形化的用戶環(huán)境來描述你想做什么,而不是你想怎么做。
Kettle中有兩種腳本文件,transformation(.ktr)和job(.kjb),transformation完成針對數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,job則完成整個工作流的控制。
kettle集群中,主節(jié)點(diǎn)主要充當(dāng)將任務(wù)分給從節(jié)點(diǎn)的角色,而從節(jié)點(diǎn)則是真正計算處理數(shù)據(jù)的節(jié)點(diǎn),數(shù)據(jù)處理完畢后則將數(shù)據(jù)合并到主節(jié)點(diǎn),然后主節(jié)點(diǎn)再將數(shù)據(jù)返回給客戶端
目錄
- 一、安裝環(huán)境
- 二、環(huán)境準(zhǔn)備
- 三、kettle分布式集群搭建步驟
- 四、集群測試
一、安裝環(huán)境
操作系統(tǒng): CentOS 7
kETTLE版本: pdi-ce-9.0.0.0-423
集群:
192.168.111.241 master
192.168.111.242 slave1
192.168.111.243 slave3
192.168.111.245:MySQL服務(wù)器(測試用,包括源庫表和目標(biāo)庫表)
二、環(huán)境準(zhǔn)備
1、JDK安裝(每個節(jié)點(diǎn)都要安裝配置)
yum安裝JDK
[root@master ~]# yum install java-1.8.0-openjdk* -y
環(huán)境變量配置
/etc/profile文件中追加以下:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
export PATH=$PATH:$JAVA_HOME/bin
2、配置主機(jī)名(每個節(jié)點(diǎn)都要配置)
hostname文件
/etc/hostname文件將主機(jī)名修改,其中master機(jī)器中寫入master,slave1機(jī)器寫入slave1,slave2機(jī)器寫入slave2
如master:

hosts文件
在hosts文件中寫入各個節(jié)點(diǎn)的IP及主機(jī)名映射

3、MySQL數(shù)據(jù)庫安裝配置
此步驟省略,當(dāng)然不一定是MySQL數(shù)據(jù)庫,你也可以是Oracle等等其他數(shù)據(jù)庫,此處數(shù)據(jù)庫只是用來最后測試用
三、kettle分布式集群搭建步驟
1、下載kettle安裝包
各個版本下載地址:https://sourceforge.net/projects/pentaho/files/
可以下載到本機(jī),然后將壓縮包上傳到服務(wù)器,也可以直接在服務(wù)器上直接用wget下載
2、上傳
如果下載到本機(jī)的話就需要上傳到各個服務(wù)器,如果是在服務(wù)器上使用wget命令下載的話,每個節(jié)點(diǎn)都需要下載,同時本機(jī)(用來測試)也保留一份
3、解壓
# 各個節(jié)點(diǎn)都要操作,此處以主節(jié)點(diǎn)為例
[root@master home]# unzip pdi-ce-9.0.0.0-423.zip
4、修改配置文件
需要修改的配置文件及所在目錄

說明: 并不是所有的配置文件都要修改,其中,
carte-config-master-8080.xml是主節(jié)點(diǎn)需要修改的配置文件
carte-config-808X.xml是從節(jié)點(diǎn)需要修改的配置文件,需要多少個從節(jié)點(diǎn)就修改多少個,本例使用了兩個從節(jié)點(diǎn),因此修改其中兩個即可
master節(jié)點(diǎn)上
修改carte-config-master-8080.xml

參數(shù)說明:
name是節(jié)點(diǎn)名稱
hostname是本機(jī)IP或主機(jī)名
port是監(jiān)聽端口
master:Y為本節(jié)點(diǎn)是主節(jié)點(diǎn),N為本節(jié)點(diǎn)為從節(jié)點(diǎn)
username:集群界面登錄用戶名
password:集群界面登錄密碼
slave1節(jié)點(diǎn)
修改carte-config-8081.xml

其中,<master>標(biāo)簽中的信息是跟master節(jié)點(diǎn)中配置的主節(jié)點(diǎn)配置文件(master節(jié)點(diǎn)上的carte-config-master-8080.xml文件)是一致的,下面的<slaveserver>標(biāo)簽中的配置為從節(jié)點(diǎn)的配置,各個參數(shù)意義跟master的是一樣的
slave2節(jié)點(diǎn)
修改 carte-config-8082.xml

修改方式與修改slave1的方式一致
下載mysql驅(qū)動包
下載mysql驅(qū)動包并放到data-integration/lib 目錄下(因為后面需要用mysql測試,如果使用其他數(shù)據(jù)庫的話那就下載對應(yīng)數(shù)據(jù)庫的驅(qū)動包),每個節(jié)點(diǎn)都需要
啟動master
[root@master data-integration]# nohup ./carte.sh 192.168.111.241 8080 &

啟動slave1
[root@slave1 data-integration]# nohup ./carte.sh 192.168.111.242 8081 &

啟動slave1
[root@slave2 data-integration]# nohup ./carte.sh 192.168.111.243 8082 &

四、集群測試
1、在本機(jī)中將下載的kettle解壓,并雙擊spoon.bat進(jìn)入kettle圖形界面

2、在spoon中新建一個轉(zhuǎn)換
然后在新建的轉(zhuǎn)換中選擇主對象樹-子服務(wù)器-新建子服務(wù)器
主節(jié)點(diǎn)

從節(jié)點(diǎn)


其中,填寫的信息要跟剛剛在服務(wù)器上配置的XML文件要一致,master子服務(wù)器填寫master中配置文件的信息,slave則填寫相應(yīng)slave信息的
2、配置schema
選擇主對象樹-集群schema-新建schema
將剛剛配置的子服務(wù)器都添加進(jìn)入

3、測試
1、準(zhǔn)備一張有數(shù)據(jù)的表
2、剛剛創(chuàng)建的轉(zhuǎn)換中簡單弄一個轉(zhuǎn)換過程
3、右鍵排序記錄,點(diǎn)擊集群,然后選擇集群名稱

執(zhí)行轉(zhuǎn)換,并選擇以集群方式執(zhí)行,并在各個服務(wù)器查看日志

查看各個節(jié)點(diǎn)的日志:
master

slave1

slave2

網(wǎng)頁端:
