kettle安装以及运行注意事项

ETL工具kettle使用资料整理

kettle工具安装

  • kettle是开源的etl开发工具,软件包中包含了windows,linux,mac三个版本。下载地址:https://sourceforge.net/projects/pentaho/files/latest/download
    解压下载的软件包
  • 拷贝Hadoop的配置文件到PDI的pdi-ce-7.0.0.0-25\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\对应版本的目录 包含以下五个文件(可按需增减,大数据的配置文件需要从hadoop集群中获取)hdfs-site.xml core-site.xml mapred-site.xml yarn-site.xml hbase-site.xml
  • 如果安装了oracle把oracle安装目录(C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib)下的oracle5.jar和oracle6.jar拷贝到pdi-ce-7.0.0.0-25\data-integration\lib下
  • 编辑相关配置文件cd /home/grid/data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/cdh54/在config.properties文件末尾添加如下一行 authentication.superuser.provider=NO_AUTH
  • 启动kettle:运行pdi-ce-7.0.0.0-25\data-integration\Spoon.bat linux下是:Spoon.sh

kettle工具简单使用

kettle工具主要介绍:资源链接配置,Transformation(转换),job(作业),资源库

Transformation主要进行具体的数据抽取过程的编写,以及数据清洗等操作。

job主要将多个Transformation按照特定的顺序和规则进行依赖关系的关联,确保数据流程的正确,以及对Transformation的调度作业,job也可以添加组件实现Transformation的功能。 Transformation和job可以分别单独调度执行的。

资源连接配置:

主要包含数据库连接串配置和hadoop集群环境的配置(下图作为oracle链接配置,右为hadoop集群配置样例)

Transformation组件介绍与使用

数据库连接的组件需要创建数据库连接,hadoop连接也需要单独创建
1.点击数据库连接旁的新建创建数据库连接,就可以连接上数据库。之后将需要查询的表的sql语句填写到下面的表格中,用于数据的检索。还可以将筛选的条件进行参数化,以便后续调度时,参数的动态传入。 之后按住shift键用鼠标拖动,连接两个组件。
2.选中gettablename,如果连接成功的话可以看到hbase中的表名称的列表,之后按照下图的操作步骤,加载oracle表与hbase表的对应关系:
3.之后一个Transformation的开发基本就结束了, 可以点击Transformation窗口的右上角的三角形保存和运行改Transformation,测试是否可行。

hbase组件内部字段的对应,以及map对应规则的确定,以及rowkey,列族挑选等

job组件介绍与使用

job组件和Transformation组件操作基本相似,job操作主要包含Transformation以及job之间的依赖调度。如下图:

job作业必须以一个start组件开始。

后面添加Transformation或者job来启动作业。

资源库使用

数据库的这些资源链接可以使用资源库进行统一的管理

下面是资源库链接介绍:

资源库分为文件资源库和数据库资源库

文件资源库的方式会在用户的根目录下产生一个隐藏文件夹.pentaho,里面存放hadoop集群的配置等。并会在资源库自定的目录下产生对应的数据库连接对应的.kdb格式的文件

  • 创建资源库介绍:

实际使用测试中发现:如果使用file Repository的话,用命令行调度Pan/Kitchen的时候,没有明显的报错但是数据无法写入到hdfs或者hbase中。具体原因还没有查明
使用Database Repsitory的话,需要指定数据库连接,以及用户名和密码,默认设置是admin/admin 之后在调度运行的时候直接指定对应的资源库 用户名密码以及trans/job名称就可以了运行了。

*注意事项:
1.从windows部署到linux的时候,由于开发工作是在windows图形界面开发的,例如资源库的配置信息,以及其他一些配置信息:例如hbase mapping表的信息都需要调入到linux中,作业才能够运行正确。
2.在windows下配置的hadoop集群的版本信息也需要在linux中的:F:\kettle\data-integration\plugins\pentaho-big-data-plugin\plugin.properties 中把active.hadoop.configuration=cdh58 改为对应的windows下配置的版本,否则会报错:org.pentaho.di.core.hadoop.NoShimSpecifiedException: Active configuration no...active.hadoop.configuration信息。



