1.在java项目中执行hive相关的ktr:

 KettleEnvironment.init();TransMeta transMeta = new TransMeta("C:\\Users\\lixiang\\Desktop\\hivetorizhi.ktr");// 设置执行模式TransExecutionConfiguration config = new TransExecutionConfiguration();config.setExecutingClustered(true);config.setExecutingLocally(false);config.setExecutingRemotely(false);config.setClusterPosting(true);config.setClusterPreparing(true);config.setClusterStarting(true);TransSplitter transSplitter = Trans.executeClustered(transMeta, config);System.out.println(transSplitter.getCarteObjectMap());System.out.println(transSplitter.getMaster());System.out.println(transSplitter.getSlaves()[0]);System.out.println(transSplitter.getSlaves()[1].getStepNames()[0]);
}

2.报错:

Exception in thread "main" org.pentaho.di.core.exception.KettleXMLException:
错误从XML文件读取转换错误从XML文件读取转换Unable to load database connection info from XML nodeUnable to create new database interfacedatabase type with plugin id [HIVE2] couldn't be found!at org.pentaho.di.trans.TransMeta.loadXML(TransMeta.java:3402)at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2758)at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2710)at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2687)at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2667)at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2632)at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2595)at com.kettle.KettleExamle.getRemoteServer(KettleExamle.java:55)at com.kettle.KettleExamle.main(KettleExamle.java:140)
Caused by: org.pentaho.di.core.exception.KettleXMLException:
错误从XML文件读取转换Unable to load database connection info from XML nodeUnable to create new database interfacedatabase type with plugin id [HIVE2] couldn't be found!at org.pentaho.di.trans.TransMeta.loadXML(TransMeta.java:3384)... 8 more
Caused by: org.pentaho.di.core.exception.KettleXMLException:
Unable to load database connection info from XML nodeUnable to create new database interfacedatabase type with plugin id [HIVE2] couldn't be found!at org.pentaho.di.core.database.DatabaseMeta.<init>(DatabaseMeta.java:1013)at org.pentaho.di.trans.TransMeta.loadXML(TransMeta.java:2976)... 8 more
Caused by: org.pentaho.di.core.exception.KettleXMLException:
Unable to create new database interfacedatabase type with plugin id [HIVE2] couldn't be found!at org.pentaho.di.core.database.DatabaseMeta.<init>(DatabaseMeta.java:977)... 9 more
Caused by: org.pentaho.di.core.exception.KettleDatabaseException:
database type with plugin id [HIVE2] couldn't be found!at org.pentaho.di.core.database.DatabaseMeta.findDatabaseInterface(DatabaseMeta.java:584)at org.pentaho.di.core.database.DatabaseMeta.getDatabaseInterface(DatabaseMeta.java:558)at org.pentaho.di.core.database.DatabaseMeta.<init>(DatabaseMeta.java:974)... 9 more

3.报错分析:kettle程序在读取database type的过程中读不到hive2这个类型。

查看kettle-core-7.1.0.0-12.jar中的kettle-database-types.xml文件,此文件定义了database type ,其中没hive2.。

