Hive 因 java.lang.InknownClassChangeError 崩溃

2023-12-31

运行“select * from employee”时,针对 Hadoop 3.2.0 运行 hive 3.1.1 会崩溃

java.lang.IncompatibleClassChangeError: Class com.google.common.collect.ImmutableSortedMap does not implement the requested interface java.util.NavigableMap

命令如show tables一切都运行良好,并且数据也可以从 CLI 正常加载。

检查了各种其他命令,例如数据加载等。使用 MySQL 作为元存储MySQL-connector-java-5.1.47.jar。唯一的其他观察是有时我得到

WARN DataNucleus.MetaData: Metadata has jdbc-type of null yet this is not valid. Ignored

其他人似乎也明白这一点,并且似乎不会影响我在这里。 有人也看到过这个吗?帮助非常感谢...

2019-04-02 16:24:41,643 INFO metastore.HiveMetaStore: 0: Done cleaning up thread local RawStore
2019-04-02 16:24:41,645 INFO HiveMetaStore.audit: ugi=fdai0145  ip=unknown-ip-addr      cmd=Done cleaning up thread local RawStore
Exception in thread "main" java.lang.IncompatibleClassChangeError: Class com.google.common.collect.ImmutableSortedMap does not implement the requested interface java.util.NavigableMap
        at org.apache.calcite.schema.Schemas.gatherLattices(Schemas.java:498)
        at org.apache.calcite.schema.Schemas.getLatticeEntries(Schemas.java:492)
        at org.apache.calcite.jdbc.CalciteConnectionImpl.init(CalciteConnectionImpl.java:153)
        at org.apache.calcite.jdbc.Driver$1.onConnectionInit(Driver.java:109)
        at org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:139)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:208)
        at org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:150)
        at org.apache.calcite.tools.Frameworks.withPlanner(Frameworks.java:111)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner.logicalPlan(CalcitePlanner.java:1414)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner.getOptimizedAST(CalcitePlanner.java:1430)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:450)
        at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:12161)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:330)
        at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:285)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:659)
        at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1826)
        at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:1773)
        at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:1768)
        at org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:126)
        at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:214)
        at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:239)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:188)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:402)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:821)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:759)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)
        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.apache.hadoop.util.RunJar.run(RunJar.java:323)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:236).

也许这是一个迟到的答案,但我确实遇到了同样的问题。就我而言,我发现hive-execMaven 工件的 jar 文件正在影响 Google 集合框架。现在,由于我已经看到其他 Hadoop/Hive 工件也使用 Google Guava(如果我没记错的话,版本 11),方解石很有可能会找到错误的类定义ImmutableSortedMap(来自番石榴 11)。

对我来说,从我的代码使用的 Hadoop/Hive 工件中排除番石榴,使得 calcite 从 Google 集合中找到正确的类版本。

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-minicluster</artifactId>
    <version>${hadoop.version}</version>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-exec</artifactId>
    <version>${hive.version}</version>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>${hive.version}</version>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </exclusion>
    </exclusions>
</dependency>

这可能是一个应该向 Hive 项目报告的问题,因为此类类路径冲突错误很难诊断。内部着色工件应具有项目自己的包前缀,以指示相关外部代码的显式着色。

那好吧。希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive 因 java.lang.InknownClassChangeError 崩溃 的相关文章

