一、Kettle简介

  • Kettle最早是一个开源的ETL(Extract-Transform-Load的缩写)工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。后来Kettle重命名为Pentaho Data Integration 。
  • 它由Java开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发ETL数据管道;可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源;支持ETL数据管道加入机器学习算法。
  • Kettle是一个实现ETL开发的一款开发工具,Spoon是Kettle工具提供的图形化界面。

1.1、主要功能

Pentaho Data Integration作为一个端对端的数据集成平台,可以对多种数据源进行抽取(Extraction)、加载(Loading)、数据落湖(Data Lake Injection)、对数据进行各种清洗(Cleasing)、转换(Transformation)、混合(Blending),并支持多维联机分析处理(OLAP)和数据挖掘(Data mining)。

1.2、运行环境

Pentaho Data Integration服务器端支持:Windows Server, CentOS, RHEL, Ubuntu

Pentaho Data Integration开发客户端(Spoon)支持:Windows, Ubuntu Desktop, MacOS

Pentaho User Console(浏览器端)支持:Internet Explorer, Chrome, Firefox,

Safari, Edge

Kettle安装

2.1、安装JDK

链接:百度云盘下载链接:百度网盘 请输入提取码

提取码:e5xp

下载后解压文件即可。

2.2、下载地址

Kettle是一款免安装软件,下载后即可直接运行。下载地址:Kettle官网http://www.kettle.org.cn/download

官网的下载速度比较慢,大家也可以从我分享的百度云下载

链接:百度云盘下载链接:https://pan.baidu.com/s/1gxI3PmuxjlnMx4aN1mROug

提取码:lxyb

下载后解压文件即可。

2.2、运行Kettle

  • 因为Kettle是纯java编写,所以启动前要先预装JDK并配置环境变量。
  • Windows下双击Spoon.bat文件运行Kettle,打开spoon图形工具。
  • 在Linux、AppleOSX、Solaris平台上,双击Spoon.sh运行。

当出现下图所示,则说明启动成功。

2.3、导入数据库驱动jar包

看你需要连接什么数据库,就将数据库的驱动jar包放到xxx\pdi-ce-7.1.0.0-12\data-integration\lib目录下,重启spoon即可。

Oracle/Mysql驱动下载链接:

链接:https://pan.baidu.com/s/15PafokxwSyFQtdMQuLKHOg

提取码:q2m4

三、Kettle使用

3.1、配置资源库与数据库

  • 现在让我们重新双击Spoon.bat,运行Kettle工具。
  • 点击右上角的connect标志,出现弹窗(如下图),点击Other Repositories。

  • 在新的弹窗中选择Database Repository选项,点击Get Started。

  • 输入资源库名称(自定义),点击Database Connection创建数据库连接。

  • 点击创建新的数据库连接。

  • 这里左侧有5种连接方式,按自己需求进行选择,默认选一般;数据库连接名称(自定义);数据类型,什么数据库就选什么,我这里是连接Oracle数据,所以选择Oracle;
  • 连接方式,默认选第一个;最后再将你的数据库连接信息(IP,端口,库名称,用户名和密码)填写上就OK。

填好后,点击测试按钮,出现如下图的弹窗即连接成功,然后点击确定按钮。

  • 可以看到刚刚连接的数据库sourceDB,这里我是创建两个数据源,通过点击新增按钮可以创建多个数据源连接。
  • 选中数据源,即可对其进行编辑,删除操作。
  • 最后点击Back返回。

点击Finish按钮,即可。

创建成功,选中Connect Now。

  • 进入登录页面,默认是admin用户,密码也是admin,启动后可以修改用户密码或添加其他用户。

注意事项:这里在配置数据源时,虽然成功了,但是在后面创建作业选择数据库时,可能出现刚刚配置的数据库不见了,可以在创建作业后,再重新配置一下数据库(如下图)。具体原因还不清楚

3.2、修改、添加用户信息

点击工具–>资源库–>探索资源按钮,或者直接点击下图红色框中的图标。

选择安全按钮,即可新增、编辑、删除用户信息。

好啦,以上就是Kettle的安装配置教程

1.1 什么是kettle

Kettle是一款开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

1.2 Kettle核心知识点

1.2.1 Kettle工程存储方式

1) 以XML形式存储

2) 以资源库方式存储(数据库资源库和文件资源库)

1.2.2 Kettle的两种设计

简述:Transformation(转换):完成针对数据的基础转换。

Job(作业):完成整个工作流的控制。

区别:(1)作业是步骤流,转换是数据流,这是作业和转换的最大区别

(2)作业的每一个步骤,必须等到前面的步骤都跑完了,后面的步骤才会执行;而转换会一次性把所有控件全部先启动(一个空间对应启动一个线程),然后数据流会从第一个控件开始,一条记录,一条记录地流向最后的控件。

1.2.3 Kettle的组成

勺子(spoon.bat/spoon.sh):是一个图形化的界面,可以让我们用图形化的方式开发转换和作业。Windows选择spoon.bat;Linux选择spoon.sh
煎锅(pan.bat/pan.sh):利用pan可以用命令行的形式调用Trans
厨房(kitchen.bat/kitchen.sh):利用kitchen可以使用命令调用Job
菜单(carte.bat/carte.sh):carte是一个轻量级的web容器,用于建立专用、远程的ETL Server
1.3 kettle特点

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

易配置:可以在window、Linux、unix上运行,绿色无需安装,数据抽取高效稳定

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

两种脚本文件:transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制

图形化界面设计:通过图形化设计实现做什么业务,无需写代码去实现

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

第2章 kettle安装部署和使用
2.1 kettle安装地址

官网地址

Home - Hitachi Vantara

下载地址

https://sourceforge.net/projects/pentaho/files/Data%20Integration/

kettle各版本国内镜像下载地址:http://mirror.bit.edu.cn/pentaho/(下载速度相对快一些)

2.2 Windows下安装使用

2.2.1 概述

在实际企业开发中,都是在本地环境下进行kettle的job和Transformation开发的,可以在本地运行,也可以连接远程机器运行

2.2.2 安装

1) 安装jdk

2) 下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可

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

2.2.3 案例

1) 案例一 把stu1的数据按id同步到stu2,stu2有相同id则更新数据

(1)在mysql中创建两张表

mysql> create database kettle;

mysql> use kettle;

mysql> create table stu1(id int,name varchar(20),age int);

mysql> create table stu2(id int,name varchar(20));

(2)往两张表中插入一些数据

mysql> insert into stu1 values(1001,'zhangsan',20),(1002,'lisi',18), (1003,'wangwu',23);

mysql> insert into stu2 values(1001,'wukong');

(3)在kettle中新建转换

(4)分别在输入和输出中拉出表输入和插入/更新

(5)双击表输入对象,填写相关配置,测试是否成功

(6)双击 更新/插入对象,填写相关配置

编辑映射,添加需要的字段,因为表stu2中没有age,所以不需要Add

(7)保存转换,启动运行,去mysql表查看结果

注意:如果需要连接mysql数据库,需要要先将mysql的连接驱动包复制到kettle的根目录下的lib目录中,否则会报错找不到驱动。

2) 案例2:使用作业执行上述转换,并且额外在表stu2中添加一条数据

(1)新建一个作业

(2) 按图示拉取组件

(3)双击Start编辑Start

(4)双击转换,选择案例1保存的文件

(5)双击SQL,编辑SQL语句

(6)保存执行

运行之前,查看数据:

运行之后查看结果:会发现除了刚才我们写的,insert语句之外,stu1表中的id为1004的也插入到stu2中了,因为我们执行了stu1tostu2.ktr转换。

注:转换和作业的后缀不同

3)案例3:将hive表的数据输出到hdfs

(1)因为涉及到hive和hbase的读写,需要修改相关配置文件。

修改解压目录下的data-integration\plugins\pentaho-big-data-plugin下的plugin.properties,设置active.hadoop.configuration=hdp26,并将如下配置文件从集群上拷贝到data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp26下

注意:以上操作完,需要重启kettle才能生效

(2)启动hdfs,yarn,zookeeper,hbase集群的所有进程,启动hiveserver2服务

[root@node4 hadoop-2.6.4]# sbin/start-dfs.sh

[root@node4 hadoop-2.6.4]# sbin/start-yarn.sh

三台服务器分别开启HBase前启动Zookeeper

