七十七Kettle的简介与安装部署

Posted 象在舞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了七十七Kettle的简介与安装部署相关的知识,希望对你有一定的参考价值。

本文我们来介绍一个非常好用的开源ETL工具——Kettle,它是纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。关注专栏《破茧成蝶——大数据篇》,查看更多相关的内容~


目录

一、Kettle的简介

1.1 什么是Kettle

1.2 Kettle的特点

1.3 Kettle的组成

二、Kettle的安装部署

2.1 Windows下安装Kettle

2.2 创建资源库

2.2.1 数据库资源库

2.2.2 文件资源库

2.3 Linux下安装Kettle

2.3.1 单机模式

2.3.2 集群模式


一、Kettle的简介

1.1 什么是Kettle

Kettle是一个Java编写的ETL工具,主作者是Matt Casters,2003年就开始了这个项目,最新稳定版为7.1。2005年12月,Kettle从2.1版本开始进入了开源领域,一直到4.1版本遵守LGPL协议,从4.2版本开始遵守Apache Licence 2.0协议。Kettle在2006年初加入了开源的BI公司Pentaho,正式命名为:Pentaho Data Integeration,简称“PDI”。自2017年9月20日起,Pentaho已经被合并于日立集团下的新公司:Hitachi Vantara。总之,Kettle可以简化数据仓库的创建,更新和维护,使用Kettle可以构建一套开源的ETL解决方案。

1.2 Kettle的特点

1、免费开源。基于Java的免费开源软件,对商业用户也没有限制。

2、易配置。可以在Windows、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

3、不同数据库。ETL工具集,它允许你管理来自不同数据库的数据。

4、两种脚本文件。transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。job是步骤流,transformation是数据流,这是两者最大的区别。job的每一个步骤必须等到前面的步骤都跑完了后面的步骤才会执行;而transformation会一次性把所有控件全部先启动,一个控件对应一个线程,然后数据流会从第一个控件开始一条记录一条记录的流向最后的控件。

5、图形界面设计。通过图形界面设计实现做什么业务,无需代码去实现。

6、定时功能。在Job下的start模块,有一个定时功能,可以每日、每周等方式进行定时。

1.3 Kettle的组成

1、Spoon.bat/spoon.sh:是一个图形化界面,可以让我们用图形化的方式开发转换和作业。

2、Pan.bat/pan.sh:利用Pan可以用命令行的形式调用Trans。

3、Kitchen.bat/kitchen.sh:利用Kitchen可以使用命令行调用Job。

4、Carte.bat/Carte.sh:Carte是一个轻量级的Web容器,用于建立专用、远程的ETL Server。

二、Kettle的安装部署

我们可以通过点击此处访问Kettle的官网,通过点击此处下载Kettle。

2.1 Windows下安装Kettle

在实际企业开发中,都是在本地环境下进行kettle的job和Transformation开发的,可以在本地运行,也可以连接远程机器运行。下面就是安装Kettle的具体步骤:

1、安装Kettle之前必须安装jdk

2、解压下载好的安装包

3、双击Spoon.bat,启动图形化界面工具,就可以直接使用了。

2.2 创建资源库

2.2.1 数据库资源库

数据库资源库是将作业和转换相关的信息存储在数据库中,执行的时候直接去数据库读取信息,很容易跨平台使用。

1、点击右上角connect,选择Other Resporitory。

2、选择Database Repository

3、建立新连接

4、填好之后,在指定的数据库中可以发现已经创建了很多个内置的表格

5、连接资源库,默认账号密码均为admin

6、将存在的转换或者job导入资源库(初次操作,这里肯定是没有的,可以参考下一篇文章的例子)

(1)选择从XML文件导入

(2)选择对应的文件,点击保存即可。

2.2.2 文件资源库

将作业和转换相关的信息存储在指定的目录中,其实和XML的方式一样。创建方式跟创建数据库资源库步骤类似,只是不需要用户密码就可以访问,跨平台使用比较麻烦。

1、选择connect-->Repository Manager...-->Add->Other Repositories

2、填写相关信息,点击保存。

2.3 Linux下安装Kettle

2.3.1 单机模式

1、安装jdk

2、上传压缩包到服务器

3、解压

[root@master kettle]# unzip pdi-ce-8.2.0.0-342.zip

4、将mysql的驱动包拷贝到对应的lib目录

[root@master software]# cp mysql-connector-java-5.1.47.jar kettle/data-integration/lib/

5、将Windows下面home目录下的.kettle文件夹拷贝到Linux的home目录下

6、运行数据资源库中的转换

[root@master data-integration]# ./pan.sh -rep=kettle_database -user=admin -pass=admin -trans=example1 -dir=/

其中,-rep代表资源库名称,-user代表资源库用户名,-pass代表资源库密码,-trans代表要启动的转换名称,-dir代表目录。

7、运行资源库里面的作业

./kitchen.sh -rep=kettle_database -user=admin -pass=admin -job=example2 -logfile=/root/files/logs.txt -dir=/

其中,-rep代表资源库名,-user代表资源库用户名,-pass代表资源库密码,-job代表job名,-dir代表job路径,-logfile代表日志目录。

2.3.2 集群模式

1、选择master节点作为Kettle的主服务器,上传kettle的安装包并解压。

2、修改配置文件

(1)修改carte-config-master-8080.xml配置文件

  <slaveserver>
    <name>master1</name>
    <hostname>master</hostname>
    <port>8080</port>
    <master>Y</master>
	<username>cluster</username>
    <password>cluster</password>
  </slaveserver>

(2)修改carte-config-8081.xml配置文件

  <masters>

    <slaveserver>
      <name>master1</name>
      <hostname>master</hostname>
      <port>8080</port>
      <username>cluster</username>
      <password>cluster</password>
      <master>Y</master>
    </slaveserver>

  </masters>

  <report_to_masters>Y</report_to_masters>

  <slaveserver>
    <name>slave1-8081</name>
    <hostname>slave01</hostname>
    <port>8081</port>
    <username>cluster</username>
    <password>cluster</password>
    <master>N</master>
  </slaveserver>

(3)修改carte-config-8082.xml配置文件

  <masters>

    <slaveserver>
      <name>master1</name>
      <hostname>master</hostname>
      <port>8080</port>
      <username>cluster</username>
      <password>cluster</password>
      <master>Y</master>
    </slaveserver>

  </masters>

  <report_to_masters>Y</report_to_masters>

  <slaveserver>
    <name>slave2-8082</name>
    <hostname>slave02</hostname>
    <port>8082</port>
    <username>cluster</username>
    <password>cluster</password>
    <master>N</master>
  </slaveserver>

3、将kettle分发到其余各节点

[root@master software]# xsync kettle/

4、启动相关进程

./carte.sh master 8080

./carte.sh slave01 8081

./carte.sh slave02 8082

5、访问web页面

 

以上就是本文的所有内容,比较简单。你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题~

以上是关于七十七Kettle的简介与安装部署的主要内容,如果未能解决你的问题,请参考以下文章

七十七Kettle的简介与安装部署

七十八Kettle的几个使用案例

七十八Kettle的几个使用案例

七十八Kettle的几个使用案例

七十二Impala的简介与安装部署

七十二Impala的简介与安装部署