关于 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()进行编码, ...
随机推荐
- 搭建NTP时间服务器~使用NTP同步时间~构建主机间时间自动同步关系
NTP是一个时间服务器,同时它也是一个时间客户端. 我们可以使用它构建主机与主机之间的时间自动同步环境,保证所有服务器时间一致性. 常用的公共NTP时间服务器有: cn.ntp.org.cn 中国 n ...
- HMS Core AR Engine 2D图片/3D物体跟踪技术 助力打造更智能AR交互体验
AR技术已经被广泛应用于营销.教育.游戏.展览等场景.通过2D图像跟踪技术和3D物体跟踪技术,用户只需使用一台手机进行拍摄,即可实现海报.卡牌等平面物体以及文物.手办等立体物体的AR效果.尽管近年来2 ...
- js算法-计算素数暴力算法
- 【freertos】009-任务控制
目录 前言 9.1 相对延时 9.1.1 函数原型 9.1.2 函数说明 9.1.3 参考例子 9.2 绝对延时 9.2.1 函数原型 9.2.2 函数说明 9.2.3 参考例子 9.3 获取任务优先 ...
- 大数据分析VMWare虚拟机centos系统下配置网络参数
最近搞大数据方面的数据,通过网上视频学习和自己实践,有些不成文的实践就零碎的记录在此吧. 系统也可安装CentOS DVD版. 1.先进入配置文件,并查看基本情况,如下: 2.用vi编辑器打开物理网卡 ...
- CSS(九):background(背景属性)
通过CSS背景属性,可以给页面元素添加背景样式. 背景属性可以设置背景颜色.背景图片.背景平铺.背景图像固定等. background-color(背景颜色) background-color属性定义 ...
- 一文掌握软件安全必备技术 SAST
上一篇文章中,我们讨论了软件供应链的概念并了解到近年来软件供应链安全事件层出不穷.为了保障软件供应链安全,我们需要了解网络安全领域中的一些主要技术.本篇文章将介绍其中一个重要技术--SAST. 当开发 ...
- 送分题,ArrayList 的扩容机制了解吗?
1. ArrayList 了解过吗?它是啥?有啥用? 众所周知,Java 集合框架拥有两大接口 Collection 和 Map,其中,Collection 麾下三生子 List.Set 和 Queu ...
- nodeJS与MySQL实现分页数据以及倒序数据
大家在做项目时肯定会遇到列表类的数据,如果在前台一下子展示,速度肯定很慢,那么我们可以分页展示,比如说100条数据,每10条一页,在需要的时候加载一页,这样速度肯定会变快了.那么这里我给大家介绍如何在 ...
- DNS原理&ssh
作用:实现域名的解析! www.baidu.com => 14.215.177.37 域名: www.baidu.com 实际域名为: www.baidu.com. 域名的解析,是反向的. 最后 ...