一百六十四、Kettle——Linux上脚本运行kettle的转换任务(Linux本地、Linux资源库)

一、目的

在kettle的转换任务以及共享资源库、Carte服务创建好后,需要对kettle的转换任务用海豚调度器进行调度,调度的前提的写好脚本。所以,这篇博客首先介绍在Linux上脚本运行kettle的转换任务

二、前提准备

(一)我的kettle任务为转换任务ktr,不是作业任务kjb

(二)ktr任务使用pan文件,kjb任务使用的是kitchen文件

注意:两种任务使用两种文件,它们使用是不同的文件

(三)这篇博客是在Linux上脚本运行kettle转换任务,不是在Windows本地脚本运行kettle转换任务

(四)下方这篇博客详细的介绍了转换执行器pan和作业执行器Kitchen的使用方法,所以我这边只展示转换执行器pan的使用方法,如果需要查看作业执行器Kitchen的使用方法,请自行查看下方的博客链接

http://t.csdn.cn/hc6SIhttp://t.csdn.cn/hc6SI

(五)kettle任务已保存到kettle共享资源库的目录文件里

1、在资源库根目录右键——创建新目录,输入目录名,点击🆗

 2、在保存kettle任务时,点击要保存到资源库的文件夹下

3、打开资源库的对应文件夹下查看转换1任务是否保存 

如图所示,kettle任务样例转换1在资源库的mysql_to_hdfs文件夹下保存成功!

三、转换执行器pan介绍

(一)pan简介

pan是一个转换执行器,专门用来执行kettle的转换任务

(二)pan工具的官网文档

Use Command Line Tools to Run Transformations and Jobs - Hitachi Vantara Lumada and Pentaho Documentation

