linux 下安装并运行kettle 程序

一:安装jdk

1:下载安装jdk

kettle是一款纯java编写的开源ETL工具,需要jdk环境支持,下载jdk-6u45-linux-i586.bin到/root/Desktop,建立jdk安装目录

#mkdir /usr/java

#cp /root/Desktop/jdk-6u45-linux-i586.bin  /usr/java/

#cd  /usr/java

#chmod  +x  jdk-6u45-linux-i586.bin

#./jdk-6u45-linux-i586.bin

 

2:配置环境变量

#vim  /etc/profile

 

export JAVA_HOME=/usr/java/jdk1.6.0_45  //jdk1.6.0_45为jdk的安装目录

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 

3:测试

若出现版本信息,则安装配置成功

#java -version

 

 

二:部署kettle

 

1:创建一个目,将下载好的kettle解压后放在该文件夹下。

# mkdir  /root/software/kettle

# cp  /root/pdi-ce-5.0.1-stable.zip  /root/software/kettle

# cd   /root/software/kettle

# unzip pdi-ce-5.0.1-stable.zip

# cd  data-integration

# ll  *.sh

# chmod  +x  *.sh  //以.sh结尾的文件必须拥有执行权限,如果没有,请赋予

 

2:测试安装是否成功

在kettle的data-integration目录中执行kitchen.sh文件,若出现帮助信息,证明安装成功

# ./kitchen.sh

备注:

kitchen.sh:执行job

pan.sh:执行转换

 

3:打开图形界面(需Xmanager配合使用)

使用XShell建立连接时,在 SSH --> tunneling 选项下勾选 Forward X11 connections to: Xmanager。登陆远端Linux主机,执行 gtk-demo 测试是否可以将界面显示在本地窗口。这样设置成功后,我们可以运行有图形界面的工具并将其显示在我们本地机器上。

#  ./spoon.sh &

编写job和transition(略)

 

三:运用crontab执行kettle程序

 

1.建立目录存放kettle文件

# mkdir  -p  /root/kettle/kettle_file/job   // 存放作业文件

# mkdir /root/kettle/kettle_file/transition  // 存放转换

# mkdir /root/kettle/kettle_sh  // 存放执行脚本

# mkdir /root/kettle/kettle_log  // 存放执行kettle产生的日志文件

将从windows上配置好的.ktr和.kjb程序分别放在transition目录和job目录下(或linux下编写后直接保存到该目录下)

 

2:编写执行脚本

# cd  /root/kettle/kettle_sh

# vim  ceshi.sh

文本内容如下:

#!/bin/bash

#执行job程序

cd  /root/software/kettle/data-integration

export JAVA_HOME=/usr/java/jdk1.6.0_45 

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

注:(因为crond是个守护进程,它不归属于任何用户,虽然之前以root用户配置了java环境变量,但是crond一样找不到java命令,所以,当crond执行kettle任务时,需要动态设置java环境变量,否则会出现手动执行.sh没问题,放crontb里面执行后无效果)

./kitchen.sh -file=/root/kettle/kettle_file/job/ceshi.kjb-level=basic >>/root/kettle/kettle_log/ceshi_$(date +%Y%m%d).log

# chmod  +x  ceshi.sh

# sh  -x  ceshi.sh

 

3:设定crontab 定时执行任务

# crontab  -u  root  -e

*/1 * * * * /root/kettle/kettle_sh/ceshi.sh  //每分钟执行一次ceshi.sh

# systemctl restart crond

# systemctl enable crond

 

到此大功告成,记得在数据库中验证结果

注意:

在linux中,如果是通过图形界面执行程序的话,点击那个绿色的三角即可。如果是命令行启动,后台执行进行进程不能中断。因此,在linux中不推荐使用kettle里面的自动执行,使用操作系统的定时执行要稳定的多。Windows下使用定时任务计划,linux下使用crontab。

你可能感兴趣的:(kettle)