美文网首页
如何在linux部署kettle并实现定时调度任务

如何在linux部署kettle并实现定时调度任务

作者: 半路和尚怎么出家 | 来源:发表于2019-04-02 17:58 被阅读0次

最近工作中需要在linux部署kettle做数据抽取转换的工作,在此做个记录(略过安装jdk部分)

一:部署kettle

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

# mkdir /usr/kettle

将kettle对应的pdi-ce-7.1.0.0-12文件夹放到该目录下

# cd data-integration

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

2:测试安装是否成功

在kettle的data-integration目录中执行kitchen.sh文件,若出现帮助信息,证明安装成功,有警告信息可以忽略,不影响使用

# ./kitchen.sh

备注:

kitchen.sh:执行job
(可以通过 ./kitchen.sh -file=/usr/kettle/pdi-ce-7.1.0.0-12/kettle_job/testjob.kjb 直接执行对应的任务文件来查看是否成功)

pan.sh:执行转换

二:运用crontab执行kettle程序

1.建立目录存放kettle文件

# mkdir /usr/kettle/pdi-ce-7.1.0.0-12/kettle_job // 存放作业文件

# mkdir /usr/kettle/pdi-ce-7.1.0.0-12/kettle_transition // 存放转换

# mkdir /usr/kettle/pdi-ce-7.1.0.0-12/kettle_sh // 存放执行脚本

# mkdir /usr/kettle/pdi-ce-7.1.0.0-12/kettle_log // 存放执行kettle产生的日志文件

将从windows上配置好的.ktr和.kjb程序分别放在transition目录和job目录下(或linux下编写后直接保存到该目录下),注意:job中的转换对应的目录需要做相应修改

2:编写执行脚本

# cd /usr/kettle/pdi-ce-7.1.0.0-12/kettle_sh

# vi ceshi.sh

文本内容如下:

#!/bin/bash

#执行job程序

cd /usr/kettle/pdi-ce-7.1.0.0-12/data-integration

export JAVA_HOME=/usr/local/jdk1.8.0_201/

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

export PATH=$PATH:$JAVA_HOME/bin

./kitchen.sh -file=/usr/kettle/pdi-ce-7.1.0.0-12/kettle_job/testjob.kjb >>/usr/kettle/pdi-ce-7.1.0.0-12/kettle_log/ceshi_$(date +%Y%m%d).log

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

保存ceshi.sh,执行赋予执行权限的命令
# chmod +x ceshi.sh
测试ceshi.sh是否可以正常执行
# sh -x ceshi.sh

3:设定crontab 定时执行任务

# crontab -e

*/1 * * * * /usr/kettle/pdi-ce-7.1.0.0-12/kettle_sh/ceshi.sh //每分钟执行一次ceshi.sh

# systemctl restart crond

# systemctl enable crond

注意:

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

相关文章

  • 如何在linux部署kettle并实现定时调度任务

    最近工作中需要在linux部署kettle做数据抽取转换的工作,在此做个记录(略过安装jdk部分) 一:部署ket...

  • 分布式任务调度-xxl-job

    前言 为什么要使用分布式任务调度框架? 使用原因和解决问题是为了解决: 实现定时调度任务 将定时任务分布式部署 提...

  • 学习Linux2

    linux 学习2 定时任务管理 crond 任务调度 crontab 进行 定时任务的设置 概述任务调度:是指系...

  • Python定时器APScheduler

    简介: APScheduler是python的一个定时任务调度框架,能实现类似linux下crontab类型的任务...

  • Elastic-job 介绍与使用

    目标 把定时任务通过集群的方式进行管理调度,并采用分布式部署,保证系统的高可用,提高了容错。那么如何保证定时任务只...

  • Azkaban安装与初步使用

    1 引言 1.1 目的 通过Azkaban的批量工作量任务调度器调用kettle 调用linux命令 调用jav...

  • 如何在linux创建定时器 --- 2019-08-08

    在Linux使用定时器,其实就是任务调度的使用,依赖crontab,使用这种任务调度的定时器最重要的是要使用正确的...

  • 深入理解scheduledthreadpoolexecutor

    scheduledthreadpool是JDK自带的一个定时调度任务的实现,通过它可以实现定时的循环调度,最近在看...

  • 分布式任务调度 SchedulerX

    参考文档: 为应用实现任务调度(EDAS 部署) 什么是分布式任务调度SchedulerX?分布式任务调度Sche...

  • 分布式定时任务调度框架

    1. 目标 把定时任务通过集群的方式进行管理调度,并采用分布式部署,保证系统的高可用,提高了容错。那么如何保证定时...

网友评论

      本文标题:如何在linux部署kettle并实现定时调度任务

      本文链接:https://www.haomeiwen.com/subject/efagbqtx.html