随机推荐

  • 错误:“x”未命名类型

    当我尝试声明类 Game 的实例时 我收到 main cpp 的编译错误 错误 游戏 未命名类型 如果可能并不重要 但我正在使用代码块 Game cpp中的相关代码 include include main h class Game pri
  • Chrome 扩展程序弹出窗口按条件显示

    我想通过点击显示弹出窗口 但前提是条件为假 单击扩展图标后台 js 后 搜索具有当前名称的选项卡 如果选项卡找到后台js继续工作 如果没有找到 我想显示带有说明的弹出窗口 无法理解如何在这种情况下仅显示弹出窗口 我可以通过 browserA
  • 正则表达式检查字符串中的连续 3 位数字

    我想要java中的正则表达式来检查字符串是否包含连续的3位数字 但问题是我的字符串可能包含 unicode 字符 如果字符串包含 unicode 字符 则应跳过 unicode 字符 跳过 AND 之后的 4 并进行检查 一些例子是 Nee
  • 如何仅使用 JavaScript 获取下一个元素?

    假设我们有这个标记 h1 some project mdash javascript html tests h1 hr p testing 123 p 我知道有 prependChild appendChild innerHTML等属性和方
  • 在 Rails 资源管道中使用字体

    我在 Scss 文件中配置了一些字体 如下所示 font face font family Icomoon src asset url icoMoon eot iefix font format embedded opentype asse
  • ffmpeg 转换 x264 [错误]:大小为 769152 的 malloc 失败

    我正在尝试将从 Android 智能手表 mp4 格式 录制的视频转换为可在所有浏览器上播放的格式 mp4 从智能手表录制的视频未在浏览器中播放 所以 我使用 ffmpeg 将其转换为可播放的 mp4 格式 但有时它会显示错误x264 er
  • keras中的加权mse自定义损失函数

    我正在处理时间序列数据 输出未来 60 天的预测数据 我目前使用均方误差作为我的损失函数 结果很糟糕 我想实现一个加权均方误差 使得早期的输出比后来的输出重要得多 加权均方根公式 因此 我需要某种方法来使用索引迭代张量的元素 因为我需要同时
  • Angular4 的 Wysiwyg 编辑器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道与 Angular 4 兼容的免费 Wysiwyg 编辑器吗 Froala 似乎不错 但不幸的是
  • 观察事件以隐藏闪亮的操作按钮

    在我的 Shiny 应用程序中 我试图包含显示或隐藏操作按钮的逻辑 具体取决于 ui R 中是否定义了另一个用户输入 由于应用程序中存在其他一些复杂性 我无法使用 uiOutput renderUI 功能来执行此操作 我的方法是为输入创建一
  • 未能延迟初始化集合

    我正在为我的数据库开发一个安静的网络服务 我正在使用 jpa 从数据库和 spring 中检索数据以用于架构 我已经使用基本的 dao 查询 findById save 测试了该架构 并且它运行得很好 然后在 dao 实现中我添加了一个新方
  • Jquery 拖放 - 单击事件在拖放时注册

    我正在使用 jquery 拖放 可拖动元素是一个 div 其中有两个左右浮动的嵌套 div 放置时 左侧嵌套的 div 包含文本 将启用单击事件 element left click function e window open ui dr
  • 为什么在 Cassandra 启动时仍然出现 JNA 错误,即使 jna.jar 和 platform.jar 都在 lib 目录中?

    我已下载 Jna jar 和 Platform jar 并将其复制到 usr cassandra apache cassandra 1 0 7 lib 文件夹 但在 Cassandra 启动时仍然看到以下错误 我是否遗漏了什么 On cas
  • 无法在firebase控制台中显示已部署的云功能

    我尝试将云功能部署到 firebase 但我很困惑 在命令提示符和 firebase console gt project gt functions 之间 因为在命令提示符下显示部署成功但是在 功能选项卡没有任何功能 我按照以下步骤进行部署
  • 定期付款的快速结帐不适用于德国付款人

    我目前正在使用 ExpressCheckout 和 RecurringPayments 开发 PayPal 付款交易 测试软件后 德国 买家登录 paypal 确认付款后 我收到以下消息 Zurzeit k nnen wir Ihre An
  • Swift:检查字符串是否包含字符? [复制]

    这个问题在这里已经有答案了 如何检查特定的string String含有一定的character Character string contains character Example let string Hello World let
  • Django Rest Framework,ajax POST 有效,但 PATCH 抛出 CSRF 失败:CSRF 令牌丢失或不正确

    我正在将我的项目移植到 Django Rest Framework 来为我的项目制作一个合适的 REST Api 我认为这对设计 API 并使其健壮有很大帮助 但我遇到了一个问题 我有一个入门模型和关联的ListCreateAPIView
  • 垂直求和直到 Google 表格上的空单元格

    This is the scenario I need to get the sum of the values until it reaches a blank cell After that it should start again
  • 多维数组初始化似乎对空格敏感

    我注意到这两个声明之间的区别 其中只有逗号的位置发生了变化 a a b c d b a b c d 在这种情况下 a length评估结果为 2 且 b length计算结果为 3 第一个子数组 b已被压扁 这是一个功能吗 在哪里可以找到它
  • 如何将键值对插入到 python 列表中?

    a 1 b 2 我想将 a b 插入到空白的 python 列表中 list as a b 正确的语法是什么 结果是 a b c d 这只是为了以后我可以按值从最小到最大对列表进行排序 如何将键值对插入到 python 列表中
  • Hive 因 java.lang.InknownClassChangeError 崩溃

    运行 select from employee 时 针对 Hadoop 3 2 0 运行 hive 3 1 1 会崩溃 java lang IncompatibleClassChangeError Class com google comm