ETL工具Kettle在Linux系统上无图形化运行

  *背景:最近已经两个项目使用到了ETL工具Kettle,而且我司两次使用的环境部署及使用都是我自己费劲巴拉东找西找来搞定的,所以觉得有必要自己把这块知识记录共享一下了。*

一、环境准备
由于Kettle是一个基于java的ETL工具,故首先需要配置好java环境变量,具体配置方法见文档《centos7安装jdk》。这里我们使用的环境是windows10、centos7、jdk1.8.0_141-b15以及pentaho 7.1.0.0。

二、作业流程准备
1) 首先需要将kettle压缩文件上传到服务器并在适当的目录下解压,解压后需要给文件赋确保可执行的权限:
Chmod 755 data-integration/*.sh
2) 测试部署是否成功:
执行 ./data-integration/kitchen.sh 若出现部署帮助信息则为部署成功:
在这里插入图片描述
3) 然后在windows环境下将测试好的kettle作业文件准备好,具体流程操作参见文档《公积金数据导出导入作业说明》。

三、迁移至生产环境

  1. 将本地的Repository文件夹拷贝到Linux机器的指定目录下(一般为pdi目录)
  2. 将本地的repository.xml文件拷贝到Linux对应目录下,修改其中的repository路径(一般在linux上自己手动创建即可):
    在这里插入图片描述

四、创建可执行文件

  1. 创建可执行文件kettle.sh,其内容如下:
    在这里插入图片描述
  2. 对可执行文件kettle.sh赋权限,chmod +x kettle.sh

五、使用定时任务
关于使用定时任务的方式有很多,这里我们使用linux系统自带的crontab功能来实现。

  1. 查看系统的crontab服务是否被安装或者被启用
    在这里插入图片描述
    当显示上图中绿色字体时则表名此服务正在运行中,如若非此状态则需要视情况安装或启动
  2. 添加定时任务具体内容如下:
    在这里插入图片描述
    在这里插入图片描述
    需要说明的是,以上两图是两种不同的方式,使用其中一种方式即可。
  3. 开始定时任务:
    如果原crontab处于启用状态(running),则需要执行命令:
    在这里插入图片描述
    centos7及以上可以使用命令 systemctl start crond 启动
    若为第一次启动则直接执行启动命令即可。
  4. 假如本次启动在日志显示找不到命令时,则需要再去修改kettle.sh的环境变量配置,当环境变量修改正确时再启动则会在日志打印kettle部署成功时的内容。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章