Linux 部署 kettle 步骤
目的:把 windows 下的增量 job 部署到 linux 下去,实现 2 个数据库表数据的增量导入
○1 首先在 windows 下创建好你的.kjb,.ktr 文件.
a. 打开 spoon.bat 不用创建资源库.
b. 新建 Transform 文件,保存到一个路径里去,比如说:d:\kettle\trans(路径不能带中
文)
c. 新
建
Transform
job
文
件
,
调
用
之
前
的
保存好现在 .kjb
Job 属性为不重复执行,通过 linux 的 cron(定时器)实现。
○2 该 job 在 windows 下运行正常。
○3 把 linux 服务器上安装好 jkd ,配置好环境变量。(在此略)
○4 通过 PSFTP.EXE 上传刚才建立好的.kjb,ktr 文件到 linux 上。
出现最下面一行的字样说明文件上传到 远程目录/home/ubuntu 下去了
上 linux 对应的目录下查看下该文件。.ktr 也是利用同样的操作上传。
上传成功。
○5
a.通过 wget:url (下载 pdi-ce-4.3.0-stable.tar.gz)
通过 sudo tar zxvf pdi-ce-4.3.0-stable.tar.gz 解压得到 data-integration [ 这个就是 linux 下的
kettle]。
我这里放在/home/ubuntu/下。
b.把 my_job.kjb,trans1.ktr 复制到/mnt/kettle 下【命令:cp my_job.kjb /mnt/kettle(当前路径在
/home/ubuntu 下)】。
○6 在/mnt/kettle 下创建 2 个文件 test.sh,display.log。
命令:sudo vi test.sh
Sudo vi display.log
并给这两个文件赋权限 chmod a+w test.sh
Chmod a+w display.log
用 vi 编辑 test.sh 文件:
命令:
Sudo vi test.sh
内
容
输入:
echo "hello yookiwong"
/home/ubuntu/data-integration/kitchen.sh -file=/mnt/kettle/my_job.kjb
然后 Esc(跳出编辑模式),再:wq!(保存退出)。(如果不保存用:q!直接跳出,w 写的一起,q
退出的意思)。
○7 编辑用户自己的定时器 crontab(linux 下的)
a.
crontab –e 打开定时器编辑文件。(具体是打开那个文件,尚不知道)【
(
查看当前用户的 cron 配置,使用 crontab -l
编辑当前用户的 cron 配置,使用 crontab -e
删除当前用户的 cron 配置,使用 crontab -r
)配置系统级的任务,编辑 /etc/crontab 文件。】
b. 选择最 easest 的程序打开。
在最下面加入:*/3 * * * * /mnt/kettle/test.sh 1>>/mnt/kettle/display.log 2>&1
(每 3 分钟执行一次定时器)。
(我这里注释掉了,不会被执行,如果想执行请去掉前面的’#’,我也是通过# 在不想要这个
定时器的时候就加上#,不让其再运行。)
然后按 F3 保存。然后出来
按 Enter 键。
再按 ctrl+X。退出。
Cron 定时器就编辑好了。
然后去查看/mnt/kettle/display.log 文件。
命令:tail –f display.log
表明 job(my_job.kjb)执行完成。查看 2 个数据库表中的数据,是否一致。如果一致了表明增
量导入数据成功。
○8 我本地操作系统是 windows,kettle 版本为 4.3.0,数据库为 postgreSQL 的数据库,远程
系统 linux 为 ubuntu。 有不对的地方望指正,联系作者:wangyvqi@163.com 。