Hbase租约问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hbase租约问题相关的知识,希望对你有一定的参考价值。
参考技术A regionserver.HRegionServer: Shutdown / close of WAL failed: org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No lease on /hbase/WALs/slave1,16020,1544083429543/slave1%2C16020%2C1544083429543.1544101931669 (inode 4894617): File does not exist. Holder DFSClient_NONMAPREDUCE_1529009653_1 does not have any open files.at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:3410)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalDatanode(FSNamesystem.java:3337)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getAdditionalDatanode(NameNodeRpcServer.java:759)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getAdditionalDatanode(ClientNamenodeProtocolServerSideTranslatorPB.java:516)
at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:982)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2217)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2213)
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:1754)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2213)
如何从任意客户端查找 DHCP 租约信息?
【中文标题】如何从任意客户端查找 DHCP 租约信息?【英文标题】:How to find DHCP lease information from an arbitrary client? 【发布时间】:2016-04-21 17:22:57 【问题描述】:我正在编写 Win32 API (C++) 代码来查询网络以获取某些信息。其中一条信息是 DHCP 租用结束时间。我能够从GetIpNetTable
(和/或GetIpNetTable2
)函数中获得我需要的大部分信息;但是在谷歌、MSDN、*** 的大量搜索之后,我找不到从任意客户端获取所有租约信息的方法(此代码不在服务器上运行)。我熟悉GetAdaptersInfo
函数,但它只检索当前机器的信息,而不是网络上的所有机器。有谁知道如何从任意客户端映射出网络的所有 DHCP 租用信息?
【问题讨论】:
一台机器无法检索另一台机器的租约信息。只有 DHCP 服务器拥有该信息,并且每台机器只知道自己的租约。 DHCP 协议中没有任何内容可以查询有关另一台机器的租约信息。您必须在每台机器上运行自己的软件,然后连接到该软件并让它向您报告其本地机器的租约。 【参考方案1】:您可以通过实施只读 DHCP 服务器来做到这一点。客户端将发送 DHCPDISCOVER 消息作为您可以接收的广播(在 UDP 端口 67 上)。响应的 DHCP 服务器将广播回 DHCPOFFER,包括客户端的 MAC 地址、相关 IP 信息和租用时间。如果客户端接受这些设置,它现在将广播 DHCPREQUEST 消息,以便您的只读服务器知道客户端将(尝试)使用 DHCPOFFER 信息。您看不到来自服务器的 DHPCACK 确认,但如果客户端出现故障,它将发送一个新的 DHCPDISCOVER。通过这种方式,您可以构建一个 DHCP 信息表,包括本地客户端的租用时间。
【讨论】:
以上是关于Hbase租约问题的主要内容,如果未能解决你的问题,请参考以下文章