本篇内容介绍了“HBase协处理器类型有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
概述:
在HBase中,使用Get或Scan获取数据,而在RDBMS中使用SQL查询。为了只获取相关数据,您使用HBase Filter过滤它,而在RDBMS中使用WHERE谓词。
获取数据后,对其执行计算。这种范型适用于只有几千行和几列的“小数据”。然而,当扩展到数十亿行和数百万列时,跨网络移动大量数据将在网络层造成瓶颈,客户端需要足够强大并有足够的内存来处理大量数据和计算。此外,客户端代码可能会变得又大又复杂。
在这种情况下,使用协处理器是有意义的。您可以将业务计算代码放入运行在与数据相同位置的RegionServer上的协处理器中,并将结果返回给客户机。
这只是使用协处理器可以带来好处的一个场景。下面是一些类比,可能有助于解释协处理器的一些好处。
协处理器类比:
1.观察者协处理器类似于RDBMS中的触发器,因为它在特定事件(例如Get或Put)发生之前或之后执行代码。端点协处理器类似于RDBMS中的存储过程,因为它允许您在RegionServer本身而不是在客户机上对数据执行自定义计算。
2.如果您熟悉面向方面编程(AOP),那么可以将协处理器视为应用通知,即在将请求传递到最终目的地(甚至更改目的地)之前拦截请求,然后运行一些定制代码。
协处理器实现概述
1.你的类应该实现其中一个协处理器接口—协处理器、RegionObserver、CoprocessorService。
2.使用HBase Shell静态地(从配置中)或动态地加载协处理器。
3.从客户端代码调用协处理器。HBase对协处理器的处理是透明的。
协处理器的类型:
1.Observer Coprocessors(观察者协处理器)
观察者协处理器在特定事件发生之前或之后被触发。发生在事件之前的观察者使用以前缀开头的方法,如prePut。仅在以post前缀(如postPut)开头的事件覆盖方法之后发生的观察者。
观察者协处理器使用场景:
a.安全:
在执行Get或Put操作之前,可以使用preGet或prePut方法检查权限。
b.参照完成性:
HBase不直接支持RDBMS的引用完整性概念(也称为外键)。您可以使用协处理器来实现这种完整性。例如,如果您有一个业务规则,即对users表的每次插入都必须在user_daily_考勤表中跟随相应的条目,那么您可以实现一个协处理器来使用user上的prePut方法将一条记录插入user_daily_考勤中。
c.二级索引
您可以使用协处理器来维护二级索引。
a.RegionObserver :一个RegionObserver协处理器允许您观察某个区域上的事件,比如Get和Put操作。
b.RegionServerObserver:
RegionServerObserver允许您观察与RegionServer操作相关的事件,例如启动、停止或执行合并、提交或回滚。
c.MasterObserver:
MasterObserver允许您观察与HBase主节点相关的事件,比如表创建、删除或模式修改。
d.WalObserver
WalObserver允许您观察与写提前日志相关的事件(WAL)。
2.Endpoint Coprocessor(端点协处理器)
Endpoint Coprocessor允许您在数据的位置执行计算。看协处理器的类比。例如,需要计算跨越数百个区域的整个表的运行平均值或求和。
与以透明方式运行代码的Observer Coprocessor不同,必须使用表或HTable中可用的CoprocessorService()方法显式地调用Endpoint Coprocessor。
Endpoint Coprocessor不应该使用HBase内部机制,而应该只使用公共api;理想情况下,Endpoint Coprocessor应该只依赖于接口和数据结构。这并不总是可能的,但是要注意这样做会使端点变得脆弱,容易随着HBase内部的发展而崩溃。HBase内部api被标注为私有的或演化的,在删除之前不需要遵守语义版本规则或一般的java弃用规则。
“HBase协处理器类型有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。