#CentOS7.0(Linux)安装KETTLE教程 并配置执行定时任务
下载路径 https://sourceforge.net/projects/pentaho/files/Data%20Integration/
1.安装jdk:上传jdk
jdk-8u181-linux-x64.tar.gz
解压重命名:tar -zxvf jdk-8u181-linux-x64.tar.gz jdk1.8.0_181
2.打开配置文件
vim /etc/profile
末尾添加 i 进入编辑模式
export JAVA_HOME=/soft/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.: J A V A H O M E / l i b : {JAVA_HOME}/lib: JAVAHOME/lib:{JRE_HOME}/lib
export PATH= J A V A H O M E / b i n : {JAVA_HOME}/bin: JAVAHOME/bin:PATH
esc切换 :wq 保存退出
环境变量生效
source /etc/profile
查看java版本
java -version
3。此处换为:本地kettle.zip文件
unzip kettle.zip
进入路径; cd data-integration/
执行权限:chmod +x spoon.sh
运行 ./spoon.sh
libwebkitgtk依赖包
wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/matthewdva:/build:/EPEL:/el7/RHEL_7/x86_64/webkitgtk-2.4.9-1.el7.x86_64.rpm
yum安装 :yum -ivh webkitgtk-2.4.9-1.el7.x86_64.rpm
查看需要安装的文件: yum list webkit|grep webkit
下载路径: https://vault.centos.org/7.0.1406/os/x86_64/Packages/
rpm -ivh webkitgtk3-2.0.4-6.el7.x86_64.rpm --nodeps --force
rpm -ivh webkitgtk3-doc-2.0.4-6.el7.noarch.rpm --nodeps --force
webkitgtk3-devel-2.0.4-6.el7.x86_64.rpm --nodeps --force
rpm -ivh libproxy-webkitgtk3-0.4.11-6.el7.x86_64.rpm --nodeps --force
启动./kitchen.sh
运行 chmod a+x *.sh 赋予权限 (/soft/data-integration/pan.sh /norep -file=/soft/data-integration/kettleetl/sysfunction.ktr 代表不写日志)
运行vi kettleschedule.sh 新建.sh文件,因为定时任务crond不能调用自定义环境变量,使用kettle时必须申明java环境
#!/bin/sh
export JAVA_HOME=/soft/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#kitchen.sh job
#pan.sh ktr
/soft/data-integration/pan.sh -file=/soft/data-integration/kettleetl/sysfunction.ktr >>/soft/data-integration/kettleetl/kettlelog_$(date +\%Y\%m\%d).log
定时任务编写:
crontab -e
* * * * * /soft/data-integration/kettleetl/kettleschedule.sh >/dev/null 2>&1
* * * * * /soft/data-integration/kettleetl/ceshi.sh
crontab在线编辑器: https://www.box3.cn/page/crontab.html 或者 https://tool.lu/crontab
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态
kitchen.sh:执行job
pan.sh:执行转换
cd /var/spool/cron 目录下存在crontab -e的定时任务命令
原因1. cron任务不执行 设置时区 为CST执行下面的语句
timedatectl set-timezone Asia/Shanghai
云校准时间
yum -y install ntp
ntpdate ntp1.aliyun.com
原因2:遇到错误:No more handles [gtk_init_check() failed]
cat /etc/crontab
""代表所有的取值范围内的数字,如月份字段为,则表示1到12个月;
"/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。
"-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。
","分散的数字(不一定连续),如1,2,3,4,7,9。
- crontab有2种编辑方式:直接编辑/etc/crontab文件与crontab –e,其中/etc/crontab里的计划任务是系统中的计划任务,而用户的计划任务需要通过crontab –e来编辑;
- %在crontab文件中表示“换行”,因此假如脚本或命令含有%,需要使用%来进行转义。