Hive--Hive元数据HDFS路径异常

发现问题

  • 在hue上面跑hive语句时,出现如下异常:
    1
    2
    3
    4
    5
    Error executing statement:
    org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED:
    SemanticException Unable to determine if hdfs://fetch-loadTest-20:8020/user/hive/warehouse/feature.db/t_usercode_email_split is encrypted:
    java.lang.IllegalArgumentException:
    Wrong FS: hdfs://fetch-loadTest-20:8020/user/hive/warehouse/feature.db/t_usercode_email_split, expected: hdfs://nameservice1

分析

  1. 从日志上看是说,hdfs的路劲有问题,指定说可能应该是hdfs://nameservice1
  2. hive中日志也是报同样错误
  3. 昨天好像修改过HDFS的NameNode为HA,问题大概确定,需要去修改Hive FSRoot

解决

  • 有两个方法,第一个通过bin/metatool修改第二个方法去mysql中修改hive的元数据
  1. 通过bin/metatool修改
    bin/metatool -updateLocation <new-loc> <old-loc>

    居然没效果,查了资料可以通过下面的方案去解决
    https://discuss.pivotal.io/hc/en-us/articles/222679027-Failed-initializing-database-with-Access-denied-when-accessing-the-Hive-metatool-

  2. 通过修改MySQL的元数据

    hive的元数据在哪儿?即mysql中,怎么修改?还不确认是那几张表,然后通过一篇文章确认为DBS、SDS两张表
    查看表信息

    修改

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器