[root@node4 hadoop-2.6.4]# zkServer.sh start

[root@node5 hadoop-2.6.4]# zkServer.sh start

[root@node6 hadoop-2.6.4]# zkServer.sh start

开启hbase

[root@node4 hbase-1.2.3]# bin/start-hbase.sh

开启hive2

[root@node4 ~]# hiveserver2

(3)进入beeline,查看10000端口开启情况

[root@node4 ~]# beeline(回车)

Beeline version 2.1.0 by Apache Hive

beeline> !connect jdbc:hive2://node4:10000

Connecting to jdbc:hive2://node4:10000

Enter username for jdbc:hive2://node4:10000: root(输入用户名,回车)

Enter password for jdbc:hive2://node4:10000: ******(输入密码,回车)

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/opt/module/hive/apache-hive-2.1.0-bin/lib/hive-jdbc-2.1.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/opt/module/hadoop/hadoop-2.6.4/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

Connected to: Apache Hive (version 2.1.0)

Driver: Hive JDBC (version 2.1.0)

20/05/23 20:05:58 [main]: WARN jdbc.HiveConnection: Request to set autoCommit to false; Hive does not support autoCommit=false.

Transaction isolation: TRANSACTION_REPEATABLE_READ

0: jdbc:hive2://node4:10000>(到了这里说明成功开启10000端口)

(4)创建两张表dept和emp

CREATE TABLE dept(deptno int, dname string,loc string)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t';

CREATE TABLE emp(

empno int,

ename string,

job string,

mgr int,

hiredate string,

sal double,

comm int,

deptno int)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t';

(5)插入数据

insert into dept values(10,'accounting','NEW YORK'),(20,'RESEARCH','DALLAS'),(30,'SALES','CHICAGO'),(40,'OPERATIONS','BOSTON');

insert into emp values

(7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20),

(7499,'ALLEN','SALESMAN',7698,'1980-12-17',1600,300,30),

(7521,'WARD','SALESMAN',7698,'1980-12-17',1250,500,30),

(7566,'JONES','MANAGER',7839,'1980-12-17',2975,NULL,20);

(6)按下图建立流程图

(7)设置表输入,连接hive

表输入1

表输入2

(8)设置排序属性

(9)设置连接属性

(10)设置字段选择

“选择和修改”、“元数据”什么都不操作即可,只操作“移除”。如果操作了“元数据”,那么要注意和“移除”比较一下,字段是否一致,不然会报错。

(11)设置文件输出

跟前端页面一致

(12)保存并运行查看hdfs

我们下载下来看一下:

4)案例4:读取hdfs文件并将sal大于1000的数据保存到hbase中

(1) 在HBase中创建一张表用于存放数据

[root@node4 ~]# hbase shell

hbase(main):002:0> create 'people','info'

(2)按下图建立流程图

(3)设置文件输入,连接hdfs

(4)设置过滤记录

(5)设置HBase output

注意:若报错没有权限往hdfs写文件,在Spoon.bat中第119行添加参数

"-DHADOOP_USER_NAME=node4" "-Dfile.encoding=UTF-8"

(6) 保持并运行,查看hbase

2.3 创建资源库

2.3.1 数据库资源库

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

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

2) 选择Database Repository

3) 建立新连接

4) 填好之后,点击finish,会在指定的库中创建很多表,至此数据库资源库创建完成

5) 连接资源库

默认账号密码为admin

6) 将之前做过的转换导入资源库

(1)选择从xml文件导入

(2)随便选择一个转换

(3)点击保存,选择存储位置及文件名

(4)打开资源库查看保存结果

2.3.2 文件资源库

将作业和转换相关的信息存储在指定的目录中,其实和XML的方式一样

创建方式跟创建数据库资源库步骤类似,只是不需要用户密码就可以访问,跨

平台使用比较麻烦

1)选择connect

2)点击add后点击Other Repositories

3)选择File Repository

4)填写信息

————————————————
版权声明:本文为CSDN博主「AllenGd」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Allenzyg/article/details/106308363