<database-types><database-type id="AS/400">                                                        <description>AS/400</description>                                                <classname>org.pentaho.di.core.database.AS400DatabaseMeta</classname>            </database-type>                                                                   <database-type id="CACHE"><description>Intersystems Cache</description><classname>org.pentaho.di.core.database.CacheDatabaseMeta</classname></database-type>                                                       <database-type id="DB2"><description>IBM DB2</description><classname>org.pentaho.di.core.database.DB2DatabaseMeta</classname></database-type>                                                     <database-type id="DBASE"><description>dBase III, IV or 5</description><classname>org.pentaho.di.core.database.DbaseDatabaseMeta</classname></database-type>                                                       <database-type id="DERBY"><description>Apache Derby</description><classname>org.pentaho.di.core.database.DerbyDatabaseMeta</classname></database-type>                                                       <database-type id="EXASOL4"><description>Exasol 4</description><classname>org.pentaho.di.core.database.Exasol4DatabaseMeta</classname></database-type>                                                         <database-type id="EXTENDB"><description>ExtenDB</description><classname>org.pentaho.di.core.database.ExtenDBDatabaseMeta</classname></database-type>                                                         <database-type id="FIREBIRD"><description>Firebird SQL</description><classname>org.pentaho.di.core.database.FirebirdDatabaseMeta</classname></database-type>                                                          <database-type id="GENERIC"><description>Generic database</description><classname>org.pentaho.di.core.database.GenericDatabaseMeta</classname></database-type>                                                         <database-type id="GREENPLUM"><description>Greenplum</description><classname>org.pentaho.di.core.database.GreenplumDatabaseMeta</classname></database-type>                                                           <database-type id="INFINIDB"><description>Calpont InfiniDB</description><classname>org.pentaho.di.core.database.InfiniDbDatabaseMeta</classname></database-type><database-type id="SQLBASE"><description>Gupta SQL Base</description><classname>org.pentaho.di.core.database.GuptaDatabaseMeta</classname></database-type>                                                        <database-type id="H2"><description>H2</description><classname>org.pentaho.di.core.database.H2DatabaseMeta</classname></database-type>                                                    <database-type id="HYPERSONIC"><description>Hypersonic</description><classname>org.pentaho.di.core.database.HypersonicDatabaseMeta</classname></database-type>                                                            <database-type id="INFOBRIGHT"><description>Infobright</description><classname>org.pentaho.di.core.database.InfobrightDatabaseMeta</classname></database-type>                                                            <database-type id="INFORMIX"><description>Informix</description><classname>org.pentaho.di.core.database.InformixDatabaseMeta</classname></database-type>                                                          <database-type id="INGRES"><description>Ingres</description><classname>org.pentaho.di.core.database.IngresDatabaseMeta</classname></database-type>                                                        <database-type id="VECTORWISE"><description>Ingres VectorWise</description><classname>org.pentaho.di.core.database.VectorWiseDatabaseMeta</classname></database-type>                                                        <database-type id="INTERBASE"><description>Borland Interbase</description><classname>org.pentaho.di.core.database.InterbaseDatabaseMeta</classname></database-type>                                                           <database-type id="KINGBASEES"><description>KingbaseES</description><classname>org.pentaho.di.core.database.KingbaseESDatabaseMeta</classname></database-type>                                                            <database-type id="LucidDB"><description>LucidDB</description><classname>org.pentaho.di.core.database.LucidDBDatabaseMeta</classname></database-type>                                                         <database-type id="MARIADB"><description>MariaDB</description><classname>org.pentaho.di.core.database.MariaDBDatabaseMeta</classname></database-type><database-type id="MONETDB"><description>MonetDB</description><classname>org.pentaho.di.core.database.MonetDBDatabaseMeta</classname></database-type>                                                         <database-type id="MSACCESS"><description>MS Access</description><classname>org.pentaho.di.core.database.MSAccessDatabaseMeta</classname></database-type>                                                          <database-type id="MSSQLNATIVE"><description>MS SQL Server (Native)</description><classname>org.pentaho.di.core.database.MSSQLServerNativeDatabaseMeta</classname></database-type>                                                             <database-type id="MSSQL"><description>MS SQL Server</description><classname>org.pentaho.di.core.database.MSSQLServerDatabaseMeta</classname></database-type>                                                             <database-type id="MYSQL"><description>MySQL</description><classname>org.pentaho.di.core.database.MySQLDatabaseMeta</classname></database-type>                                                       <database-type id="MONDRIAN"><description>Native Mondrian</description><classname>org.pentaho.di.core.database.MondrianNativeDatabaseMeta</classname></database-type>                                                       <database-type id="NEOVIEW"><description>Neoview</description><classname>org.pentaho.di.core.database.NeoviewDatabaseMeta</classname></database-type>                                                         <database-type id="NETEZZA"><description>Netezza</description><classname>org.pentaho.di.core.database.NetezzaDatabaseMeta</classname></database-type>                                                         <database-type id="ORACLE"><description>Oracle</description><classname>org.pentaho.di.core.database.OracleDatabaseMeta</classname></database-type>                                                        <database-type id="ORACLERDB"><description>Oracle RDB</description><classname>org.pentaho.di.core.database.OracleRDBDatabaseMeta</classname></database-type>                                                           <database-type id="POSTGRESQL"><description>PostgreSQL</description><classname>org.pentaho.di.core.database.PostgreSQLDatabaseMeta</classname></database-type><database-type id="REDSHIFT"><description>Redshift</description><classname>org.pentaho.di.core.database.RedshiftDatabaseMeta</classname></database-type><database-type id="REMEDY-AR-SYSTEM"><description>Remedy Action Request System</description><classname>org.pentaho.di.core.database.RemedyActionRequestSystemDatabaseMeta</classname>                                                                                           </database-type>                                                                          <database-type id="SAPDB"><description>MaxDB (SAP DB)</description><classname>org.pentaho.di.core.database.SAPDBDatabaseMeta</classname></database-type>                                                       <database-type id="SQLITE"><description>SQLite</description><classname>org.pentaho.di.core.database.SQLiteDatabaseMeta</classname></database-type><database-type id="SYBASE"><description>Sybase</description><classname>org.pentaho.di.core.database.SybaseDatabaseMeta</classname></database-type><database-type id="SYBASEIQ"><description>SybaseIQ</description><classname>org.pentaho.di.core.database.SybaseIQDatabaseMeta</classname></database-type><database-type id="TERADATA"><description>Teradata</description><classname>org.pentaho.di.core.database.TeradataDatabaseMeta</classname></database-type><database-type id="UNIVERSE"><description>UniVerse database</description><classname>org.pentaho.di.core.database.UniVerseDatabaseMeta</classname></database-type><database-type id="VERTICA"><description>Vertica</description><classname>org.pentaho.di.core.database.VerticaDatabaseMeta</classname></database-type><database-type id="VERTICA5"><description>Vertica 5+</description><classname>org.pentaho.di.core.database.Vertica5DatabaseMeta</classname></database-type></database-types>

