linux 下安装并运行 kettle 程序

本贴最后更新于 766 天前,其中的信息可能已经物是人非

1.安装 jdk

安装 jdk

2.部署 kettle

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

    # mkdir  /root/software/kettle
    
    # cp  /root/pdi-ce-5.0.1-stable.zip  /root/software/kettle
    
    # cd   /root/software/kettle
    
    # unzip pdi-ce-5.0.1-stable.zip
    
    # cd  data-integration
    
    # ll  *.sh
    
    # chmod  +x  *.sh  //以.sh结尾的文件必须拥有执行权限,如果没有,请赋予
    
  2. 测试安装是否成功

    在 kettle 的 data-integration 目录中执行 kitchen.sh 文件,若出现帮助信息,证明安装成功

    # ./kitchen.sh
    

    kitchen.sh:执行 job

    pan.sh:执行转换

  3. 运用 crontab 执行 kettle 程序

    1. 建立目录存放 kettle 文件

      # mkdir  -p  /root/kettle/kettle_file/job   // 存放作业文件
      
      # mkdir /root/kettle/kettle_file/transition  // 存放转换
      
      # mkdir /root/kettle/kettle_sh  // 存放执行脚本
      
      # mkdir /root/kettle/kettle_log  // 存放执行kettle产生的日志文件
      
      将从windows上配置好的.ktr和.kjb程序分别放在transition目录和job目录下(或linux下编写后直接保存到该目录下)
      
    2. 编写执行脚本

      # cd  /root/kettle/kettle_sh
      # vim  ceshi.sh
      

      文本内容如下:

      #!/bin/bash
      
      #执行job程序
      
      cd  /root/software/kettle/data-integration
      
      export JAVA_HOME=/usr/java/jdk1.6.0_45 
      
      export PATH=$JAVA_HOME/bin:$PATH
      
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      
      ./kitchen.sh -file=/root/kettle/kettle_file/job/ceshi.kjb-level=basic >>/root/kettle/kettle_log/ceshi_$(date +%Y%m%d).log
      
      # chmod  +x  ceshi.sh
      
      # sh  -x  ceshi.sh
      

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

    3. 设定 crontab 定时执行任务

      对这部分不了解的可以看一下:Linux crontab 命令详解

      # crontab  -u  root  -e
      
      */1 * * * * /root/kettle/kettle_sh/ceshi.sh  //每分钟执行一次ceshi.sh
      
      # systemctl restart crond
      
      # systemctl enable crond
      

到此大功告成,记得在数据库中验证结果

注意:

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

版权声明

作者:github_38806262

出处:https://mp.weixin.qq.com/s/-piIePCzktTwyjCKlZumhg

未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利.

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    915 引用 • 931 回帖
  • Kettle

    Kettle 是一款国外开源的 ETL 工具,纯 java 编写,可以在 Windows、Linux、Unix 上运行,数据抽取高效稳定。
    Kettle 中文名称叫水壶,该项目的主程序员 MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

    7 引用 • 13 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...