当前位置:主页>科 研>学术交流>

直击Hadoop中国云计算大会:HBase安全性

一年一度的Hadoop中国2011云计算大会,作为Hadoop in China社区的一次年度技术盛会,于12月2日至3日在北京成功举行。大会的亮点之一就是邀请了多位Apache软件基金会的专家,例如Apache软件基金会主席兼Apache Hadoop项目负责人Doug Cutting先生等。大会的第二天,记者参加的“Hadoop生态系统”分会场报告环节。Trend Micro的专家兼Apache Incubator Flume的提交者,从非结构化数据库的安全性角度作了一场题为“HBase Coprocessors and Security”的主题报告。

众所周知,大数据时代为类似HBase等非结构化数据库提供了诸多机会。HBase凭借其在海量数据的良好扩展性和高效的读写能力,吸引了更多公司的重视。然而,在众多机遇的背后,HBase也面临着很多挑战,比如构建和运维HBase集群是一个非常有挑战性的工作。而如何保证HBase的安全性自然就成了一个绕不开的话题,实际上,NoSQL存在的产品安全性不高的问题一直成为各路反对者的诟病。现在部署在云计算公有云的HBase集群也在日益增多,试想一下,如果没有访问控制,存储其中的数据可以被随意访问甚至执行删改等误操作,会造成很多潜在的风险,对企业而言,也是无法接受的。但是,如果所有事情都由管理员处理,沟通的代价就会很高,而且管理员不得不处理一些Application相关的工作,导致管理低效。因此,HBase的访问控制,就成为了一个很重要的需求。这次围绕HBase 安全性的演讲,让我们有理由相信HBase提供了足够的安全支持。

首先谈到的是HBase的新版本特性。作为最新版本,HBase 0.92马上要发布RC版了, 0.92支持最新的Hadoop版本0.20.205,该版本对于HBase有了很大的改进。具体表现在:Distributed WAL splitting策略,Coprocessor框架等等。

Distributed WAL splitting

所谓WAL(write-ahead logging)策略指的是Region servers每次将内存数据更新到磁盘之前都需要先写到一个log里,只有当写入成功后才通知客户端该操作成功了。之后,Region servers服务端就可以根据需要在内存中对数据进行随意批处理或者是聚合。WAL策略的工作流程如下:客户端发起数据修改动作,比如产生一个put(),delete()及increment()调用。每个修改操作都会被包装为一个KeyValue对象实例,然后通过RPC调用发送给对应regions的HRegionServer。一旦KeyValue实例到达,它们就会被发送到给定的行所对应的HRegion。数据就会被写入WAL,然后被存入相应的MemStore中。最终,当memstore达到一定大小后,或者过了特定时间段后,数据就会异步地持久化到文件系统中。在此期间数据都是保存在内存中的。WAL可以保证数据不会丢失,即使是在服务端完全失败的情况下。

  

WAL是灾难发生时的救生索。与MySQL中的binary log类似,它会记录下针对数据的所有变更。如果服务器crash了,它就可以通过重放日志让一切恢复到服务器crash之前的那个状态。

而所谓的WAL splitting指的是在log中的修改操作可以被replay之前,把它们按照region分离出来的过程。读取日志然后按照每条记录所属的region分组。这些分好组的修改操作将会保存在目标region附近的一个文件中,用于后续的恢复。

WAL splitting的实现在几乎每个HBase版本中都有些不同:早期版本通过master上的单个进程读取文件。后来对它进行了优化改成了多线程的。0.92版本中,最终引入了分布式log splitting的概念,将实际的工作从master转移到了所有的region servers中。

Coprocessors

Coprocessor Framework, 允许HBase 管理员在Region server中载入定制的代码。Coprocessor的机制可以理解为,server端添加了一些回调函数。coprocessors由3个部分组成:

Coprocessor interface定义的回调函数如下:

1、preOpen, postOpen: Called before and after the region is reported as online to the master.

2、preFlush, postFlush: Called before and after the memstore is flushed into a new store file.

3、preCompact, postCompact: Called before and after compaction.

4、preSplit, postSplit: Called after the region is split.

5、preClose and postClose: Called before and after the region is reported as closed to the master.

RegionObserver interface定义的回调函数如下:

1、 preGet, postGet: Called before and after a client makes a Get request.

2、 preExists, postExists: Called before and after the client tests for existence using a Get.

3、 prePut and postPut: Called before and after the client stores a value.

4、 preDelete and postDelete: Called before and after the client deletes a value.

5、 preScannerOpen postScannerOpen: Called before and after the client opens a new scanner.

6、 preScannerNext, postScannerNext: Called before and after the client asks for the next row on a scanner.

7、 preScannerClose, postScannerClose: Called before and after the client closes a scanner.

8、 preCheckAndPut, postCheckAndPut: Called before and after the client calls checkAndPut().

9、 preCheckAndDelete, postCheckAndDelete: Called before and after the client calls checkAndDelete().

EndPoint可以让我们将执行代码逻辑动态进入Server端,并让其执行。

通过coprocessors,HBase将获得许多新的特性,比如:HBase access control,Column aggregate,Region level indexing,Table metacolumns,New filtering,HBase table, region access statistic,HLog extension。

在给出相应定义,原理等理论之后,分别从列式聚合,定制WAL行为,安全性三方面给出一些Use case。

HBase Observers

HBase Observers类似关系数据库的触发器,提供了与HBase交互过程中的基于事件的回调函数。按类别分,HBase Observers分为RegionObserver,MasterObserver,WALObserver。

具体来说,RegionObserver在下列事件发生时被触发:

  •   · CRUD(增删改查)或者DML操作
  •   · 表数据的Get, Put, Scan等操作的Pre/post-hooks 回调
  •   · 对客户端数据的响应结果的数据追加或替代
  •   · 覆盖正常的请求处理

MasterObservers适用场景为DDL操作,元数据操作,集群管理等。WALObserver针对的是WAL的追加或还原。

值得一提的是,这些HBase Observers可以协同工作,形成一个完整的Observer链,如图:

  

(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

容器是如何让“一切都是代码”成为现实的

容器是如何让“一切都是代码”成为现实的

现代应用的发展在很大程度上要归功于DevOps运动的蓬勃兴起以及该运动所产生的各种自动...[详细]

如何快速掌握一门新技术/语言/框架

如何快速掌握一门新技术/语言/框架

IT行业中的企业特点是都属于知识密集型企业。这种企业的核心竞争力与员工的知识和技能...[详细]

建高效数据中心有径可循

建高效数据中心有径可循

能耗问题一直是各大数据中心的心头之痛。有数据表明,2015年我国数据中心能耗预计将高...[详细]

2015黑帽大会:网络灾难后 重建IT安全

2015黑帽大会:网络灾难后 重建IT安全

在遭遇网络灾难后重建IT安全似乎是不可能完成的任务,但根据安全专家Christina Kubeck...[详细]

面对DNS劫持 企业移动应用该如何防护?

面对DNS劫持 企业移动应用该如何防护?

DNS(Domain Name System)劫持又称域名劫持,是指对正常的域名解析请求加以拦截,转而...[详细]

返回首页 返回顶部