ubuntu22安装和部署Kettle8.2

前提

kettle是纯java编写的etl开源工具,目前kettle7和kettle8都需要java8或者以上才能正常运行。所以运行kettle前先检查java环境是否正确配置,java版本是否是8或者以上。

kettle安装

1、创建kettle目录,并将kettle的zip包解压到kettle目录下

sudo unzip pdi-ce-8.2.0.0-342.zip

mv data-integration/ ./kettle/

2、查看以下sh文件使用都有执行的权限,如果没有请加上

3、执行kitchen.sh脚本

执行后如果出现warning,根据提示安装即可,不然可能导致部分特性无法使用(主要是spoon的使用,如果是无界面环境,可以忽略)

以下是包warning需要安装libwebkitgtk-1.0-0的详细处理步骤

vim /etc/apt/sources.list

在文件的末尾添加;

deb http://cz.archive.ubuntu.com/ubuntu bionic main universe

执行

sudo apt-get update

在Ubuntu更新源是,提示"没有数字签名。无法安全地用该源进行更新,所以默认禁用该源",主要原因是由于apt-get update没有公钥,无法验证下列签名。

处理方法

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
3B4FE6ACC0B21F32是缺少的密钥,缺少什么就下什么

执行安装

sudo apt-get install libwebkitgtk-1.0-0

有点慢耐心等待。。。

重新执行kitchen.sh脚本

安装好以后,warngin就没有了。出现以下的提示界面说明kettle可以正常使用了。

同时home目录下应该会有一个.kettle的目录。

./spoon.sh

kettle转换与作业执行

在kettle中pan和kitchen两个工具分别用来执行transformation

(转换)和job(作业),如下所示

对于文件存储,不是数据库资源库,可以如下的方式存放文件:

所有的transformation文件存放在/srv/kettle/transfomation/

所有的job文件存放在/srv/kettle/jobs

所有的日志文件存放在/var/kettle/logs

1、使用pan执行transformation

pan语法

./pan.sh -option=value arg1 arg2

eg:

sudo ./pan.sh -file=/srv/kettle/transformation/EtltestTrans.ktr -level=Detailed > /var/kettle/log/EtltensTrans.log &

2、使用kitchen执行job

kitchen语法

./kitchen.sh -option=value arg1 arg2

eg

sudo ./kitchen.sh -file=/srv/kettle/jobs/EtltesJob.kjb -level=Detailed > /var/kettle/logs/EtltestJob.log &

常用参数列表:

kettle服务器端部署

1、通过Start组件定时执行任务

在kettle中我们可以通过start组件来设置定时任务,如下所示,这种方式不推荐使用,因为该job会一直占有一个进程,容易内存溢出。

2、通过crontab执行kettle任务

在linux中crontab是用来提交和管理用户周期性执行的任务。

例如(文件存储位置):

所有的transformation文件存放在/srv/kettle/transformtions/

所有的job文件存放在/srv/kettle/jobs/

所有的日志文件存放在/var/kettle/logs/

所有的执行脚本存放在/srv/kettle/script/

1)首先我们创建一个脚本。因为是crontab执行任务,我们需要重新配置导入java配置。

bash 复制代码
export JRE_HOME=/opt/java/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

#cd workspace
cd /opt/kettle/data-integration/

# exec job
./kitchen.sh -file=/srv/kettle/jobs/EtltestJob.kjb -level=Detailed > /var/kettle/logs/EtltestJob.log 

2)在终端上,键入"contab -e" ,进入定时任务文件,添加任务。

bash 复制代码
# m h  dom mon dow command
0 2 * * * /srv/kettle/script

3)重启cron并查看任务

3、kettle通过carte远程调度

kettle的部署有很多种模式,上面讲的是最原生的模式(pan/kitchen)。但是这种方式不利于监控、调度和资源分配。kettle本身提供了一个用于调度的web服务carte。carte允许远程请求http进行监控、启动、停止在carte服务上运行的job和trans。要部署使用carte的大致过程如下所示:

1)修改xml配置文件

vim carte-config-master-8080.xml

在kettle.pwd的描述中可以知道默认的用户名密码都是cluster(不放心的话可以通过和节点设置用户名密码),如果要修改密码可以在配置文件中配置

2)启动carte

启动时将刚刚的配置文件加上

bash 复制代码
nohub ./carte.sh pwd/carte-config-master-8080.xml &

启动完成后就可以访问carte了,界面非常的简陋。

3)配置子服务器

上面是成功的将carte服务打开,下面就需要将spoon连接到carte。在左侧的树中我们需要添加一个子服务器。如下所示:

4)创建一个新的运行配置,setting选择slave server

5)提交任务

相关推荐
RestCloud14 小时前
典型的ETL使用场景与数据集成平台的应用
数据仓库·etl·数字化转型·数据迁移·数据集成·实时cdc
SeaTunnel3 天前
Apache SeaTunnel MCP Server:让AI成为你的ETL助手
人工智能·apache·etl
zhangjin12224 天前
kettle插件-postgresql插件
大数据·postgresql·etl·kettle cdc·kettle插件·kettle实时数据同步
ETLCloud数据集成社区6 天前
ETLCloud是如何通过Oracle实现CDC的?
数据库·oracle·etl·实时数据同步
敲敲敲-敲代码7 天前
【Kettle安装】Kettle安装过程, 电脑已安装java23,安装Kettle 出现报错:尝试启动 Java 虚拟机(JVM)时失败解决方法
java·kettle
zhangjin12227 天前
kettle从入门到精通 第九十四课 ETL之kettle MySQL Bulk Loader大批量高性能数据写入
大数据·数据仓库·mysql·etl·kettle实战·kettlel批量插入·kettle mysql
RestCloud11 天前
ETL中数据转换的三种处理方式
数据仓库·etl·数字化转型·数据转换·api管理
RestCloud12 天前
ETL中三种数据加载性能优化的方式
数据仓库·性能优化·etl·数字化转型·数据集成平台·数据加载方式
RestCloud12 天前
ETL 自动化:提升数据处理效率与准确性的核心驱动力
数据仓库·自动化·api·etl·数字化转型·数据集成平台
遇码14 天前
阿里开源的免费数据集成工具——DataX
大数据·开源·kettle·datax·数据集成·flinkcdc·seatunnel