vlambda博客
学习文章列表

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

这个是粉丝投稿,很有价值,浪尖在这里给大家分享一下,也使得后面有粉丝遇到相同的问题,可以快速的解决,节省时间。
我们在将hdfs换成⾼可⽤后,我们的namede地址发⽣变更,也就是我们的fs.defaultFS发⽣变更后, 需要注意:这些修改会影响到我们的hive的正常运⾏,因为我们hive在建表的时候,其实已经改变了该表 的数据存放路径。会导致我们在提交spark脚本【执⾏spark-sql】的脚本,报错。如下图所示:⼀直显 示,读取⽼的hdfs的namenode路径。
这⾥,我们可以访问我们的hive元数据表 SDS,如下图所示:发现还是以未升级前的namenode地 址,也就是master:9000。
fs.defaultFS 变更,使spark-sql 查询hive失败原因分析
因此,我们需要修改这些存储信息,有两种⽅式:
  1. 直接修改表的信息 
  2. 利⽤hive⾃带的⼯具
metatool -updateLocation <new-location> <old-location>
在装有hive的节点执⾏命令
  
    
    
  
metatool -updateLocation hdfs://bi hdfs://master:9000/
查询元数据信息是否发⽣更改

  
    
    
  
metatool -listFSRoot
此时,hive的元数据信息已经发生变更,可以正常使用
推荐阅读: