Me丶kang 2019-01-19 13:06 采纳率: 0%
浏览 1890

spark2.3.3跨集群读取hive2.4.2

问题描述:

旧集群为spark2.1.0,hive2.4.2。新集群为cdh的spark2.3.3+hive3.0.0。hdfs不在一起。我尝试用spark2.3.3去读旧集群的hive2.4.2。在spark-submit的时候--files添加了 hive-site.xml。 里面定义了

spark.sql.warehouse.dir=hdfs://master:9000/apps/hive/warehouse

hive.metastore.uris=thrift://master:9083

这里的master为旧集群的地址。

当我将依赖包打进要执行的jar的时候执行抛出如下异常:

 class org.apache.hadoop.hdfs.web.HftpFileSystem cannot access its superinterface org.apache.hadoop.hdfs.web.TokenAspect$TokenManagementDelegator

而当我仅执行original的jar包,
依赖包选择spark-submit --jars的方式引入时,则抛出这个异常


 org.apache.thrift.TApplicationException: Invalid method name: 'get_all_functions'
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 18:28
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是由于Spark与Hadoop之间存在版本不兼容引起的。Spark2.3.x版本与Hadoop 3.x版本之间存在一些不兼容性。你提到的hive-site.xml文件中的配置可能无法正常工作。

    解决方法:

    1. 在Spark 2.3.3中,你需要更新你的spark-hive2-connector.properties文件以支持Hive 3.x版本。

      spark.sql.warehouse.dir=/path/to/your/spark/warehouse
      hive.metastore.client.factory.class=com.google.cloud.hadoop.metastore.HiveClientFactory
      

      这个配置可以确保Hive 3.x能够正确连接到HDFS仓库。

    2. 将你的spark-hive2-connector.properties文件保存为.properties文件,并将其复制到新的Hadoop集群中。

    3. 确保你的Hadoop集群已经安装了最新的Hive 3.x版本。如果你使用的是CDH(Cloudera Distribution of Hadoop),你可以通过运行以下命令来检查:

      hdp -V | grep Hive
      

    如果以上步骤都不能解决问题,请提供更多的关于你的环境和具体的问题细节,以便于我们更好地帮助您解决问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error