4.报错解决:

hive的api的连接方式是通过jdbc连接的。因此kettle连接hive的思路与连接postgresql的思路相同。因此,仿照postgresql的连接方法自定义一个database-type为hive2。第一步,在kettle-core-7.1.0.0-12.jar的kettle-database-types.xml文件中添加下面内容

   <database-type id="HIVE2"><description>HIVE2</description><classname>org.pentaho.di.core.database.Hive2SQLDatabaseMeta</classname></database-type>

注意:其中会有对应的实现类org.pentaho.di.core.database.Hive2SQLDatabaseMeta,而这个实现类是不存在的,需要自己手动创建,如何创建呢?请看下一步。

第二步:仿照postgresql的实现类org.pentaho.di.core.database.PostgreSQLDatabaseMeta来写即可,只需将连接的url以及jdbc driver名称更换为hive相关。具体操作:PostgreSQLDatabaseMeta复制一份重命名为Hive2SQLDatabaseMeta,修改其中的其中的getDriverClass 方法的返回值为hive的jdbc Driver和getDriverClass方法的返回值为hive的url。

将org.pentaho.di.core.database.Hive2SQLDatabaseMeta类编译为.class文件(kettle的源码github上面有,自行下载,下载完成以后就可以进行第2步的复制类修改类然后反编译成class文件)放进kettle-core-7.1.0.0-12.jar的org\pentaho\di\core\database路径下

6.将修改后kettle-core-7.1.0.0-12.jar放入执行项目中,执行ktr:

执行成功:结果:

{/hivetorizhi (master)=1cc5f5bb-b0c4-4938-96f7-85363f88564d, /hivetorizhi (local:slave1-8081)=09ea3633-f5bd-4e43-9352-62b958255469, /hivetorizhi (local:slave2-8082)=35e00dc2-f570-4f26-8540-156fb84d9524}
/hivetorizhi (master)
/hivetorizhi (local:slave2-8082)
写日志

over

附加:

适配hive后的kettle-core-7.1.0.0-12.jar 下载链接:https://download.csdn.net/download/m0_37618809/11081777

