开发者社区 问答 正文

spark版本升级2.4.8运行spark-sql命令报错 thrift服务起不来

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命令如上错误

展开
收起
ctwjwpqneaofk 2022-01-18 14:58:18 977 分享
分享
版权
举报
阿里云 AI 助理回答

这个错误信息表明在尝试使用Spark 2.4.8运行spark-sql命令时,遇到了类型不匹配的异常(scala.MatchError),具体是由于程序期望一个整数或特定类型的版本号,但实际得到了一个字符串"3.0"。这通常发生在Spark尝试解析Hive版本时,发现格式不符合预期。

针对您遇到的问题,这里有几个可能的解决步骤:

  1. 检查Hive版本兼容性:确保您的Hive版本与Spark 2.4.8兼容。虽然Spark 2.4.x一般支持Hive 2.x,但具体的版本兼容性最好参考Spark和Hive的官方文档或发行说明。

  2. 环境变量或配置问题:可能是某些环境变量或Spark/Hive配置文件中的版本信息被误设置为了字符串"3.0"而非预期的数字格式。检查如hive-site.xmlspark-defaults.conf等配置文件中关于Hive版本的配置项,确保它们正确无误。

  3. 清理旧版本依赖:升级过程中可能会有旧版本的库或者配置残留,导致冲突。尝试完全卸载旧版Spark,并重新安装新版本,确保没有遗留的配置或库文件影响到新版本的运行。

  4. 修改Scala匹配逻辑:如果上述方法都不能解决问题,且您对Spark源码有一定了解,可以考虑修改Spark源码中的匹配逻辑。根据错误提示,相关代码位于IsolatedClientLoader.scala的91行,可能需要调整那里对Hive版本的处理逻辑,使其能够正确处理字符串形式的版本号。这是一个较为高级的解决方式,需要谨慎操作并充分测试。

  5. 咨询社区:如果问题依然存在,建议在Apache Spark或Hadoop/Apache Ambari的用户社区或论坛上寻求帮助,提供详细的系统环境信息、升级步骤以及完整的错误日志,以便获得更专业的指导。

请按照上述建议逐一排查,希望能帮助您解决问题。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答