zoukankan      html  css  js  c++  java
  • NameNode配置HA后及其反过程Hive路径不正确的问题解决

    在CDH5.7下,配置了NameNode的HA后,Hive无正常查询数据了,但是其他的组件HDFS , HBase ,Spark都正常的。
    Hive新建表出现如下异常:

    CREATE TABLE `x_test`(
      `client_ip` string , 
      `time` string , 
      `http_request` string , 
      `node_ip` string , 
      `unknow` string , 
      `total_time` string , 
      `dir` string)
    ;
    FAILED: Execution Error,
    return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:java.lang.IllegalArgumentException: java.net.UnknownHostException: nameservice1)

    Hive查询会出现如下异常:

    hive> select * from tv_log;
    FAILED: SemanticException Unable to determine if hdfs://nameservice1/user/hive/warehouse/tv.db/tv_log is encrypted: java.lang.IllegalArgumentException: 
    Wrong FS: hdfs://nameservice1/user/hive/warehouse/tv.db/tv_log, expected: hdfs://master:8020

    初步怀疑是Hive元数据的问题,在Hive数据库中有两张表:
    DBS  : Hive数据仓库的总路径
    SDS  : Hive每张表对应的路径

    数据库中保存了原来的hdfs的路径,修改成HA对应的别名即可。

    update DBS set DB_LOCATION_URI=REPLACE (DB_LOCATION_URI,'nameservice1','master:8020');  
    update SDS set LOCATION=REPLACE (LOCATION,'nameservice1','master:8020');  

    修改之后,则在hive中可以进行正常的数据查询与建表操作。

  • 相关阅读:
    谷歌开发调试工具
    由form表单来说说前后台数据之间的交互
    ajax的post和get请求的使用
    css各属性的理解
    Http Servlet详解及学习地址
    表单详细解释
    JS正则表达式
    jQuery-AJAX简介
    POJ1008 Maya Calendar
    关于Code Blocks无编译器版本及VC6.0插入、打开报错
  • 原文地址:https://www.cnblogs.com/lenmom/p/10517509.html
Copyright © 2011-2022 走看看