关于 CDH 环境中部署 Dolphinscheduler 出现 hive-jdbc 包冲突的解决办法
目前社区小伙伴经常反映在 cdh 环境中部署 Dolphinscheduler 出现 hive 包冲突的问题,报错日志信息如下:
[WARN] 2020-04-29 09:55:30.815 org.eclipse.jetty.server.HttpChannel:[590] - /dolphinscheduler/datasources/connect
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/apache/hadoop/hive/thrift/TFilterTransport
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1053)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
Caused by: java.lang.NoClassDefFoundError: org/apache/hadoop/hive/thrift/TFilterTransport
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.thrift.TFilterTransport
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
这是由于官方包中的 hive-jdbc 与 cdh 环境中的版本不一致导致的,下列两种方式可以解决该问题。
1. 通过源码编译部署
如果您通过源码编译进行部署,则可以通过修改 pom 文件的方式替换 hive-jdbc 包为cdh 版本。
修改 pom.xml 文件
配置 cloudera 仓库信息
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
修改 hive.jdbc.version
<!-- 这⾥以cdh5.15.1和cdh6.3.1为例, 可按实际情况修改为对应版本。 -->
<!-- cdh5.15.1 -->
<hive.jdbc.version>1.1.0-cdh5.15.1</hive.jdbc.version>
<!-- cdh6.3.1 -->
<hive.jdbc.version>2.1.1-cdh6.3.1</hive.jdbc.version>
增加 hive-shims
<!-- 具体版本按实际情况指定 -->
<hive.shims.version>1.1.0-cdh5.15.1</hive.shims.version> <dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-shims</artifactId>
<version>${hive.shims.version}</version>
</dependency>
修改后重新打包编译:
mvn -U clean package -Prelease -Dmaven.test.skip=true
打包完成后可以在lib中看到如下 hive-jdbc 相关 jar 包,说明打包完成, 可以进行部署。
hive-classification-1.1.0-cdh5.15.1.jar
hive-common-1.1.0-cdh5.15.1.jar
hive-jdbc-1.1.0-cdh5.15.1.jar
hive-metastore-1.1.0-cdh5.15.1.jar
hive-serde-1.1.0-cdh5.15.1.jar
hive-service-1.1.0-cdh5.15.1.jar
hive-shims-0.23-1.1.0-cdh5.16.1.jar
hive-shims-1.1.0-cdh5.16.1.jar
hive-shims-common-1.1.0-cdh5.16.1.jar
hive-shims-scheduler-1.1.0-cdh5.16.1.jar
由于 cloudera 仓库对网络有一定要求, 如果打包时下载jar包报错,可以先将官网的包直接部署,并参照已使用官方包部署进行处理。
2. 已使用官方包部署
如果您先前已使用官方包进行部署,那么可在 cdh 集群的任意节点中, 找到 cdh 版本的 hive包。
以我的环境为例,hive包在下列路径中:
/opt/cloudera/parcels/CDH/jars
同样的,只需要在这个路径中找到hive-jdbc相关的包, 然后替换掉Dolphinscheduler lib 中的 hive 包即可(需要移除原先的 hive-jdbc 相关包)。
以下为cdh6所需要的包:
hive-common-2.1.1-cdh6.3.1.jar
hive-jdbc-2.1.1-cdh6.3.1.jar
hive-metastore-2.1.1-cdh6.3.1.jar
hive-serde-2.1.1-cdh6.3.1.jar
hive-service-2.1.1-cdh6.3.1.jar
hive-service-rpc-2.1.1-cdh6.3.1.jar
hive-shims-0.23-2.1.1-cdh6.3.1.jar
hive-shims-2.1.1-cdh6.3.1.jar
hive-shims-common-2.1.1-cdh6.3.1.jar
hive-shims-scheduler-2.1.1-cdh6.3.1.jar
替换完成后,重启 Dolphinscheduler 即可。
关于 CDH 环境中部署 Dolphinscheduler 出现 hive-jdbc 包冲突的解决办法的更多相关文章
- 关于Vue.cli 脚手架环境中引入Bootstrap时,table表格样式缺失的解决办法
Vue+bootstrap不能正常使用table的样式 环境:下载官网的本地bootstrap包,然后在vue 的index.html引入bootstrap的css和js环境 问题描述:1. vue里 ...
- 在maven 中部署SSM项目找不 Spring ContextLoaderListener 的解决办法
1.项目使用技术:maven的项目使用了Spring MVC+Spring +Mybatis+Tomcat搭建一个项目. 2.报错信息: Error configuring application l ...
- weblogic下部署应用时slf4j与logbak冲突的解决办法
今天在weblogic上部署一个使用logback的应用时,报错如下: java.lang.IllegalArgumentException: Invalid 'logbackConfigLocati ...
- IDEA中Tomcat找不到war包导出按钮解决办法
解决办法 (1) 打开Idea,点击File,然后点击Project Structure-,进入项目结构 (2) 具体步骤看下图: (3) 具体步骤如下图: (4) 具体步骤如下图: (5) 问题解决 ...
- 如何在多机架(rack)配置环境中部署cassandra节点
cassandra节点上数据的分布和存储是由系统自动完成的.除了我们要设计好partition key之外,在多机架(rack)配置环境中部署cassandra节点,也需要考虑cassandra分布数 ...
- es6 Object.assign ECMAScript 6 笔记(六) ECMAScript 6 笔记(一) react入门——慕课网笔记 jquery中动态新增的元素节点无法触发事件解决办法 响应式图像 弹窗细节 微信浏览器——返回操作 Float 的那些事 Flex布局 HTML5 data-* 自定义属性 参数传递的四种形式
es6 Object.assign 目录 一.基本用法 二.用途 1. 为对象添加属性 2. 为对象添加方法 3. 克隆对象 4. 合并多个对象 5. 为属性指定默认值 三.浏览器支持 ES6 O ...
- SpringCloud+Feign环境下文件上传与form-data同时存在的解决办法(2)
书接上文. 上文中描述了如何在 SpringCloud+Feign环境下上传文件与form-data同时存在的解决办法,实践证明基本可行,但却会引入其他问题. 主要导致的后果是: 1. 无法与普通Fe ...
- Eclipse中js文件修改后浏览器不能及时更新的解决办法
项目中js文件修改后浏览器不能及时更新的解决办法 转载:http://www.codeweblog.com/%E9%A1%B9%E7%9B%AE%E4%B8%ADjs%E6%96%87%E4%BB%B ...
- .NET在IE9中页面间URL传递中文变成乱码的解决办法
在.Net的项目中,鼠标点击查询按钮,转到查询页面,但URL中包含中文时,传到服务器端后,中文变成了乱码(只有IE9出现该问题). 尝试使用Server.UrlEncode()进行编码, ...
随机推荐
- 关于『HTML』:第一弹
关于『HTML』:第一弹 建议缩放90%食用 根据C2024XSC212童鞋的提问, 我准备写一稿关于『HTML』基础的帖 But! 当我看到了C2024XSC130的 "关于『HTML5』 ...
- select into 与 insert into 的区别
1.select * into table_A from table_B table_A是个新创建表,table_B是个已经存在的表. 2.insert into table_A from tabl ...
- 高通(QCOM)sensor bring up
高通7150平台 1.添加驱动文件 2.添加编译 3.配置json文件 4.高通默认配置 5.部分sensor外挂电源 6.遇到的问题 1.添加驱动文件 路径:adsp_proc/ssc/sensor ...
- c++ 乘法逆元
主要参考:OI-WIKI 为什么要逆元 当一个题目让你求方案数时常要取余,虽然 \((a+b)\% p=(a\% p+b\% p)\%p\) \((a-b)\% p=(a\% p-b\% p)\%p\ ...
- CSS 技术
浏览本篇文章前可以先看之前的前端网页介绍和html常用标签以便更容易理解 本文目录: 目录 CSS 技术介绍 CSS 语法规则 CSS 和 HTML 的结合方式 第一种: 第二种 第三种 CSS 选择 ...
- dotnet 在 linux 上构建问题(RID 的问题)
个人理解 一方面 /etc/os-release 中定义的的 ID VERSION_ID 是会与源代码中定义 RID 的相对应,如果不对应,就会报错 The specified RuntimeIden ...
- ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
ClickHouse核心架构设计是怎么样的?ClickHouse核心架构模块分为两个部分:ClickHouse执行过程架构和ClickHouse数据存储架构,下面分别详细介绍. ClickHouse执 ...
- 全新升级的AOP框架Dora.Interception[4]: 基于Lambda表达式的拦截器注册方式
如果拦截器应用的目标类型是由自己定义的,Dora.Interception(github地址,觉得不错不妨给一颗星)可以在其类型或成员上标注InterceptorAttribute特性来应用对应的拦截 ...
- 嵌入式中 动态阿拉伯语字符串 转换 LCD显示字符串【感谢建国雄心】
本文参考CSDBN:建国雄心 的博客,这里找不到该帖子,放一个类似的仅供参考https://blog.csdn.net/qiaojiongzeng6321/article/details/748572 ...
- python做小游戏——做个马里奥分分钟解决
一.前言 嗨喽,大家好呀!这里是小熊猫 在你的童年记忆里,是否有一个蹦跳.顶蘑菇的小人已经被遗忘? 马里奥是靠吃蘑菇成长,闻名世界的超级巨星.特征是大鼻子.头戴帽子.身穿背带工作服.还留着胡子.帽子加 ...