最近做一个数据同步需求,用到了kettle,这里记录一下如何在windows开发完成后,迁移到linux的过程

环境:kettle8.2
linux:CentOS7.4
mysql:8.0

  1. kettle下载,官网下载比较慢,大家可以去国内镜像地址下载,百度一搜一大把

  2. linux环境kettle的安装,直接解压就ok
    unzip pdi-ce-8.2.0.0-342.zip -d pdi-ce-8.2

  3. 把mysql驱动放到kettle安装目录下的lib中,根据版本的不同,可能需要2个驱动包
    在这里插入图片描述

下面才是迁移的重点,如果你有数据库连接信息,在windows中,通过运行kettle的Spoon.bat在界面中轻松配置,但linux是没有界面的,如果你通过vnc等工具配置出界面也没有问题,这里讲解不通过linux界面,直接在window配置好后,把配置文件放到Linux中

  1. 在window c:\用户\name\.kettle下,把里面所有文件压缩,并命名为.kettle.zip
    注意:一定进到.kettle里面压缩

  2. 把压缩的文件上传到linux的用户目录:即 ~ ,(cd ~)
    注意:由于.在linux中属于隐藏文件,所以,需要使用命令查看
    ll -la在这里插入图片描述

  3. 备份原有的隐藏文件.kettle,防止找不到原文件
    cp -r .kettle .kettle.bak

  4. 解压上传的压缩文件
    unzip .kettle.zip -d .kettle

  5. 上传开发好的.kjb,.ktr文件

  6. 编写执行程序test.sh,由于linux和window的换行格式不同,如果通过notepad++编写,注意右下角改成Unix(LF)
    另外,命令中,kitchen.sh是执行.job文件的,pan.sh是执行.ktr,二选一即可

#!/bin/bash
export JAVA_HOME=/usr/local/jdk1.8.0_231 #此处改为适合的jdk8安装位置
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:/$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

TIMELOG=$(date "+%Y%m%d%H%M")
/usr/local/pdi-ce-8.2/data-integration/kitchen.sh -file=/data/docker/kettle/linux-test-job.kjb >>/data/docker/kettle/logTest/test-log$TIMELOG.log
# /usr/local/pdi-ce-8.2/data-integration/pan.sh -file=/data/docker/kettle/linux-test-job.kjb >>/data/docker/kettle/logTest/test-log$TIMELOG.log
  1. 给test.sh执行权限,执行即可
    chmod +x *.sh

linux定时任务:

  1. 编辑
    crontab -e

  2. 重启定时任务
    systemctl restart crond

  3. 查看 crontab 服务状态
    systemctl status crond

0 */2 * * * /start-contract.sh (每2小时执行一次)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