欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

kettle使用指南

程序员文章站 2022-04-10 23:46:39
...

一、kettle下载

[官网地址][1]
1. 安装JDK环境:JDK1.8以及更高的版本
2. 下载以后解压就可以使用了

二、任务(.kjb)与转换(.ktr)

kettle使用指南
简单地说,一个转换就是一个ETL的过程,而作业则是多个转换、作业的集合,在作业中可以对转换或作业进行调度、定时任务等

三、组件

1.spoon.bat/spoon.sh

图形界面工具,就是启动上图主界面的命令行。这个界面应该是JavaFX做的。这个用来在有图形界面的系统下写任务,如Windows,写好后,也可以通过该工具进行执行,调试。

2.kitchen.bat/kitchen.sh

./kichen.sh -file ./demo.kjb

作业脚本后缀是.kjb

3.pan.bat/pan.sh

./pan.sh -file ./demo.ktr

转换的后缀是.kjb
基于以上两种脚本,可以启动spoon.bat/spoon.sh 在其图形界面系统下写好脚本以后使用命令行执行。

四、设置数据库

1、将相应的数据库驱动拷贝到data-integration目录下的lib文件夹内
kettle使用指南
2、填上相应的主机名、数据库名、端口号以及用户名和密码,然后点击测试
以上方式相对不太灵活,一般采用以下方式配置数据库

修改配置文件

进入data-integration的simple-jndi目录下
修改文件jdbc.properties

TBIN/type=javax.sql.DataSource
TBIN/driver=org.apache.hive.jdbc.HiveDriver
TBIN/url=jdbc:hive2://ip:port
TBIN/user=userName
TBIN/password=password

以上配置为连接hive的配置,其中TBIN为自己任意指定的名称,其他数据库的配置同上相似

重新启动spoon,然后在spoon界面中
kettle使用指南
然后测试通过那么就配置成功了

五、CDH5.6.7支持SparkSQLThriftServer

下载社区版本的spark

我这边cdh的spark版本是2.1.1,所以我下载的社区版的spark也为2.1.1
进入$SPARK_HOME/conf
增加文件 hive-site.xml
添加如下内容

<?xml version="1.0" encoding="UTF-8"?>  
<configuration>  
<property>
  <name>hive.metastore.uris</name>  
  <value>thrift://cdhnode:9083</value>
</property>
<property>
  <name>hive.server2.thrift.port</name>
  <value>10001</value>
</property>
<property>
  <name>hive.server2.thrift.bind.host</name>
  <value>cdhnode</value>
</property>
</configuration>

然后进入$SPARK_HOME/sbin
执行以下命令:

 ./start-thriftserver.sh --master yarn --conf spark.dynamicAllocation.enabled=true

六、遇到的问题

错误连接数据库 [test] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Error connecting to database: (using class org.apache.hadoop.hive.jdbc.HiveDriver)
No suitable driver found for jdbc:hive://xxxxx:10000/default

这种问题一般是没有将驱动包拷贝到到data-integration目录下的lib文件夹内或者使用cdh版本的hive时没有将驱动拷贝到data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\cdh57\lib下。

2018/03/15 14:56:44 - hive_test2 -  at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
2018/03/15 14:56:44 - hive_test2 -  at java.sql.DriverManager.getConnection(DriverManager.java:664)
2018/03/15 14:56:44 - hive_test2 -  at java.sql.DriverManager.getConnection(DriverManager.java:247)
2018/03/15 14:56:44 - hive_test2 -  at org.osjava.sj.loader.SJDataSource.getConnection(SJDataSource.java:101)
2018/03/15 14:56:44 - hive_test2 -  at org.osjava.sj.loader.SJDataSource.getConnection(SJDataSource.java:81)
2018/03/15 14:56:44 - hive_test2 -  at org.pentaho.di.core.database.Database.normalConnect(Database.java:431)
2018/03/15 14:56:44 - hive_test2 -  at org.pentaho.di.core.database.Database.connect(Database.java:370)
2018/03/15 14:56:44 - hive_test2 -  at org.pentaho.di.job.entries.sql.JobEntrySQL.execute(JobEntrySQL.java:243)
2018/03/15 14:56:44 - hive_test2 -  at org.pentaho.di.job.Job.execute(Job.java:724)
2018/03/15 14:56:44 - hive_test2 -  at org.pentaho.di.job.Job.execute(Job.java:865)
2018/03/15 14:56:44 - hive_test2 -  at org.pentaho.di.job.Job.execute(Job.java:546)
2018/03/15 14:56:44 - hive_test2 -  at org.pentaho.di.job.Job.run(Job.java:436)
2018/03/15 14:56:44 - hive_test2 - Caused by: java.lang.ClassNotFoundException: org.apache.thrift.transport.TTransportException
2018/03/15 14:56:44 - hive_test2 -  at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
2018/03/15 14:56:44 - hive_test2 -  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
2018/03/15 14:56:44 - hive_test2 -  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
2018/03/15 14:56:44 - hive_test2 -  ... 12 more
2018/03/15 14:56:44 - hive_test2 - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : A serious error occurred during job execution: 
2018/03/15 14:56:44 - hive_test2 - Unexpected error occurred while launching entry [SQL.0]
2018/03/15 14:56:44 - hive_test2 - org/apache/thrift/transport/TTransportException

这种问题一般是kettle缓存的问题,只需要将data-integration\system\karaf\caches\下的kitchen文件夹删除即可

相关标签: kettle-教程