当前位置: 首页 > 面试题库 >

Hbase内部是什么机制?

屠昌胤
2023-03-14
本文向大家介绍Hbase内部是什么机制?相关面试题,主要包含被问及Hbase内部是什么机制?时的应答技巧和注意事项,需要的朋友参考一下

解答:

在HMaster、RegionServer内部,创建了RpcServer实例,并与Client三者之间实现了Rpc调用,HBase0.95内部引入了Google-Protobuf作为中间数据组织方式,并在Protobuf提供的Rpc接口之上,实现了基于服务的Rpc实现,本文详细阐述了HBase-Rpc实现细节。

HBase的RPC Protocol

在HMaster、RegionServer内部,实现了rpc 多个protocol来完成管理和应用逻辑,具体如下protocol如下:

HMaster支持的Rpc协议: MasterMonitorProtocol,Client与Master之间的通信,Master是RpcServer端,主要实现HBase集群监控的目的。

MasterAdminProtocol,Client与Master之间的通信,Master是RpcServer端,主要实现HBase表格的管理。例如TableSchema的更改,Table-Region的迁移、合并、下线(Offline)、上线(Online)以及负载平衡,以及Table的删除、快照等相关功能。

RegionServerStatusProtoco,RegionServer与Master之间的通信,Master是RpcServer端,负责提供RegionServer向HMaster状态汇报的服务。

RegionServer支持的Rpc协议:

ClientProtocol,Client与RegionServer之间的通信,RegionServer是RpcServer端,主要实现用户的读写请求。例如get、multiGet、mutate、scan、bulkLoadHFile、执行Coprocessor等。

AdminProtocols,Client与RegionServer之间的通信,RegionServer是RpcServer端,主要实现Region、服务、文件的管理。例如storefile信息、Region的操作、WAL操作、Server的开关等。

(备注:以上提到的Client可以是用户Api、也可以是RegionServer或者HMaster)

 

 类似资料:
  • 本文向大家介绍lucence内部结构是什么?相关面试题,主要包含被问及lucence内部结构是什么?时的应答技巧和注意事项,需要的朋友参考一下 面试官:想了解你的知识面的广度和深度。 解答: Lucene是有索引和搜索的两个过程,包含索引创建,索引,搜索三个要点。可以基于这个脉络展开一些。      

  • 问题内容: 在Javadoc中,Object.hashCode()指出 在合理可行的范围内,由class定义的hashCode方法确实为不同的对象返回不同的整数。(这通常是通过将对象的 内部地址 转换为整数来实现的,但是Java™编程语言不需要此实现技术。) 这是一个常见的误解,它与内存地址有关,但没有关系,因为它可以在不通知的情况下发生更改,并且hashCode()不会更改,也不得针对对象更改。

  • 问题内容: Python的内部/嵌套类使我感到困惑。没有他们,有什么事情是无法完成的吗?如果是这样,那是什么东西? 问题答案: 引用自http://www.geekinterview.com/question_details/64739: 内部类的优点: 类的逻辑分组 :如果一个类仅对另一个类有用,那么将其嵌入该类并将两者保持在一起是合乎逻辑的。嵌套此类“帮助程序类”可使它们的程序包更加简化。 增

  • 内部构造函数的准确定义是什么?在Julia-V0.6+中,“任何可以使用签名(注意部分)调用的构造函数都是内部构造函数”是正确的吗? 正如下面的注释中所讨论的,仅限于外部的构造函数实际上是吗? 使用检查方法是否是内部/外部构造函数是否正确? Julia自动定义的默认构造函数与用户显式定义的相应构造函数有什么不同? 顺便说一句,我知道如何使用以及何时使用内部构造函数。我知道什么是内部构造函数,直到只

  • 问题内容: 我指的是这种讨论。我从未用C或C++编写任何代码。我没有任何CS背景。但是,我从事Java开发人员已有5年了,现在我决定学习更多有关CS的知识,并进行一些后续工作。 问题答案: 在执行给定的代码段时,无论何时调用标准函数,执行时间都比将其中包含的代码转储到该函数中略高。每当在函数中包含的整个代码都无法维护时,就进行转储,因为这显然会导致整个代码重复。 内联 通过让您将函数声明为 内联(

  • Spring留档指出: “如果最后两段代码实际上存在于同一个应用程序中,那么可以删除两个RowMapper匿名内部类中存在的重复,并将其提取到单个类(通常是静态内部类)中,然后根据需要由DAO方法引用。” 本例中的“最后两个片段”是使用两个具有相同逻辑的行映射器映射其调用结果的数据库方法。 我的问题是为什么内部RowMapper类需要是静态的。。。还是一定要这样?我的DAO中有一个自动连接的服务方