首页 > 解决方案 > 升级到 cdh 6.1 时的 Spark 会话创建问题

问题描述

目前我的 spark 应用程序在 CDH.5.14 中运行没有问题。

 Caused by: java.lang.IllegalArgumentException: Unrecognized Hadoop major version number: 3.0.0-cdh6.1.0

升级到 6.1.0 后,火花会话创建问题。

Caused by: java.lang.ExceptionInInitializerError
        at org.apache.hadoop.hive.conf.HiveConf.<clinit>(HiveConf.java:105)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.apache.spark.util.Utils$.classForName(Utils.scala:238)
        at org.apache.spark.sql.SparkSession$.hiveClassesArePresent(SparkSession.scala:1117)
        at org.apache.spark.sql.SparkSession$Builder.enableHiveSupport(SparkSession.scala:866)
        ... 7 more
Caused by: java.lang.IllegalArgumentException: Unrecognized Hadoop major version number: 3.0.0-cdh6.1.0
        at org.apache.hadoop.hive.shims.ShimLoader.getMajorVersion(ShimLoader.java:174)
        at org.apache.hadoop.hive.shims.ShimLoader.loadShims(ShimLoader.java:139)
        at org.apache.hadoop.hive.shims.ShimLoader.getHadoopShims(ShimLoader.java:100)
        at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<clinit>(HiveConf.java:368)
        ... 15 more

标签: apache-sparkhadoophivecloudera-cdh

解决方案


我认为这是由于蜂巢问题。由于您的 hive jars 版本与 Hadoop 3.0 不兼容。

我也使用 Cloudera-Manager,我解决这个问题的方法是用CDH 版本替换相关的 jar ,比如'xxx-cdh{CDH-version}'.

以 pom.xml 为例:

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-hive_2.11</artifactId>
    <version>2.4.0-cdh6.2.0</version>
    <scope>runtime</scope>
</dependency>

推荐阅读