栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

cdp搭建测试spark功能 遇到问题

cdp搭建测试spark功能 遇到问题

公司集群由cdh换成了cdp。

用spark代码测试 读取hive内的ods数据经过map等算子转化,然后存取到另外一个dw表里。代码都在cdh里ok的,已经发布生产。

备注cdh, spark版本为2.4.0-cdh6.3.2 hive版本为 2.1.1-cdh6.3.2

cdp spark版本为2.4.7.7.1.7.0-551 hive版本 3.1.3000.7.1.7.0-551

本着简单的方式只修改了pom文件,然后打包放到linux去跑数。

出现如下错误

org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHivemetaStoreClient

这还由啥说的复制 Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHivemetaStoreClient去百度下。

发现千篇一律的metastore不能启动没有启动 通过 hive metastore xxxxx启动了就好了。

然而我自己通过beeline已经能连接到了,所以上述问题肯定不存在

那么我报一个别人都不会报的错? 

首先看下这个报错是什么?不能实例化一个连接hivemetaStore的session。

1.有可能metastore没开启,那么不能实例化。 排除了

2.我们代码的问题,实例化不行。

那么研究下2...继续看报错。

Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.hive.shims.ShimLoader.getHadoopThriftAuthBridge()Lorg/apache/hadoop/hive/thrift/HadoopThriftAuthBridge;

看到了这句话? 说实话看不懂这个shim是啥啊。但是不妨碍我在idea里找到这个

 说实话我也看不出,毕竟设计到源码了。

但是我突然想到个问题,报的错是NoSuchMethodError,这是什么意思呢?

 突然间恍然大悟。仔细看下版本 hive-exec1.2.1

 

 额外说句 这个jar包 我之前一篇文章说过 关于acid的表,设计到了这个jar,所以我就知道这个jar不对,服务器上有这个jar

 然后我打包又打了一个,两个jar都有刚刚上述的shims类和方法,这不就报错了么?

在pom文件里 没有发现直接引用该jar。。。通过

 

 找到是 spark-hive包下的,所以排除就好了

 下面的metastore也要排除 否则会报同样的错,就是后面的类有点不一样原因同上

 附上成功的代码

 

 

 如果帮到你,点个赞是对我的鼓励,谢谢

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/758621.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号