Kettle

Kettle

1. 安装kettle

2. Kettle功能说明

  1. Kettle操作

1. 安装kettle

1.1 JDK安装

将JDK文件解压,放到/home/zkpk目录下

cd /home/zkpk

unzip jdk1.6.0_45.zip

使用vi配置环境变量

vi /home/zkpk/.bash_profile

复制粘贴以下内容到上面vi打开的文件中

export JAVA_HOME=/home/zkpk/jdk1.6.0_45/

export JRE_HOME=/home/zkpk/jdk1.6.0_45/jre/

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

使改动生效命令:

source .bash_profile

测试配置:

java -version

如果出现下图信息,代表JDK安装成功:

1.2 kettle工具安装

打开此链接下载kettle

http://community.pentaho.com/projects/data-integration/

 

点击Download下载

将下载后的pdi-ce-5.1.0.0-752.zip复制到linux下

在/home/zkpk/kettle目录下解压:

cd /home/zkpk

mkdir kettle

cd kettle

unzip pdi-ce-5.1.0.0-752.zip

安装完成后,可以看到生成一个新的文件夹data-integration,则/home/zkpk/kettle/data-integration即是kettle的安装和执行目录。

赋予.sh执行权限:

chmod +x *.sh

运行.kitchen.sh

cd /home/zkpk/kettle/data-integration

./kitchen.sh

如果出现帮助信息,说明kettle安装部署成功。

 

启动kettle:

./spoon.sh

可弹出kettle操作界面:

 

弹出的帮助信息点击close:

 

紧接着可以看到kettle的使用界面:

 

2. Kettle功能说明

2.1 Kettel是什么?

Kettle也叫PDI,在2006年Kettle加入了来源的BI组织Pentaho,正式命名为PDI,英文全称为Pentaho Data Integeration。Kettle是“Kettle E.T.T.L.Environment”,只取首字母的缩写,这意味着它被设计用来实现ETL(Extract-Transform-Load)需要:抽取、转换、和加载数据;翻译成中文名称应该叫水壶,名字的起源正如该项目的主程序员MATT在一个论坛里说的那样:希望把各种数据放到一个壶里然后以一种指定的格式流出。

Spoon是一个图形用户界面,它允许你运行转换任务,其中转换是用Pan工具来运行,任务是用Kitchen来运行。Pan是一个数据转换引擎,它可以执行很多功能。例如:从不同的数据源读取\操作和写入数据。Kettle中有两种脚本文件,transformation和job,前者完成针对数据的基础转换,后者则完成整个工作流的控制。

2.2 Kettle支持的存储方式

2.2.1 Kettle支持的两种存储方式

Kettle有两种存储方式来描述任务:一种是资源库方式(数据库) ,一种是文件形式(XML) 。通常任务是在规定的时间间隔内用批处理的模式自动运行。

2.2.2 资源库方式

资源库是用来保存转换任务的,用户通过图形界面创建的的转换任务可以保存在资源库中。资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹形式分组管理的,用户可以自定义文件夹名称。资源库有两种形式: 

  • Kettle database repository,即保存在各种常见的数据库资源库类型,用户通过用户名/密码来访问资源库中的资源,默认的用户名/密码是admin/admin和guest/guest。

 二、Kettle file repository,保存在服务器硬盘文件夹内的资源库类型,此类型的资源库无需用户进行登录,直接进行操作

  1. Kettle操作

3.1从MySQL导出

3.1.1 从MySQL到本地文件

双击transformation,在input中、output中分别指定输入和输出格式:

 

指定输入:

 

点击new,连接数据库:

 

点击Test,测试连接,如若报错就执行以下步骤:

 复制 mysql-connector-java-5.1.27-bin.jar到

 /home/zkpk/kettle/data-integration/lib下

 再点击Test,出现以下内容表示成功:

 

指定查询语句,确定输出内容:

 

点击OK:

 

点击Launh:

 

成功,导出数据如下图所示:

 

3.1.2 从MySQL到HDFS

双击transformation,在input中、output中分别指定输入和输出格式:

输入为input中的Table input,输出为Big Data中的Hadoop File Output

 

Table input的设置如上所示,hadoop file output的设置如下图:

 

点击Connect,如若报错就执行以下步骤:

复制/home/zkpk/hadoop/hadoop-core-1.2.1.jar到

/home/zkpk/kettle/data-integration/plugins/pentaho-big-data-plug             

in/hadoop-configurations/hadoop-20/lib目录下,连接成功。

运行,点击Lunch,执行成功:

 

 

3.1.3 从MySQL到HBase

首先要在hbase shell中创建一个table,命名为sogou_kettle.

 然后将/home/zkpk/hbase/hbase-0.94.21.jar和              /home/zkpk/hbase/lib/zookeeper-3.4.5.jar、protobuf-java-2.4.0a.jar复制/home/zkpk/kettle/data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/hadoop-20/lib/pmr下。

接下来双击transformation,在input中、output中分别指定输入和输出格式,输 入为input中的Table input,输出为Big Data中的HBase Output:

 

 

Table input的设置如上所示,HBase Output的设置如下图:

 

填写Zookeeper host为master的ip,Zookeeper port为:2181,然后点击左上角的Create/Edit mappings,如下图所示:

 

点击Get table names,在下拉列表中选择hbase中以创建好的table,点击Get incoming fields,修改uid的Key为Y,Type为String。在Mapping name中填写列族cf1.点击Save mapping.然后点击左上角的Configure:

 

点击Get table names就能得到如上图所示的table的列表,点击Get mappings for the specified table也能得到相应的列族,点击ok。点击运行。

 

HBase中运行结果:

 

3.2从HBase导出

3.2.1 从HBase到mysql

双击transformation,在input中、output中分别指定输入和输出格式,

输 入为Big Data中的HBase Input,输出为Output中的Table Output:

 

指定输入:

 

以上操作类似于从mysql导数据到hbase中的hbase输出,然后点击ok,指定输出:

 

 

  在Target table一栏填写table的名字,然后点击右下角的SQL,从而在mysql中生成与HBase中表格的字段一致的table。

  然后点击执行:

 

 以上实验列举了四类数据的导入:

mysql--->本地、

mysql---->HDFS、

mysql---->HBase、

HBase---->mysql

    除此之外的其他使用kettle在本地/MySQL、HDFS、HBase之间执行ETL的操作类似,再次将不一一指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值