喵星之旅-屯粮的松鼠-linux环境kettle部署

环境准备

系统要求

SUSE Linux Enterprise Server 12 或者centos7 版本过高会有问题,需要适配版本

Java 8 JDK(Kettle 7.1推荐版本)

至少4GB内存(推荐8GB以上)

足够的磁盘空间(建议20GB以上)

Kettle 7.1安装

从Pentaho官方网站或镜像源下载Kettle 7.1的压缩包(pdi-ce-7.1.0.0-12.zip)。

1
https://github.com/ambientelivre/legacy-pentaho-ce/?tab=readme-ov-file

解压安装

1
2
3
4
5
6
7
8
9
10
# 创建安装目录
sudo mkdir -p /opt/kettle

# 解压到安装目录
sudo unzip pdi-ce-7.1.0.0-12.zip -d /opt/kettle

# 调整权限
sudo chown -R <your_user>:<your_group> /opt/kettle


配置与优化

内存配置

编辑$KETTLE_HOME/spoon.sh文件,调整JVM内存参数:

1
2
3
4
5
bash
# 修改内存配置(根据服务器实际内存调整)
if [ -z "$PENTAHO_DI_JAVA_OPTIONS" ]; then
PENTAHO_DI_JAVA_OPTIONS="-Xms1024m -Xmx4096m -XX:MaxPermSize=256m"
fi

路径处理

作业和转换文件:确保文件中的路径使用Linux风格的分隔符(/)

资源库配置:如果使用数据库资源库,确保连接字符串正确

文件路径:避免使用绝对路径,优先使用相对路径或环境变量

权限设置

1
2
# 确保Kettle运行用户对相关目录有读写权限
sudo chmod -R 755 /opt/kettle

测试部署

启动Spoon(图形界面)

1
2
cd /opt/kettle
./spoon.sh

运行测试作业

创建一个简单的转换,测试数据提取和加载

运行作业,检查日志是否有错误

Kettle 命令行工具使用

pan.sh

1
2
./pan.sh -option1 value1 -option2 value2 ...

kitchen.sh

1
2
./kitchen.sh -option1 value1 -option2 value2 ...

常用参数

1
2
3
4
5
6
7
8
9
10
11
-file	指定要执行的文件路径	-file=/opt/kettle/jobs/myjob.kjb
-trans 指定转换名称(在资源库中) -trans=转换名称
-job 指定作业名称(在资源库中) -job=作业名称
-rep 指定资源库名称 -rep=资源库名称
-user 资源库用户名 -user=admin
-pass 资源库密码 -pass=password
-param 传递参数(格式:参数名=值) -param:date=2024-01-01
-log 指定日志文件路径 -log=/opt/kettle/logs/job.log
-level 指定日志级别(Basic/Detailed/Debug/Rowlevel/Error/Nothing) -level=Debug
-norep 不将日志写入资源库 -norep
-version 显示版本信息 -version

执行本地转换文件(pan.sh)

1
2
3
4
5
# 进入 Kettle 目录
cd /opt/kettle/data-integration

# 执行转换文件
./pan.sh -file=/opt/kettle/transformations/sales_data.ktr -log=/opt/kettle/logs/sales_transform.log

执行本地作业文件(kitchen.sh)

1
2
3
4
5
# 进入 Kettle 目录
cd /opt/kettle/data-integration

# 执行作业文件
./kitchen.sh -file=/opt/kettle/jobs/daily_load.kjb -log=/opt/kettle/logs/daily_load.log

传递参数执行作业

1
2
# 传递日期参数
./kitchen.sh -file=/opt/kettle/jobs/extract_data.kjb -param:extract_date=2024-01-01 -log=/opt/kettle/logs/extract_20240101.log

从资源库执行作业

1
2
# 从资源库执行作业
./kitchen.sh -job=DailyETL -rep=Production -user=admin -pass=password -log=/opt/kettle/logs/daily_etl.log

后台执行并输出日志

1
2
# 后台执行作业,将输出重定向到日志文件
nohup ./kitchen.sh -file=/opt/kettle/jobs/nightly_process.kjb -log=/opt/kettle/logs/nightly.log > /dev/null 2>&1 &
文章目录
  1. 环境准备
  2. Kettle 7.1安装
  3. 测试部署
  4. Kettle 命令行工具使用
|