fs.defaultFS 变更,使spark-sql 查询hive失败原因分析

2021-03-05 14:42:18 浏览数 (1)

这个是粉丝投稿,很有价值,浪尖在这里给大家分享一下,也使得后面有粉丝遇到相同的问题,可以快速的解决,节省时间。

我们在将hdfs换成⾼可⽤后,我们的namede地址发⽣变更,也就是我们的fs.defaultFS发⽣变更后, 需要注意:这些修改会影响到我们的hive的正常运⾏,因为我们hive在建表的时候,其实已经改变了该表 的数据存放路径。会导致我们在提交spark脚本【执⾏spark-sql】的脚本,报错。如下图所示:⼀直显 示,读取⽼的hdfs的namenode路径。

这⾥,我们可以访问我们的hive元数据表 SDS,如下图所示:发现还是以未升级前的namenode地 址,也就是master:9000。

因此,我们需要修改这些存储信息,有两种⽅式:

  1. 直接修改表的信息
  2. 利⽤hive⾃带的⼯具
代码语言:javascript复制
metatool -updateLocation <new-location> <old-location>

在装有hive的节点执⾏命令

代码语言:javascript复制
metatool -updateLocation hdfs://bi hdfs://master:9000/

查询元数据信息是否发⽣更改

代码语言:javascript复制
metatool -listFSRoot

此时,hive的元数据信息已经发生变更,可以正常使用

0 人点赞