kettle-java代码执行hive相关ktr时报错: database type with plugin id [HIVE2] couldn‘t be found!相关推荐

  1. java代码解压rar文件时报错,badRarArchive

    针对java代码解压rar文件时报错浅谈 1.针对所报的异常: de.innosystec.unrar.Archive setFile 警告: exception in archive constru ...

  2. HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令

    1.上传tar包 这里我上传的是apache-hive-1.2.1-bin.tar.gz 2.解压 mkdir -p /home/tuzq/software/hive/ tar -zxvf apach ...

  3. java栈属于哪个代,Java 代码执行原理

    原标题:Java 代码执行原理 西安鸥鹏it教育将在本篇文章中,将重点研究java源代码的执行原理,即从程序员编写JAVA源代码,到最终形成产品,在整个过程中,都经历了什么?每一步又是怎么执行的?执行 ...

  4. java build path entries 为空_TOOLFK工具-在线JAVA代码执行工具

    本文要推荐的[TOOLFK]在线JAVA代码执行工具 ,提供JAVA代码在线执行功能. 網站名稱:ToolFk 網站鏈結:https://www.toolfk.com/ 工具链接:https://ww ...

  5. java解析shell命令_Android中执行java命令的方法及java代码执行并解析shell命令

    这篇文章给大家介绍Android中执行java命令的方法及java代码执行并解析shell命令,需要的朋友一起学习 android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析 ...

  6. java 调用wget_通过命令行执行WGET下载会更快,而通过Java代码执行时会更慢

    我正在使用WGET通过java代码下载文件,这需要大约10分钟才能下载20 MB文件.但是通过命令行执行wget下载,同样的文件以10MbPs的速度在7秒内下载.有人知道为什么吗?我该如何改进我的Ja ...

  7. hive跑mr时报错,java.lang.IllegalArgumentException: The value of property yarn.resourcemanager.zk-address

    E1:hive跑mr时报错,java.lang.IllegalArgumentException: The value of property yarn.resourcemanager.zk-addr ...

  8. Java代码执行顺序

    Java代码执行顺序 1. Java初步认知 2. Javayun.java例子 3. 反编译Javayun.class文件 4. 分析Javayun_dxdump文件 5. 再来一个网上的例子Jav ...

  9. linux怎么卸载webpack,安装webpack后,执行webpack -v命令时报错:SyntaxError: Block-sc

    安装webpack后,执行webpack -v命令时报错如下: [root@FreeServer ~]# webpack -v /usr/local/node-v4.4.7-linux-x64/lib ...

  10. java数据库防火墙,数据库centos7防火墙导致java程序访问mongodb3.0.1时报错的问题分析...

    环境描述: 数据库:mongodb3.0.1 数据库系统:centos7,(虚拟机,最小安装) 数据库驱动:mongo-Java-driver-3.0.0.jar 问题描述:shell环境下用mong ...

最新文章

  1. Hadoop HDFS copyMergeFromLocal
  2. 【数据结构链表】之五单链表
  3. 清除dns缓存命令行_怎么防止移动dns劫持,防止移动dns劫持要先了解什么是dns劫持...
  4. 【移植Linux 3.4.2内核之四】修改内核代码支持YAFFS文件系统
  5. 备战蓝桥杯—枚举——[USACO Nov08]成交
  6. 10右键闪退到桌面_windows7多用户远程桌面如何设置
  7. 京东:所有湖北员工按时发工资 工作岗位一直保留
  8. Cerberus 银行木马开发团队解散,源代码5万美元起拍
  9. c语言 465串口编程,用C语言编写串口程序
  10. if mysql sum 视图_MySQL(Excel透视)
  11. Spring Data JPA持久层中的一对一和一对多
  12. 三种编码器协议(Endat\BISS\SSI)
  13. C语言 学生课程成绩管理系统
  14. FFmpeg结构体分析: AVCodecContext编解码器上下文
  15. 如何应用计算机键盘截图,键盘怎么截图
  16. 关于wish平台收款方式的比较,哪个更好?
  17. AMBA总线概述——AHB、APB、AXI
  18. 怎么样手机里面的计算机发出音乐,周三手机课︱怎样把U盘、电脑、微信的音乐存在手机里?...
  19. 联想320s笔记本能装服务器系统,联想ideapad 320S-15笔记本怎么安装win7系统
  20. 买房贷款等额本息月供计算方法及其go代码

热门文章

  1. DFS/BFS+思维 HDOJ 5325 Crazy Bobo
  2. 大地GhostXP_SP3_2013极速装机5月版
  3. 教程|最新空白昵称与透明头像设置方法教程,让自己在微信中隐藏掉
  4. 锋利的jQuery读书笔记-第1章 认识jQuery
  5. dhcp failover linux,Centos7 安装 DHCP 4.1 服务器配置及热备
  6. 服务器抓不到mrcp信息,MRCP学习笔记-语音识别资源的事件和headers详解
  7. #Excel公式应用#从数据透视表进一步汇总文本信息
  8. 解决win10任务栏卡死无响应点不动
  9. Gateway一文详解
  10. mysql 整除取整,MySQL小数位取整