问题汇总

问题0:

kattle Driver class'oracle.jdbc.driver.OracleDriver' could not be found

解决办法:

 如果安装了Oracle数据库软件,$ORACLE_HOME\jdbc\lib下的ojdbc5.jar ojdbc6.jar包copy到kettle安装目录\lib 下面。重新运行spoon程序。

 

创建数据库连接: 数据库名:为数据库连接串@后的部分。

表空间:可以查看需要同步的表的建表语句。

用户名/密码需要是该表空间的用户

kettle配置oracle数据库连接:

 

问题1

个人安装kettle遇到的问题:

连接hadoop集群:

kettle安装以及运行注意事项_第1张图片

User Home Directory Access报错,需要在hadoop 的 hdfs上创建

kettle 系统当前用户名的文件夹, xshell登录到 Hadoop master 上,执行

hadoop fs -mkdir /user/你本机的用户名 如我的就是 hadoop ,所以执行

hadoop fs -mkdir /user/hadoop

右侧hdfs的用户名密码是登陆hadoop所在服务器的linux的用户名密码:root/guanghua

下面的oozie这些地址和端口号可以在cdh中进入到对应的web管理页面查看到url地址,及对应的端口号

 

问题2

连接hbase的时候:选择完配置文件之后点击get table name会弹出下面的错误,uknown host。

kettle安装以及运行注意事项_第2张图片

解决方案:在选择hbase-site.xml的文件目录中添加:file:/// 即可或者/ 或者\都可以

linux环境下:不需要添加file:///

连接hbase以及创建hbase 传输过程

我用的是Kettle7.0

第一步:

准备好数据:数据可以是文本,表...

kettle安装以及运行注意事项_第3张图片

第二步:配置Hadoop

kettle安装以及运行注意事项_第4张图片

点击测试:

 kettle安装以及运行注意事项_第5张图片

通过即可。

第三步:配置 HBase Output

       第一步:

kettle安装以及运行注意事项_第6张图片

配置好的hadoop导入

       第二步:

kettle安装以及运行注意事项_第7张图片

               图中第三步:Mappingname 名字可以随便起。

               图中低五步:把'key'的值改为Y 去掉'Columnfamily' 和 'Column name' 的值 ,'type'改为String

      第三步:

kettle安装以及运行注意事项_第8张图片

在重新打开获取图中数据,点击确定即可。

第四步:


完成。

 

问题3

kettle连接hbase大数据环境的时候,在图形界面数据可以写入到hbase以及hdfs,但是在用pan/Kitchen命令运行的时候,就会出现,hbase数据无法写入也不报明显错误。写入hdfs时日志打出路径为:file:F/kettle/data_file?hdfs:hadoop1:8020/user/dalong/data的本地路径下:

 

解答:经测试,发现使用文件资源库,以及不使用资源库的时候会出现这种情况,具体原因还不清楚。

将资源库改为数据库资源库的时候,数据就写入正常没有问题。

pan.bat -rep=ywgl_Repository -user=admin -pass=admin-trans=orc_to_hbase_test -level=Rowlevel >F:\kettle\Kettle_workspace\hbase_Repository\test2.log pause;

 

Kitchen.bat -rep=hbase_Repository -user=admin-pass=admin -job=orc2hbase_ywgl_task_info -level=Rowlevel >F:\kettle\Kettle_workspace\hbase_Repository\test2.log pause;

问题4

2017/09/11 10:37:40 - orc_to_hbase_test - 步骤 [表输入 2.0] 初始化不完全,有缺陷.

2017/09/11 10:37:40 - orc_to_hbase_test - 步骤 [Hadoop File Output.0] 初始化不完全,有缺陷.

解答:

这种log出现并不影响job的运行,

但是具体出现的原因还没有找到。

 


你可能感兴趣的:(BI开发相关)