Kettle安装与使用相关推荐

  1. Kettle安装好MYSQL驱动后报用户名密码错误

    Kettle安装好MYSQL驱动后报用户名密码错误 报错信息 之前报错: 错误连接数据库 [tcc] : org.pentaho.di.core.exception.KettleDatabaseExc ...

  2. kettle安装及使用

    文章目录 1.kettle简述 1.1.kettle是什么 2.kettle安装配置 2.1.先决条件 2.1.1.安装jdk8 2.2.kettle下载 2.3.打开kettle 3.kettle基 ...

  3. kettle安装、使用、部署总结

    最近完成了公司安排的kettle项目,从零学起到解决各种问题,已经基本使用相对熟练了,做些总结,以便学习. kettle项目总结 kettle安装 Windows mac kettle使用 kettl ...

  4. Kettle安装报错:Debug Exception in thread “main“ java.lang.NoClassDefFoundError解决方式

    标题:Kettle安装报错:Debug  Exception in thread "main" java.lang.NoClassDefFoundError: org/eclips ...

  5. kettle安装部署及远程执行

    一.windows环境 1.安装jdk 随意选择目录 只需把默认安装目录 \java 之前的目录修改即可 2.安装jre→更改→ \java 之前目录和安装 jdk 目录相同即可 注:若无安装目录要求 ...

  6. Kettle安装完报错:Driver class org.gjt.mm.mysql.Driver could not be found

    今天安装Kettle使用,下载解压到本地后双击Spoon.bat 打开应用 首先测试连接Mysql,但是报错,这时候知道他没有需要的Connection包,到Mysql官网下载后,这里我的Mysql是 ...

  7. kettle安装与配置

    一.kettle下载 kettle官网地址:Home | Kettle 二.安装配置java环境 参考:java环境配置 三.配置kettle 1.解压 2.双击Spoon.bat出现错误提示: 说明 ...

  8. linux下kettle安装部署

    登陆-linux-(切换到kettle部署的用户下面) 第一:产看系统的java环境,cat .bash_profile 文件 从上面可以看到,在cognos用户下已经安装了java jdk,版本是1 ...

  9. kettle安装运行及JDK配置

    1.Kettle简单介绍 kettle 是一款开源的.元数据驱动的ETL工具集,是开源 ETL 工具里功能比较强大的一个. Kettle 是"Kettle E.T.T.L. Envirnon ...

最新文章

  1. 开源加持 NFV借势OPNFV实现进阶之路
  2. 用yacc编写的算术运算计算器_Linux里隐藏的计算器,你知道它的奥秘吗?
  3. No authorization to log on as a Trusted System
  4. 安卓学习日记:初识Android Studio · java环境配置和AS安装
  5. Spring Boot 最佳实践(一)快速入门
  6. html与markdown互相转换
  7. cacti实现微信告警功能
  8. Lync 小技巧-44-服务器问题影响了呼叫功能
  9. lua中table函数库
  10. Android支付实践(三)之银联支付功能(客户端+服务端)
  11. 【盘点】imx6的应用
  12. vbs整人代码大集合 多年的代码收集
  13. 微信小程序布局理解——flex、block、inline
  14. 2022腾讯云学生服务器价格申请认证及购买攻略!
  15. 华为鸿蒙系统支持什么手机_华为鸿蒙系统支持的手机型号_鸿蒙系统支持华为哪几款手机...
  16. Linux解决Device eth0 does not seem to be present,delaying initialization问题
  17. Java11完全兼容Java8吗_Java11正式发布,要不要升级请看这里!
  18. 怎么修改PDF文件的文字内容
  19. 视频号怎么赚钱?4个赚钱小技巧,实现视频号流量变现!
  20. VMware虚拟机启动后出现黑屏解决方法

热门文章

  1. Python依赖库、安装包(源码安装)
  2. 花了 6 个月整理了 100 篇 Android 干货文章
  3. 答读者问(6):单细胞TPM矩阵如何分析?
  4. GPGPU-SIM Code Study
  5. matlab寻找直线_Matlab 霍夫变换 ( Hough Transform) 直线检测
  6. 三轴磁传感器QMC5883
  7. Java中的反射如何理解——精简
  8. 《Python编程从入门到实践》,留言送5本
  9. 【专栏第一篇】分享实用美国求职,面试经历,技巧,以及超实用网站
  10. cookie跨域共享的实现方案