ITPub博客

首页 > 大数据 > Hadoop > impala 报错 : 无法建表 遭遇 hdfs namenode state : standby 问题

impala 报错 : 无法建表 遭遇 hdfs namenode state : standby 问题

原创 Hadoop 作者:babyyellow 时间:2020-04-14 10:44:15 0 删除 编辑

搭建了一套 cdh 侧测试环境: 


刚开始并没有 启用hdfs  HA 功能.  运行一段时间,  启用HA 功能后.  


impala  报错一些问题: 



整理一下: 



  1.    impala 表   无法读取了 : 

 

            原因 :    impala 建表的时候,  外部表数据是放在 hdfs 里面的. 


               hdfs 地址  写的是 name node 的一个ip   如果这个节点刚好是 standby 状态则无法 查询数据. 


          解决方案:  

            alter table counter__parquet  set location  'hdfs://nameservice1/user/hive/warehouse/counter_parquet' ;  


            修改一下location 就可以解决问题了. 



2.    impala 建表 同样的遭遇了这个问题. 


报错如下:  



ERROR: ImpalaRuntimeException: Error making 'createTable' RPC to Hive Metastore: 

CAUSED BY: MetaException: Got exception: org.apache.hadoop.ipc.RemoteException Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error

        at org.apache.hadoop.hdfs.server.namenode.ha.StandbyState.checkOperation(StandbyState.java:88)

        at org.apache.hadoop.hdfs.server.namenode.NameNode$NameNodeHAContext.checkOperation(NameNode.java:1835)

        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkOperation(FSNamesystem.java:1515)

        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getFileInfo(FSNamesystem.java:4448)

        at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getFileInfo(NameNodeRpcServer.java:912)

        at org.apache.hadoop.hdfs.server.namenode.AuthorizationProviderProxyClientProtocol.getFileInfo(AuthorizationProviderProxyClientProtocol.java:533)

        at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getFileInfo(ClientNamenodeProtocolServerSideTranslatorPB.java:862)

        at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)

        at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:617)

        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1073)

        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2281)

        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2277)

        at java.security.AccessController.doPrivileged(Native Method)

        at javax.security.auth.Subject.doAs(Subject.java:422)

        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1924)

        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2275)



解决方案: 


       是因为  impala  在 hive  的metastore  中  设计到数据库的部分.      这里有个 地址location   也是写的  ip地址. 


           select  * from   metastore.dbs ;    


            修改 里面的   DB_LOCATION_URI  把ip :端口 修改为  nameservice  .  



   有几个部分需要修改的. 


   hive   metastore  库中    DBS 表.    跟数据库相关的.  


    表相关:     sds  表 . 


       


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-2685963/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
oracle MySQL Postgresql 专职数据库dba。 系统架构师。 mysql 官方认知dba 。 15年专职dba 经验。

注册时间:2010-12-02

  • 博文量
    300
  • 访问量
    1580286