Kettle安装和配置

0x01 Kettle软件概览

  • Spoon:集成开发环境

  • Kitchen:作业的命令行运行程序,可以通过Schell脚本来调用

  • Pan:转换的命令行程序

  • Carte:轻量级的HTTP服务,后台运行,监听HTTP请求来运行一个作业

1.1 Spoon

主要用于ETL设计阶段。

1.2 命令行启动:Kitchen和Pan

作业和转换可以在图形界面里执行,但这只是在开发、测试和调试阶段。在开发完成后需要部署到实际运行环境中,在部署阶段Spoon就很少用到了。
在部署阶段,一般需要通过命令行执行,需要把命令行放入到Shell脚本中,并定时调度这个脚本。Kitchen和Pan命令行工具主要就用于这个阶段,用于实际的生产环境中。

1.3 作业服务器:Carte

Carte服务用于执行一个作业,就像Kitchen一样。但和Kitchen不同的是,Carte是一个服务,一直在后台运行,而Kitchen只是运行一个作业就退出。
Carte是Kettle集群中的一个重要构件块。集群可以将单个工作或转换分成几个部分,在Carte服务器的多个计算机上并行执行,因此可以分散工作负载。

0x02 下载安装

2.1 环境说明

特别注意:不同版本的kettlehadoop存在兼容性问题。所以一定要注意版本之间的兼容性,下文会介绍具体的查询方法。

2.1.1 windows环境

OS: Windows 10
jdk: jdk-1.8.0_121
kettle: pdi-ce-6.1.0.1-196

2.1.2 linux环境

OS: CentOS_6.5_x64
jdk: jdk1.8.111
hadoop: hadoop-2.6.5

2.2 下载安装

2.1 下载地址:

社区版:http://community.pentaho.com/
收费版:http://www.pentaho.com/product/data-integration
本教程使用的为社区版

2.2 安装

将下载的文件pdi-ce-6.1.0.1-196.zip解压(因为kettle是免安装的所以至此安装就完成了:))

0x03 配置

3.1 服务器端配置

3.1.1 编辑mapred-site.xml

<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>

3.2 客户端配置

3.2.1 编辑文件plugin.properties

进入目录\plugins\pentaho-big-data-plugin编辑文件plugin.properties

active.hadoop.configuration=cdh55

根据具体情况设定。

3.2.2 复制相关文件

进入目录plugins\pentaho-big-data-plugin\hadoop-configurations\cdh55

将服务器上hadoop/etc/hadoop/下的core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml复制到该目录下。

0x04 测试

4.1 双击Spoon.bat运行软件

4.2 文件 -> 新建 -> 作业

4.3 新建Hadoop Copy File作业

4.4 右键Hadoop clusters选择New cluster

4.5 填写Cluser Name, Hostname, Port

填写完成后如下图

注意:我之所填写master是因为我已经在主机的hosts文件里添加了映射。具体操作为编辑hosts,在最后一行追加(具体内容按照自己的实际情况修改)

192.168.32.100    master
192.168.32.101    slave1
192.168.32.102    slave2

如果不配置hosts可以直接写NameNode的IP地址,但是对应的配置文件也需要修改。

4.6 点击测试后结果如下

从图中可以看出User Home Directory Access是没有通过测试的,但是在实际使用中并不影响。
解决办法:通过查看日志发现,这里所说的User Home Directory是指windows用户的用户名,因为我没有在hdfs上创建windows用户admin的文件夹,所以会测试无法通过。只需要在hdfs上创建/user/admin目录即可解决这个问题。

4.7 配置输入文件和hdfs上的写入路径

4.8 执行结果

4.9 在服务器端查看

2017-08-17 22:05:20 星期四

posted @   ning-wang  阅读(2157)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示