Exception in thread "main" scala.MatchError: 3.0 (of class java.lang.String)
at org.apache.spark.sql.hive.client.IsolatedClientLoader$.hiveVersion(IsolatedClientLoader.scala:91)
at org.apache.spark.sql.hive.HiveUtils$.newClientForMetadata(HiveUtils.scala:307)
at org.apache.spark.sql.hive.HiveUtils$.newClientForMetadata(HiveUtils.scala:294)
at org.apache.spark.sql.hive.HiveExternalCatalog.client$lzycompute(HiveExternalCatalog.scala:66)
at org.apache.spark.sql.hive.HiveExternalCatalog.client(HiveExternalCatalog.scala:65)
at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.apply$mcZ$sp(HiveExternalCatalog.scala:215)
at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.apply(HiveExternalCatalog.scala:215)
at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.apply(HiveExternalCatalog.scala:215)
at org.apache.spark.sql.hive.HiveExternalCatalog.withClient(HiveExternalCatalog.scala:97)
at org.apache.spark.sql.hive.HiveExternalCatalog.databaseExists(HiveExternalCatalog.scala:214)
at org.apache.spark.sql.internal.SharedState.externalCatalog$lzycompute(SharedState.scala:116)
at org.apache.spark.sql.internal.SharedState.externalCatalog(SharedState.scala:104)
at org.apache.spark.sql.hive.thriftserver.SparkSQLEnv$.init(SparkSQLEnv.scala:58)
at org.apache.spark.sql.hive.thriftserver.HiveThriftServer2$.main(HiveThriftServer2.scala:79)
at org.apache.spark.sql.hive.thriftserver.HiveThriftServer2.main(HiveThriftServer2.scala)
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.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:855)
at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:930)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:939)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
22/01/18 14:52:33 INFO SparkContext: Invoking stop() from shutdown hook
22/01/18 14:52:33 INFO AbstractConnector: Stopped Spark@40620d8e{HTTP/1.1, (http/1.1)}{0.0.0.0:4040}
ambari2.7.4原spark为2.3.0 ,官网下载并an'zhu升级安装2.4.8运行spark-sql命令如上错误
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个错误信息表明在尝试使用Spark 2.4.8运行spark-sql
命令时,遇到了类型不匹配的异常(scala.MatchError
),具体是由于程序期望一个整数或特定类型的版本号,但实际得到了一个字符串"3.0"。这通常发生在Spark尝试解析Hive版本时,发现格式不符合预期。
针对您遇到的问题,这里有几个可能的解决步骤:
检查Hive版本兼容性:确保您的Hive版本与Spark 2.4.8兼容。虽然Spark 2.4.x一般支持Hive 2.x,但具体的版本兼容性最好参考Spark和Hive的官方文档或发行说明。
环境变量或配置问题:可能是某些环境变量或Spark/Hive配置文件中的版本信息被误设置为了字符串"3.0"而非预期的数字格式。检查如hive-site.xml
、spark-defaults.conf
等配置文件中关于Hive版本的配置项,确保它们正确无误。
清理旧版本依赖:升级过程中可能会有旧版本的库或者配置残留,导致冲突。尝试完全卸载旧版Spark,并重新安装新版本,确保没有遗留的配置或库文件影响到新版本的运行。
修改Scala匹配逻辑:如果上述方法都不能解决问题,且您对Spark源码有一定了解,可以考虑修改Spark源码中的匹配逻辑。根据错误提示,相关代码位于IsolatedClientLoader.scala
的91行,可能需要调整那里对Hive版本的处理逻辑,使其能够正确处理字符串形式的版本号。这是一个较为高级的解决方式,需要谨慎操作并充分测试。
咨询社区:如果问题依然存在,建议在Apache Spark或Hadoop/Apache Ambari的用户社区或论坛上寻求帮助,提供详细的系统环境信息、升级步骤以及完整的错误日志,以便获得更专业的指导。
请按照上述建议逐一排查,希望能帮助您解决问题。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。