今天编译安装了kettle8.3.10-R版本,然后连上公司的hadoop环境,测试hive2连接时报错:

错误连接数据库 [hive_hdp] : org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the databaseError connecting to database: (using class org.apache.hive.jdbc.HiveDriver)
org/apache/hive/service/cli/thrift/TCLIService$Ifaceorg.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the databaseError connecting to database: (using class org.apache.hive.jdbc.HiveDriver)
org/apache/hive/service/cli/thrift/TCLIService$Ifaceat org.pentaho.di.core.database.Database.normalConnect(Database.java:477)at org.pentaho.di.core.database.Database.connect(Database.java:373)at org.pentaho.di.core.database.Database.connect(Database.java:344)at org.pentaho.di.core.database.Database.connect(Database.java:334)at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:83)at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestResults(DatabaseFactory.java:112)at org.pentaho.di.core.database.DatabaseMeta.testConnectionSuccess(DatabaseMeta.java:2843)at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:631)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:157)at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:141)at org.pentaho.ui.xul.swt.tags.SwtButton.access$500(SwtButton.java:43)at org.pentaho.ui.xul.swt.tags.SwtButton$4.widgetSelected(SwtButton.java:137)at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)at org.eclipse.jface.window.Window.open(Window.java:796)at org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:89)at org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:56)at org.pentaho.di.ui.core.database.dialog.XulDatabaseDialog.open(XulDatabaseDialog.java:117)at org.pentaho.di.ui.core.database.dialog.DatabaseDialog.open(DatabaseDialog.java:61)at org.pentaho.di.ui.trans.step.BaseStepDialog.showDbDialogUnlessCancelledOrValid(BaseStepDialog.java:813)at org.pentaho.di.ui.trans.step.BaseStepDialog$EditConnectionListener.widgetSelected(BaseStepDialog.java:1521)at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)at org.pentaho.big.data.kettle.plugins.hive.trans.HiveOutputDialog.open(HiveOutputDialog.java:686)at org.pentaho.di.ui.spoon.delegates.SpoonStepsDelegate.editStep(SpoonStepsDelegate.java:120)at org.pentaho.di.ui.spoon.Spoon.editStep(Spoon.java:8814)at org.pentaho.di.ui.spoon.trans.TransGraph.editStep(TransGraph.java:3287)at org.pentaho.di.ui.spoon.trans.TransGraph.mouseDoubleClick(TransGraph.java:785)at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1384)at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7949)at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9331)at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:710)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)
Caused by: org.pentaho.di.core.exception.KettleDatabaseException:
Error connecting to database: (using class org.apache.hive.jdbc.HiveDriver)
org/apache/hive/service/cli/thrift/TCLIService$Ifaceat org.pentaho.di.core.database.Database.connectUsingClass(Database.java:590)at org.pentaho.di.core.database.Database.normalConnect(Database.java:461)... 56 more
Caused by: java.lang.NoClassDefFoundError: org/apache/hive/service/cli/thrift/TCLIService$Ifaceat org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)at java.sql.DriverManager.getConnection(DriverManager.java:664)at java.sql.DriverManager.getConnection(DriverManager.java:208)at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:572)... 57 more
Caused by: java.lang.ClassNotFoundException: org.apache.hive.service.cli.thrift.TCLIService$Ifaceat java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 61 more

在jvm参数中加上-verbose:class,发现org.apache.hive.service.cli.thrift.TCLIService$Iface类是加载了的。

