kettle在linux上运行

1.在windows系统上用kettle生成转换和作业,运行成功之后可以放到linux上运行
注意:一定确保在Windows上是能正确运行的
2.找到kettle生成的转换文档,传入到linux系统中用pan.sh运行测试能否成功
cd data-integration
目录下能够找到pan.sh

ll
 drwxrwxr-x  2 hadoop hadoop     4096 Jul 31 19:47 kettle_file
drwxrwxr-x  2 hadoop hadoop     4096 Aug 28 11:36 kettle_logs
-rw-r--r--  1 hadoop hadoop      184 May 16  2017 Kitchen.bat
-rwxr-xr-x  1 hadoop hadoop      354 May 16  2017 kitchen.sh
drwxr-xr-x  2 hadoop hadoop     4096 May 16  2017 launcher
drwxr-xr-x  2 hadoop hadoop    20480 Jul 31 18:39 lib
drwxr-xr-x  6 hadoop hadoop     4096 May 16  2017 libswt
-rw-r--r--  1 hadoop hadoop    13366 May 16  2017 LICENSE.txt
-rw-r--r--  1 hadoop hadoop      172 May 16  2017 Pan.bat
-rwxr-xr-x  1 hadoop hadoop      320 May 16  2017 pan.sh

用ll命令查询pan.sh是否有权限,如果没有用命令

chmod +x *.sh

3.开始执行
./pan.sh -file /home/kettle_file/tran.ktr
4.运行作业过程是一样的,只不过要注意job中的每个transform地址都是Windows系统上的,需要改成linux系统中的地址


      转换01
      
      TRANS
      filename
      
      /home/kettle_file/tran.ktr
      

然后执行:

  ./kitchen.sh -file /home/kettle_file/job.kjb

5.linux 上的定时调度
先创建一个脚本test.sh,需要先修改test.sh 的权限,cd到test.sh所在的文件夹下面,然后运行chmod +x *.sh,这是给当前路径下的所有 .sh 结尾的文档都修改了权限,chmod +x test.sh,是给本文档修改权限。

vi test.sh

打开test.sh 进行编辑:

export JAVA_HOME=/opt/jdk1.8.0_73
export PATH=${JAVA_HOME}/bin:${PATH}
/home/data-integration/pan.sh -file /home/kettle_file/tran.ktr > /home/kettle_logs/log.txt

第一二条是指的java的路径,不指定的话会找不到java路径,报错!
第三条是运行命令,用的都是绝对路径,后面指定了日志存储路径,可以直接去log.txt查看日志。
指定定时调度:

crontab -e

进入编辑页面:

*/2 * * * * /home/data/test.sh

意思是每两分钟执行一次,后面用的也是绝对路径

 01 08 23 02 * /home/data/test.sh

01分钟,08小时,23日,02月, * 星期
这个意思是每个2月23日8时1分执行一次

[kettle@haha ~]$crontab -l
01 08 23 02 * /home/data/test.sh

用来查询调度命令是否保存成功

 [kettle@haha ~]$service crond status  
Redirecting to /bin/systemctl status  crond.service
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-07-30 14:02:03 CST; 2 months 19 days ago
 Main PID: 743 (crond)
   CGroup: /system.slice/crond.service
           └─743 /usr/sbin/crond -n

service crond status 用来查看任务是否启动
Active: active (running) 状态证明已经打开了
如果显示Active: failed
使用service crond start 命令进行启动

你可能感兴趣的:(kettle,linux,定时)