冯世聪:明略大数据平台核心技术分享

我重点介绍的,这里面有一个产品,原来有很多历史的数据放在Oracle里面,又想实时同步到大数据平台来,我们提供了一个平台,就是原有的系统不会破坏,原油的数据还可以用,比如说ERP系统,数据在产生的过程当中,实时的可以把这些数据同步到大数据平台当中来,原有的生产系统不会有任何的影响。还有一个好处就是大数据庞大的计算能力,原来在Oracle跑不动的数据,完不成的任务可以放到这个里面。

我们觉得做大数据其实第一点一定要解决安全的问题,因为大数据不像别的数据,它最大的一个特点是分散在各个信息孤岛,各个部门的数据聚集在一起。大家知道过去的数据遗漏的时候,丢掉一个部门,或者是某一个领域的数据。但是把一个数据集成在一起,一旦丢失,所有的数据都可能丢失。尤其是公安、军方对数据的安全性是第一位的,如果安全性不过关,肯定不会用,我们这边毫不谦虚的说,我们达到了军工级的要求。从这个角度来看,这里有一个完整的安全架构体系,有身份认证,包括加密解密,数据访问和审计我们都会有。这个体系有很多的特点,因为时间的关系我只介绍三个特点。

我们大家知道,大家都应用大数据平台,基本上都来源于开源社区,很多同志都知道,所有的权限里面,如果是运维的话,可以把平台上好的应用可以看到,这其实在很多条件下是非常不好的行为。举一个简单的例子,我是一个公安局局长,公安局的所有数据放在大数据平台上,运维人员可以知道这个局长、部长所有的数据,其实这是非常不好的。我们第一个做的事情就是,我们把这个权限分离了,你这个运维的人员,你也只能运维这个机器,不能看到上层应用的数据。我们因为这个数据分开了,即使开发人员,他也有自己的一个权限管理,这样保证开发人员,即使我们的人员到现场实施的时候,还看不到有些数据,就保证了数据的安全性。

我们做了一款引擎,有一个比较大的痛点,每次访问一条数据都是按列访问的,增加和删除修改都是对列进行访问。有很多客户访问的时候说,我不光是访问这一列,而且限制从第1行到第100行,这个时候就要求能够访问,我们申请了三个专利,我们是全球第一家做出来的,就是行和列同时访问。就是你如果在访问一个数据的时候,自动的是一列,我们把这个引擎改掉了,在开发人员,不知道背后的权限是什么样。比如说一个机构很大,几万人,可以自动的加入权限。不管是银行普通的办事人员还是行长,还是总行的人,每一个数据都可以控制到行和列。

我们做了一个安全的审计,对于大数据这一块,对于任何一个平台上面跑的数据,不光是服务,有很大的开源社区做的审计,但是对于我们这个数据,任何一个数据只要做增加、删除、修改,甚至是访问,我们都可以记住。一个数据一旦出现问题的时候,我们可以做非常方便的审计。一旦事件发生了,我们就可以很方便的做审计。这里面可以看到,我们在数据审计,包括文件系统,包括所有的我们安装的运维,就是启动一个服务,停掉一个服务,增加一条信息,删除一条信息,上面跑的硬件、软件、数据、服务,这四个方面我们全部都做了审计。就是你只要做了任何一个操作,一旦做过,一定会留下痕迹,很多要求苛刻的客户都非常愿意购买。

高可用性,大家知道,这里面有运营商的同仁。软件现在分为两类,一类是运营商级别的软件,一类是非运营商级别。运营商对于高可用性是非常苛刻的,因为他要求你7×24小时,我任何时候访问这个系统不会有任何问题。比如说启动一个节点,100个集群一个节点,其中有一个节点因为停电被断掉了,我过一段时间把那个节点的电源再开了,重新启动,上面跑的服务数据都可以保存一致,这是要求非常苛刻的。大家知道,在开源社区里面有比较常见的一些服务,比如说Hbase、Hive等等,但是对于右边的这些基本上都没有,比如Impala、Kerberos、LDAP、Flume等等,这个里面就面临一个很常见的场景,就是如果发现这个集群里面有100台机器,其中2个停掉了,不能因为2个节点影响其他的服务。要做到的就是把这个机器下面的网线拔掉,过一会儿再插上去,能保证插上去的数据能够恢复。还有一个就是对于硬盘,如果这个硬盘坏掉了,操作系统一定会收到这个信号。但是运营商测我们的时候是怎么测的?他就说我这个硬盘在正常运转的时候把硬盘拔掉,这个时候操作系统是没有信号的,过一会儿再插上去,导致数据还是一致,这些非常严苛的设置都是高可用的要求。我们除了常见的Hive、Hbase这种,我们自己做的这种服务,我们考虑所有的服务都可以用,保证我们的服务是高可用的。