国内企业做数据集成、数据仓库迁移的朋友,这两年应该都绕不开这个场景:项目要求信创环境,操作系统换成了欧拉(OpenEuler),原来的ETL调度工具Kettle还得继续用。我最近正好在OpenEuler 22.03 LTS SP4上完整部署了一套Kettle(Pentaho Data Integration),从JDK选型、系统配置、驱动适配到踩坑排查,整个过程整理出来,希望能帮正要上车的同行省点时间。
先说结论:OpenEuler上部署Kettle完全可行,无论是本地图形化开发还是服务器端命令行跑作业,都能稳定运行。关键就三个点:JDK版本选对、系统基础依赖装齐、数据库驱动放到位。剩下的都是体力活。这篇文章我会按照实际部署顺序来写,你现在拿到的是一份可以直接照着做的操作记录,而不是泛泛而谈的安装教程。
1. 部署规划与环境准备
1.1 为什么选OpenEuler 22.03 LTS SP4
欧拉系统目前主流的稳定版本就是22.03 LTS和24.03 LTS两条线。我这次选择的是22.03 LTS SP4(x86_64架构)的everything镜像,主要原因是生产环境求稳。
SP4是22.03这个长期支持版本的第4个更新包,属于成熟稳定期,内核版本是5.10,glibc、systemd这些基础组件都经历过大量验证。如果你是企业生产环境跑Kettle作业,我建议优先选LTS版本的SP3或SP4,而不是追新用24.03。24.03虽然新,但有些第三方组件的兼容性还没充分验证,比如某些老版本数据库驱动在更新的glibc下可能出奇怪问题。
这里顺便说一句,欧拉系统的Everything镜像里包含了大量软件包,安装时如果你打算用图形化开发环境,勾选“Server with GUI”或者最小化安装后再装桌面都可以。我实际部署时为了节省资源,服务器上跑的是最小化安装,本地开发机因为需要看Kettle的图形界面,才装了带桌面的版本。如果只是命令行执行转换和作业,最小化安装完全够用。
1.2 部署清单和版本选型逻辑
先把这次部署涉及的核心组件版本列出来,后面所有操作都基于这个组合:
| 组件 | 版本 | 说明 |
|---|---|---|
| 操作系统 | OpenEuler 22.03 LTS SP4 x86_64 | 服务器和开发机均为该版本 |
| Kettle (PDI) | 9.4.0.0-343 或 10.2.0.0-xxx | 9.x与10.x部署方式相同 |
| JDK | 1.8(OpenJDK)或 11 | 9.4建议JDK 8,10.x建议JDK 11 |
| 数据库驱动 | 按需放置 | MySQL、PostgreSQL、达梦等 |
JDK版本的选型是整个部署中最容易踩坑的地方。Kettle 9.x系列官方推荐Java 8,虽然用Java 11也能启动,但有些组件(比如某些旧版数据库驱动和插件)在Java 11下会报模块访问错误。Kettle 10.x则要求Java 11或17,这时候再用Java 8反而起不来。
我强烈建议:在开始安装之前先确定Kettle版本,再去匹配JDK版本,而不是先装一个最新版JDK然后被迫升级Kettle。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 欧拉系统的初始化配置
2.1 系统安装时的几个关键点
热词里有朋友提到“安装欧拉系统报错the password fail the dictionary check-error loading dic”,这个问题我在测试环境也遇到过。这个是OpenEuler的密码强度策略在拦截弱密码,安装时设置的root密码如果过于简单(比如全数字、纯字母、长度不够),就会触发dictionary check报错。解决办法很简单:设置密码时包含大小写字母加数字,长度至少8位,或者安装引导界面按提示调整密码复杂度选项。
另外,如果你是VMware里装欧拉,虚拟机设置时建议分配至少4GB内存和40GB磁盘,处理器给2核以上。Kettle跑起来之后JVM默认堆内存就有1GB左右,加上系统本身占用,2GB内存的虚拟机跑起来会非常痛苦。网络适配器选NAT或桥接都可以,只要后面能联网配yum源就行。
2.2 配置yum源:不配源后面寸步难行
刚装完的欧拉系统,dnf源默认指向的是官方repo。如果你在内网环境或者访问外网受限,一定要先搞定yum源,否则后面装JDK、装依赖包都会卡住。
最简单的做法是保留官方源,直接刷新缓存:
bash复制dnf makecache
如果是在内网环境,需要配置本地源或镜像源。欧拉的源配置在 /etc/yum.repos.d/ 目录下,常见的有 openEuler.repo。修改方式如下:
bash复制vi /etc/yum.repos.d/openEuler.repo
把baseurl改成你内网镜像地址(如果有),或者用清华、华为云等公开镜像源地址。改完后执行:
bash复制dnf clean all
dnf makecache
这里有个小坑:欧拉22.03的repo文件里分了 [OS]、[everything]、[EPOL] 等多个仓库,EPOL里包含了一些扩展包,如果你后面要装某些特殊依赖(比如图形界面相关组件),确认EPOL仓库的baseurl也配置正确且可用。
2.3 网络和主机名配置
服务器部署Kettle,网络