[Loaded org.apache.hive.jdbc.HiveDriver from file:///D:/etl/8.3/data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/hdp30/lib/hive-jdbc-3.1.0.3.0.0.0-1634.jar]

于是debug模式启动kettle,发现日志中额外打印如下错误:

11:01:54,401 ERROR [HiveConnection] Error opening session
org.apache.thrift.TApplicationException: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null, configuration:{set:hiveconf:hive.server2.thrift.resultset.default.fetch.size=1000, use:database=default})at org.apache.thrift.TApplicationException.read(TApplicationException.java:111)at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:79)at org.apache.hive.service.rpc.thrift.TCLIService$Client.recv_OpenSession(TCLIService.java:176)at org.apache.hive.service.rpc.thrift.TCLIService$Client.OpenSession(TCLIService.java:163)at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:715)at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:228)at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)at sun.reflect.GeneratedMethodAccessor63.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.pentaho.hadoop.shim.common.invocationhandler.DriverInvocationHandler.invoke(DriverInvocationHandler.java:73)at com.sun.proxy.$Proxy74.connect(Unknown Source)at com.pentaho.big.data.bundles.impl.shim.hive.HiveDriver.doConnect(HiveDriver.java:97)at com.pentaho.big.data.bundles.impl.shim.hive.HiveDriver.connect(HiveDriver.java:78)at org.pentaho.big.data.api.jdbc.impl.LazyDelegatingDriver.lambda$connect$0(LazyDelegatingDriver.java:114)at org.pentaho.big.data.api.jdbc.impl.LazyDelegatingDriver.findAndProcess(LazyDelegatingDriver.java:72)at org.pentaho.big.data.api.jdbc.impl.LazyDelegatingDriver.connect(LazyDelegatingDriver.java:114)at org.pentaho.di.core.database.DelegatingDriver.connect(DelegatingDriver.java:53)at java.sql.DriverManager.getConnection(DriverManager.java:664)at java.sql.DriverManager.getConnection(DriverManager.java:208)at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:572)at org.pentaho.di.core.database.Database.normalConnect(Database.java:461)at org.pentaho.di.core.database.Database.connect(Database.java:373)at org.pentaho.di.core.database.Database.connect(Database.java:344)at org.pentaho.di.core.database.Database.connect(Database.java:334)at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:83)at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestResults(DatabaseFactory.java:112)at org.pentaho.di.core.database.DatabaseMeta.testConnectionSuccess(DatabaseMeta.java:2843)at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:631)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:157)at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:141)at org.pentaho.ui.xul.swt.tags.SwtButton.access$500(SwtButton.java:43)at org.pentaho.ui.xul.swt.tags.SwtButton$4.widgetSelected(SwtButton.java:137)at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)at org.eclipse.jface.window.Window.open(Window.java:796)at org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:89)at org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:56)at org.pentaho.di.ui.core.database.dialog.XulDatabaseDialog.open(XulDatabaseDialog.java:117)at org.pentaho.di.ui.core.database.dialog.DatabaseDialog.open(DatabaseDialog.java:61)at org.pentaho.di.ui.trans.step.BaseStepDialog.showDbDialogUnlessCancelledOrValid(BaseStepDialog.java:813)at org.pentaho.di.ui.trans.step.BaseStepDialog$EditConnectionListener.widgetSelected(BaseStepDialog.java:1521)at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)at org.pentaho.big.data.kettle.plugins.hive.trans.HiveOutputDialog.open(HiveOutputDialog.java:686)at org.pentaho.di.ui.spoon.delegates.SpoonStepsDelegate.editStep(SpoonStepsDelegate.java:120)at org.pentaho.di.ui.spoon.Spoon.editStep(Spoon.java:8814)at org.pentaho.di.ui.spoon.trans.TransGraph.editStep(TransGraph.java:3287)at org.pentaho.di.ui.spoon.trans.TransGraph.mouseDoubleClick(TransGraph.java:785)at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1384)at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7949)at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9331)at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:710)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)

然后搜索Required field ‘client_protocol’ is unset!这个问题,在StackOverflow上找到这个问题:
https://stackoverflow.com/questions/24694415/required-field-client-protocol-is-unset
里面第一个回答就说了为什么会出现这个问题:
因为client和server的版本不匹配,client的jar包版本高于server的版本。
然后对比了版本,果然,client是3.1,server是2.6.

于是换了client的相关jar包后,连接正常。