(三)pan在Linux上执行kettle转换任务命令语句(官网案例

sh pan.sh -rep=initech_pdi_repo -user=pgibbons -pass=lumburghsux -trans=TPS_reports_2011

 (四)pan在Windows本地执行kettle转换任务命令语句(官网案例

pan.bat /rep:initech_pdi_repo /user:pgibbons /pass:lumburghsux /trans:TPS_reports_2011

(五)pan参数含义(非常重要!非常重要!非常重要!

序号参数名参数含义
1rep资源库名称
2user用户名
3pass密码
4trans要启动的转换任务的名称
5dir资源库目录
6file如果调用的是本地ktr文件,则为文件名;如果不在本地目录中,则包括路径
7level日志级别(基本、详细、调试、行级别、错误、无)(Basic, Detailed, Debug, Rowlevel, Error, Nothing)
8logfile将日志输出写入的本地文件名
9listdir列出指定资源库中的文件目录
10listtrans列出指定文件目录里的转换任务
11listrep列出可用的资源库
12exprep将所有存储库对象导出到一个 XML 文件
13norep防止 Pan(Kitchen)登录到存储库。如果您已经设置了 KETTLE_REPOSITORY、KETTLE_USER 和 KETTLE_PASSWORD 环境变量,那么这个选项将使您能够阻止 Pan( Kitchen)登录到指定的存储库,假设您要执行本地 KTR 文件
14safemode在安全模式下运行,可以进行额外检查
15version显示版本、修订和构建日期
16param以name=value 格式设置命名参数 。例如: -param:FOO=bar
17listparam列出有关指定转换中定义的命名参数的信息
18maxloglinesPDI 内部保留的最大日志行数。设置为 0 以保留所有行(默认)
19maxlogtimeout由 PDI 内部保留的日志行的最长期限(以分钟为单位)。设置为 0 以无限期地保留所有行(默认)

注释:这19个pan的参数,除了红色标记的3个参数外,其余16个都是pan和kitchen的通用参数

另附kitchen的特有参数

序号参数名参数含义
1job要启动的作业任务的名称
2listjob列出指定资源库文件夹里的作业任务

(六)pan参数的语句案例

1、listrep(列出可用的资源库)

 sh  /opt/install/kettle9.2/data-integration/pan.sh -listrep

找到资源库:hurys_linux_kettle_repository

 2、listdir(列出指定资源库中的文件目录)

sh  /opt/install/kettle9.2/data-integration/pan.sh -rep=hurys_linux_kettle_repository -user=admin -pass=admin -listdir

找到资源库的文件目录hive_to_clickhouse、mysql_to_hdfs

 3、listtrans(列出指定文件目录里的转换任务)

sh  /opt/install/kettle9.2/data-integration/pan.sh -rep=hurys_linux_kettle_repository -user=admin -pass=admin -dir=/mysql_to_hdfs/ -listtrans

找到文件夹mysql_to_hdfs的转换任务01_MySQL_to_HDFS_t_event_dispose 

(七)pan的运行状态码

1、官网文档截图

 2、运行状态码及其含义

运行状态码状态码含义
0转换运行没有问题
1处理过程中发生错误
2加载/运行转换期间发生意外错误
3无法准备和初始化此转换
7无法从 XML 或存储库加载转换
8加载步骤或插件时出错(主要是加载插件之一时出错)
9命令行使用打印

 四、pan命令语句执行kettle转换任务

(一)在Linux中执行pan命令语句,运行转换任务,没有日志文件

1、在Linux中执行pan命令语句

sh  /opt/install/kettle9.2/data-integration/pan.sh -rep=hurys_linux_kettle_repository -user=admin -pass=admin -dir=/mysql_to_hdfs/ -trans=01_MySQL_to_HDFS_t_event_dispose

2、pan命令语句执行结果:转换成功

 3、由于kettle任务是从MySQL到HDFS,所以还可以到Hadoop中验证一下文件

(二)在Linux中执行pan命令语句,运行转换任务,导出日志到文件

1、在Linux中执行pan命令语句

sh  /opt/install/kettle9.2/data-integration/pan.sh -rep=hurys_linux_kettle_repository -user=admin -pass=admin -dir=/mysql_to_hdfs/ -trans=01_MySQL_to_HDFS_t_event_dispose level=Basic >>/home/log/kettle/01_MySQL_to_HDFS_t_event_dispose_`date +%Y%m%d`.log

注意:提前创建好日志文件路径/home/log/kettle

2、pan命令语句执行结果:转换成功

 3、由于kettle任务是从MySQL到HDFS,所以还可以到Hadoop中验证一下文件

 4、由于pan语句导出日志到日志文件,因此可以查看日志文件

到/home/log/kettle路径下找到对应的日志文件,然后vi打开查看

 # vi    01_MySQL_to_HDFS_t_event_dispose_20230824.log

 可以看到日志中,kettle的转换任务执行成功!

五、Linux上脚本运行kettle的转换任务

(一)前提条件

1、Linux上kettle转换任务的存储位置

2、脚本文件存放目录下执行脚本(首先需要对脚本赋权)

脚本赋权后ll查看脚本

(二)不使用资源库,脚本运行Linux本地上的kettle转换任务

1、kettle脚本内容

#!/bin/bash
source /etc/profile

/opt/install/kettle9.2/data-integration/pan.sh -file=/opt/soft/kettle_job/01_mysql_to_hdfs_t_event_dispose.ktr >> /home/log/kettle/01_mysql_to_hdfs_t_event_dispose_`date +%Y%m%d`.log

2、sh执行脚本(注意 /root/.kettle/里的配置文件,不要有资源库文件

sh test_no.sh

 3、脚本执行结果(执行时间11:09:18)

 4、 由于kettle任务是从MySQL到HDFS,所以还可以到Hadoop中验证一下文件

文件时间是11:09 

5、 查看11:09 的日志文件

 # vi  01_MySQL_to_HDFS_t_event_dispose_20230824.log

 可以看到日志中,kettle的转换任务执行成功!

(三)使用资源库,脚本运行Linux上的kettle转换任务

1、kettle脚本内容

#!/bin/bash
source /etc/profile

/opt/install/kettle9.2/data-integration/pan.sh -rep=hurys_linux_kettle_repository -user=admin -pass=admin -dir=/mysql_to_hdfs/ -trans=01_MySQL_to_HDFS_t_event_dispose level=Basic >>/home/log/kettle/01_MySQL_to_HDFS_t_event_dispose_`date +%Y%m%d`.log 

 2、sh执行脚本(注意 /root/.kettle/里的配置文件,一定要有资源库文件

 # sh test1.sh

3、脚本执行结果(执行时间09:53)

4、 由于kettle任务是从MySQL到HDFS,所以还可以到Hadoop中验证一下文件

5、 查看09:53的日志文件

#  vi  01_MySQL_to_HDFS_t_event_dispose_20230824.log

 可以看到日志中,kettle的转换任务执行成功!

到这里,Linux上脚本运行kettle的转换任务就成功了,包括Linux本地和Linux资源库两种!

最要注意是转换任务的执行器pan,它的参数和kitchen是不太一样的。尤其pan的任务参数是trans,而kitchen的任务参数是job

至于在Windows本地执行kettle的转换任务pan命令语句请参考下面博客

http://t.csdn.cn/YGSSzhttp://t.csdn.cn/YGSSz

乐于奉献共享,帮助你我他!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天地风雷水火山泽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值