安装kettle

 

官网下载kettle安装包,版本7.1

1.安装完成后在安装目录中找到Spoon.bat,点击后将会启动keetle,如图

kettle 获取变量 REST client get_数据

 

启动后界面:

kettle 获取变量 REST client get_数据_02

 

启动时遇到的问题

提示错误[mysql] : org.pentaho.di.core.exception.KettleDatabaseException: 
      Error occured while trying to connect to the database
      Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed.
      org.gjt.mm.mysql.Driver

缺少mysql的驱动jar包,下载mysql-connector-java-5.1.21-bin.jar放在kettle目录下的lib文件夹下,重启kettle。

 

 

配置转换任务

1.启动成功后,左上角点击”文件-新建-转换“保存为demo.ktr

kettle 获取变量 REST client get_mysql_03

 

2.打开左侧 核心对象--》输入--》表输入,拖拽到中间

kettle 获取变量 REST client get_数据_04

 

双击打开,点击新建

kettle 获取变量 REST client get_hadoop_05

 

选择数据库类型,填写数据库参数配置后点击确认

kettle 获取变量 REST client get_数据_06

 

点击预览,填入想要查询的数据行数,如果能拿到数据说明mysql配置正确

kettle 获取变量 REST client get_hadoop_07

 

3.打开左侧 核心对->big data -> Hadoop File output ,拖放到右端工作台上,并与目标端连接

用鼠标中建连接源端与目标端,或者选中源端,按 shift 将源端指向目标端,如下图:

kettle 获取变量 REST client get_数据_08

 

双击 Hadoop File output,点击new,配置hadoop需要的参数,把红色箭头指向的填好即可,其他的默认。然后点击测试

kettle 获取变量 REST client get_hadoop_09

 

此时会弹出hadoop版本信息,记下CDH5.8,之后可能会用

kettle 获取变量 REST client get_hadoop_10

 

 

测试结果如图:

kettle 获取变量 REST client get_mysql_11

 

我们所要达到的效果是前三个为绿沟。但是可能会遇到一些错误。

1)第一个Active Shim Load为红叉。

打开plugins\pentaho-big-data-plugin\plugin.properties 文件

修改 active.hadoop.configuration 为 active.hadoop.configuration=cdh58

 红字部分,就是我们上面记录的版本信息,保存现有配置,重启kettle

 

2)再次测试可能第二个Shim Configuration Verification为黄色感叹号。

复制集群中的 core-site.xml,将该 xml 文件复制到 plugins\pentaho-big-data-plugin\hadoop-configurations\cdh58,替换原有 core-site.xml。记得将原先的core-site.xml备份乙方改出问题进行回退

测试成功后回到原先的界面,选择我们刚刚配置的hadoop连接。

Folder/File/java/kt是我们数据库的数据在hadoop系统中的存放地址,其中kt是文件名,txt是文件后缀。

kettle 获取变量 REST client get_mysql_12

到此,mysql抽取数据到hadoop的转换过程配置完毕,下面开始执行。

 

执行转换过程

1.点击左上角 文件-》新建—》作业。

   点击核心对象-》通用,将start和转换拖入作业中,通箭头连接(按住shift从start拖向转换)

kettle 获取变量 REST client get_hadoop_13

 

2.双击转换,选择我们刚刚自定义的转换.ktr文件,并自定义转换的名称

kettle 获取变量 REST client get_数据_14

 

点击start,选择一个路径存放运行结果.kjb文件。查看下方日志看是否成功。

kettle 获取变量 REST client get_hadoop_15

 

 

执行完可能遇到的错误:没有权限在hadoop中创建和打开文件。此时需要去hadoop系统中放开该路径下的权限。

执行命令

$hadoop  fs  -chmod  777  /java

kettle 获取变量 REST client get_hadoop_16

 

在hadoop中验证结果

进入hadoop系统中,执行hadoop命令,查看对应的路径下的文件及其内容

$hadoop  fs  -text /java/kt2.txt

kettle 获取变量 REST client get_数据_17

对比数据库中的数据

kettle 获取变量 REST client get_hadoop_18

抽取成功。