kettle使用笔记(安装连接篇)

首先声明:此文秉承不泄露公司信息的原则

1 Kettle安装与基本概念

1.1 安装介绍

测试完之后发现6.0版本最稳定。本文采用的版本为pdi-ce-6.0.1.0-386.zip。

(1)    Windows

首先,安装JDK,一般支持1.6以上版本。然后360解压,运行Soop.bat文件即可。

(2)    Linux

首先,安装JDK,然后,使用unzip命令解压,执行Kitchen.sh即可。

1.2 基本概念

Kettle包括三大块:

Spoon——转换/工作(transform/job)设计工具 (GUI方式)

Kitchen——工作(job)执行器 (命令行方式)

Span——转换(trasform)执行器 (命令行方式)

Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高效稳定。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

Kettle的ETL操作主要由以下六个部分构成:

(1)资源库:固定存储已建立好的连接、转换或作业的数据库。

(2)数据库连接:用户自定义的,在转换或作业中使用的数据库连接。

(3)转换(Transform):数据抽取、转换、加载流程的封装。

(4)作业(Job):将多个转换或一些任务封装,用于ETL任务的执行。

(5)步骤(steps):转换或作业的组成。

(6)节点连接(Hup):连接转换步骤或者连接Job(实际上就是执行顺序)的连线。

2 基本操作步骤

2.1 浏览和管理资源库

点击Spoon.bat打开kettle即会弹出如图2.1所示界面,点击 183842_35he_3323164.png 编辑已有的资源库连接;点击183849_gum1_3323164.png新增资源库连接。需新建号数据库连接、编辑名称和描述。

183334_st2r_3323164.png

图2.1 资源库新建与编辑

最后点击“创建或更新”即可。用户名和密码默认为“admin”。资源库的作用是将制作好的.ktr和.kjb文件都存放到配置好的数据库中。如图2.2所示。

183349_Xnby_3323164.png

图2.2 资源库的登录

点击“工具”-“资源库”-“探索资源库”可浏览保存在资源库里的文件。如图2.3所示。

183358_UkPz_3323164.png

图2.3 探索资源库

2.2 新增数据库连接

在新建数据库连接之前,需将对应的数据库连接的驱动放到kettle的安装目录的pdi-ce-6.0.1.0-386\data-intergration\lib文件夹下。然后,点击新建图标183829_8AAO_3323164.png,点击下拉框里面的“数据库连接”,选择mysql数据库类型,可新增数据库链接。如图2.4所示。

183409_FU0g_3323164.png

图2.4 数据库连接

访问方法:推荐使用JDBC。

连接名称:用户自定义。

服务器主机:填写数据库服务器IP地址。

数据库名称:填写数据库名称。

2.3 Hive连接

在创建hive数据库连接之前,需要将安装的hive的lib目录下的hive-common-*.jar文件放到kettle的安装目录pdi-ce-6.0.1.0-386\data-integration\lib下面。然后,启动远程服务开启hiveserver2 &。最后,点击新建图标183458_6YZ1_3323164.png,点击下拉框里面的“数据库连接”,选择HadoopHive2数据库类型,可新增数据库链接。

2.4 Hdfs连接

     在创建Hadoop cluster连接之前,需要将集群的配置文档core-site.xml、mapred-site.xml、hdfs-site.xml复制到kettle安装目录的pdi-ce-6.0.1.0-386\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\cdh54下替换掉原有的文件。然后,修改此目录下的config.properties文件,在文件结尾加一行authentication.superuser.provider=NO_AUTH。最后,修改pdi-ce-6.0.1.0-386\data-integration\plugins\pentaho-big-data-plugin目录下的plugin.properties文件,修改active.hadoop.configuration=cdh54(改为自己安装的hadoop版本),等号右侧为hadoopcluster的版本型号。

     点击“核心对象树”下的“hadoopcluster”新建连接。如图2.5所示。

183549_sost_3323164.png

图2.5 hadoop连接

2.5 新增作业和转换

点击183608_hoKv_3323164.png,在弹出的下拉框中点击“作业”或“转换”来新建它们,左侧“主对象树”中详细显示了对应功能所包含的步骤,“核心对象”包含了可添加的对象步骤。

2.6 远程部署kettle

在后续的测试工作中发现,当本地的kettle去操作hdfs的时候会报错:could close the output stream for file “hdfs://….”。原因是本地和云服务器不在同一个网段。考虑到云服务器没有图形界面,采取在主节点部署kettle,然后开启远程服务,本地的ETL采用远程执行的方式操作。

a.  linux安装kettle,并开启远程服务。

将安装包上传到主节点,然后用unzip命令解压,后续配置工作同上。

b.  开启远程服务。

配置data-integration/pwd/carte-config-*.xml文件。修改里面master和slaver的端口号,因为默认的8080端口与spark冲突。并将所有localhost更改为内网IP:xxxxx。用户名密码默都为cluster。

执行data-integration/carte.sh xxxxx:xxx启动远程服务。如图2.6所示。

183619_xPlD_3323164.png

图2.6 启动kettle远程服务

c.  配置远程服务

找到“主对象树”-“子服务器”,右击新建,过程如下图2.7所示。

183643_FJQg_3323164.png

图2.7 配置kettle远程服务器

d.  任务提交

当本地的etl文件写好之后,点击183659_W88l_3323164.png执行,在弹出的运行窗口中选择,“远程执行”,并选择上一步配置好的远程服务器。如下图2.8所示:

183708_hseH_3323164.png

图2.8 提交远程作业并执行

e.  登录web端查看kettle远程服务状态

在浏览器登录http://xxxxx:xxxx用默认的用户名/密码cluster登录。

183732_djaX_3323164.png

图2.9  Kettle服务器登录

183742_ZlN0_3323164.png

图2. 10 kettle远程服务状态

2.7 调度kitchen.bat参数,写定时更新任务kettle

为了实现ETL任务自动化的定时执行,windows采用任务计划+.bat脚本的方式实现对增量数据的定时抽取的开发。

Kitchen—作业执行器,它是一个作业执行引擎,用来执行作业。这是一个命令行执行工具, 参数说明如下

-rep:Repositoryname 任务包所在存储名

-user:Repositoryusername 执行人

-pass:Repositorypassword 执行人密码

-job:Thenameofthejobtolaunch 任务包名称

-dir:Thedirectory(don'tforgettheleading/or\)

 -file:Thefilename(JobXML)tolaunch

-level:Thelogginglevel(Basic,Detailed,Debug,Rowlevel,Error,Nothing)指定日志级别

-log:Theloggingfiletowriteto 指定日志文件

-listdir:Listthedirectoriesintherepository 列出指定存储中的目录结构。

-listjobs:Listthejobsinthespecifieddirectory 列出指定目录下的所有任务

-listrep:Listthedefinedrepositories 列出所有的存储

-norep:Don'tlogintotherepository 不写日志

本文的脚本里面采用的命令为Kitchen.bat /rep root /user admin /pass admin /job 作业名,具体定时任务开发见3.3.3节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仔仔1993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值