java.lang.ClassNotFoundException: org.apache.hive.service.cli.thrift.TCLIService$Iface相关推荐

  1. Hive启动报错:java.lang.ClassNotFoundException: org.apache.tez.dag.api.TezConfiguration

    <!--Hive启动报错:Caused by: java.lang.ClassNotFoundException: org.apache.tez.dag.api.TezConfiguration ...

  2. hive on spark 配置时报错:Job failed with java.lang.ClassNotFoundException: org.apache.spark.AccumulatorPa

    1.执行sql语句,报错信息. hive> insert into table student values(1,'abc'); Query ID = atguigu_2020081415001 ...

  3. hive查询hudi表使用count报java.lang.ClassNotFoundException: org.apache.hudi.hadoop.HoodieParquetInputFormat

    问题描述: hive 查询hudi 报错, 已将hudi 对应包hudi-hadoop-mr-bundle-0.9.0.jar放入lib目录下并重启hive select count(1) from ...

  4. java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.login_jsp

    背景:SpringBoot的项目配置了对jsp的支持,走控制器就报这个错误.相关配置如下: <!-- JSP BEGIN --><dependency> <groupId ...

  5. 一次java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession异常解决

    一次整合框架时,出现找不到类的异常,如下图所示 java.lang.NoClassDefFoundError: org/apache/ibatis/session/SqlSession 详细报错信息如 ...

  6. IDEA里运行代码时出现Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger的解决办法(图文详解)...

    问题详情 运行出现log4j的问题 "C:\Program Files\Java\jdk1.8.0_66\bin\java" -Didea.launcher.port=7533 & ...

  7. 错误: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils

    做项目的时候,实现图片异步上传并返回json数据,但是图片上传成功,json数据没有返回,报错:  java.lang.ClassNotFoundException: org.apache.commo ...

  8. java.lang.ClassNotFoundException: org/apache/xerces/parsers/SAXParser

    MyEclipse报错: Warning: Caught exception attempting to use SAX to load a SAX XMLReader Warning: Except ...

  9. Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

    1.错误叙述性说明 2014-7-12 0:38:57 org.apache.catalina.core.ApplicationContext log 信息: No Spring WebApplica ...

  10. 【报错笔记】使用MultipartFile 出现异常:java.lang.ClassNotFoundException: org.apache.commons.fileupload...

    使用MultipartFile出现异常:java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory ...

最新文章

  1. csv.writer写入文件有多余的空行
  2. jsp 连接access数据库
  3. python练手经典100例微盘_Python练手项目实例汇总(附源码下载)
  4. javamail 解码 base64 html格式邮件_python使用QQ邮箱实现自动发送邮件
  5. CentOS6.x系统挂载NTFS分区的移动硬盘
  6. mongod启动问题
  7. 蓝桥杯 ALGO-74 算法训练 连接字符串
  8. 技术人真的能做一辈子技术么?
  9. 支持向量回归机(SVR)代码
  10. IT面试经验:简历上项目经验怎么写?3招教你来包装!
  11. php三级分销思路 数据库设计_三级分销,
  12. 判定两个点是否在一条直线的同一侧_帮帮学堂丨高中物理的常用方法、题型特点及应用注意点!建议收藏!...
  13. meo学习笔记1:编译是什么——程序的执行过程概述
  14. Java用户账号密码创建登录
  15. 18天精读掌握《费曼物理学讲义卷一》 第13天 2019/6/29
  16. spring RestTemplate 实例(NameValuePair)
  17. 4G七问, 读懂4G的核心问题
  18. 智慧军营日常办公管理系统软件
  19. java计算机毕业设计BS架构考研交流学习平台设计与实现MyBatis+系统+LW文档+源码+调试部署
  20. 实例演示python-docx 读写word文档 段落、图片、表格

热门文章

  1. IPv6 to IPv4过渡技术——NAT64配置实例
  2. 专业计算机怎么关机,Win10如何使用快捷键来关机?_win10专业版技巧
  3. VNC远程控制软件,VNC远程控制软件如何实现批量管理服务器
  4. 如何批量去除图片水印?批量去水印方法
  5. 最新的物联网10大深度技术,主要包括哪些技术?
  6. 运营方法 - 运营的思考方法
  7. 电路原理 的 一些基础知识
  8. android logo在线生成工具,在线生成logo
  9. 爷青回|用Python重构【超级马里奥】制作过程+解析|快收藏起来跟小伙伴一起拯救公主吧~
  10. 使用SHC命令工具加密Shell脚本