我的编程空间,编程开发者的网络收藏夹
学习永远不晚

kettle在windows上安装配置与实践案例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

kettle在windows上安装配置与实践案例

第1章 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)填写信息

到此这篇关于kettle在windows上安装配置与实践案例的文章就介绍到这了,更多相关kettle在windows安装内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

kettle在windows上安装配置与实践案例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

kettle在windows上安装配置与实践案例

Kettle是一款开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定,这篇文章主要介绍了kettle在windows上安装配置与实践案例,需要的朋友可以参考下
2022-11-13

Kafka kafka在windows下的安装与配置

kafka在windows下的安装与配置  By: 授客 QQ:1033553122  1.测试环境................................................................................
Kafka kafka在windows下的安装与配置
2021-09-21

Perl开发环境在Windows下如何安装与配置

这篇文章将为大家详细讲解有关Perl开发环境在Windows下如何安装与配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Windows下Perl开发环境的安装与配置Perl是一种深受世界各地开发者喜爱的
2023-06-17

怎么在Windows电脑上安装XAMPP并配置PHP环境

这篇文章主要介绍“怎么在Windows电脑上安装XAMPP并配置PHP环境”,在日常操作中,相信很多人在怎么在Windows电脑上安装XAMPP并配置PHP环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎
2023-07-05

nodejs安装与配置过程+初学实例解读

这篇文章主要介绍了nodejs安装与配置过程+初学实例解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-14

怎么在CentOS 8上安装与配置Apache虚拟主机

怎么在CentOS 8上安装与配置Apache虚拟主机,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Apache服务器是现代操作系统包括UNIX和Windows
2023-06-05

jmeter在linux上的安装与环境变量配置方法

本篇内容主要讲解“jmeter在linux上的安装与环境变量配置方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jmeter在linux上的安装与环境变量配置方法”吧! 一、 首先安装jdk,
2023-06-05

Node.js入门教程:在windows和Linux上安装配置Node.js图文教程

本章节我们将向大家介绍在window和Linux上安装Node.js的方法。 本安装教程以Node.js v0.10.26 版本为例。 Node.js安装包及源码下载地址为:http://www.nodejs.org/download/。根
2022-06-04

阿里云服务器在本地电脑上的安装与配置

本文将详细介绍如何将阿里云服务器部署到本地电脑,包括服务器的安装、配置和使用。通过本文,你将能够掌握如何在本地环境中运行阿里云服务器,实现数据共享、应用开发等需求。一、准备工作获取阿里云服务器的实例ID和公网IP地址。这可以通过在阿里云控制台中查看实例信息获取。下载并安装XenServer,这是一个虚拟机管理软件
阿里云服务器在本地电脑上的安装与配置
2024-01-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录