大数据行业发展到今天,它创造的价值和带来的社会效应,大家已经看得很明白,同时很多问题和不足也暴露出来,特别是hadoop能够提供的数据处理能力,现在已经挖掘到极限,但是现在各行业对数据的存储和计算需求,似乎却没有停止的迹象。在最近的一次大数据论坛上,大家开始讨论下一代大数据系统和系统标准,借此机会,我们Laxcus大数据实验室表达了自己的看法,提出了4S标准,得到与会者的普遍赞同和肯定。回来后,觉得这个话题应该再说说,所以借着CSDN这个平台,和诸位谈谈我们眼中的下一代大数据系统和4S标准。
概述地说一下4S标准,就是:“超大规模、跨地域、简单、安全”。这4项标准的首个英文字母都是“S”,所以我们把它称为4S标准。很不巧,和四代战斗机的4S标准重名了。。
下面从4S标准来谈我们眼中的下一代大数据系统。
1. 超大规模
“规模”这个话题要从hadoop说起。诸位应该都知道,现在市面上大数据产品,基本都属于hadoop系列,要不就是与hadoop做了各种绑定。hadoop能够提供的数据处理能力,计算机节点数量在“千台级“,数据存储量在”PB量级“。再往上,hadoop将很难支撑。即使勉强维持,稳定性和可靠性也难以保证。而经常接触互联网业务,或者做各种科学计算的兄弟们应该有这样的感触:当下的数据应用需求是越来越多,需要完成的数据计算量是越来越大。hadoop设计于十年前,就象数据库的程序员们没想到后来的大数据应用,当初的hadoop设计者们大概也没料到今天的数据应用会是这个情况吧。而且随着未来各种大规模计算业务的进一步增长,hadoop现有的处理能力将无法保障这种增长需要。所以,当前的数据处理规模还要进一步扩大,保守的估计,
起码应该能够支撑未来二十年的数据处理需要。在这样的一个目标下,大数据系统的工作指标应该是:计算机节点数量达到“百万台”级,数据存储和计算规模达到“EB”量级。只有这样一个裕度,我们才有可能适应未来数据处理业务的需要。
2. 跨地域
“跨地域”要从去年的一次事故说起。大家应该都知道,2015年8月份,天津发生了一起大爆炸。在这次事故中,有多家IT企业被涉及,其中就有我们后来这位客户。这次事故,他们的服务器损失了一大半,更糟糕的是数据丢失了,这可是比服务器更大的损失。用CEO原话说:服务器坏了花钱换一台就是了,但是数据毁掉就再也找不回来了。这家企业原来用的是hadoop集群,被集中部署在一个机房里,如果hadoop当时能够分散到多个地域部署,然后用网络连接,形成一个多地域的并行集群和数据冗余,就不会有后来的损失。这也是这家企业找到我们的原因,要求用我们的laxcus重新部署他们的大数据集群,实现跨地域和多集群协同工作。由此可见,且不说协同计算这样的需求,仅仅在冗灾管理中,跨地域有多么重要。
3. 简单
“简单”是我们对下一代大数据软件一个综合性描述。概括地说,就是做到尽可能简化一切操作,实现“傻瓜”式处理。 这个标准的提出,缘于上面提到的下一代大数据系统超大规模化,在这种环境中,如果每减少一个环节处理,都可能获得数倍的效率提升。具体到实现要求上,应该有以下这样几个指标。
3.1 高度集成
现在市面上流行的几个大数据软件,严格地说,都不是完整的产品,而是功能模块,它们只是完成了大数据体系中的一两个功能而已。这样的产品交到用户手上,当他需要一个完整的大数据服务的时候,就必须了解这些软件各自的功能属性,才能够操作它们,把它们粘合到一起,然后才能组织和部署起大数据集群。这对所有用户来说都是一个巨大的考验,徒然增加了软件使用门槛。这个问题有多严重,有过集群部署和维护经验的人应该是最有感触的。另外,还有一个问题是,这些软件来自不同的开发团队,每个团队设计开发自己软件的时候,着眼点必然是自己的产品需求,而大数据是一个整体,用户普遍需要的是完整功能的大数据产品,而不是其中几个功能模块。所以在部署和运营集群的时候,就会产生这样的矛盾:如何组织和搭配这些模块,做好各模块之间的衔接和兼容,以及更少的冗余?实际上,很多时候,这个问题都推给了用户,成为了用户使用大数据成本的一部分。
所以,下一代的大数据产品,应该是全体系全功能的设计,实现深度嵌合和一站式服务。当一个用户需要部署一个大数据集群的时候,只用懂得安装软件和配置即可,而不必去深入了解软件的各种特性,乃至被迫参与到软件开发中来。相比于多个团队开发的功能模块,全体系的设计开发还有一个好处:可以有效减少模块拼接和组装造成的冗余,在保证稳定性和处理效率上也是最好的。对用户来说,当一个软件实现了原来N个模块组合才能达到的全部功能,省略了自己做软件装配工的时间,简化了流程,用这样的软件,何乐而不为呢?
3.2 易操作
易操作是针对普通的最终用户来定义。其实可以想象,一个普通的数据用户,他能够处理的工作,也就是点击鼠标,或者敲击键盘输入字符,然后按下回车键而已。而展示给普通的数据使用者的内容,应该是表格、图形、音频、视频这样可听、可视化的直据内容。所以,基于这样的考量,所有与用户接口相关的大数据处理工作,都应该围绕着这两项要求展开,并且是基本核心要求。
3.3 易维护
易维护是对集群管理员而言。如果阁下是一位机房或者大数据中心的管理员,应该有这样的感受:要管理少则几百台,多则数千台的计算机,每台计算机不知道什么时候发生故障,发生故障后,还要排查和排除,工作量着实太大。而且随着下一代大数据系统的超大规模化,如果管理模式不发生改变,集群管理员将会不堪工作重负。所以,下一代大数据系统的一个重要要求,就是减轻管理员的工作负担,提高大数据系统的自适应能力,以及部分实现系统的自维护管理。即使运行系统在发生故障后,也能够做到迅速定位和显式地提供故障源头,而不是让集群管理员去查找故障。从另一个方面说,这种自动化的管理,也有助于提高集群的稳定运行。普通的日常管理工作,也应该是通过终端,输入类似SQL这样的命令就可以完成。
3.4 易编程
易编程是对程序员提出的。实际上,程序员目前是整个大数据链上最苦逼的一群人,他们要在终端用户、数据业务、计算机集群之间,用编程搭建起一道桥梁,来实现整个大数据链条的最终运转。凭心而论,目前的分布式编程,的确比早期简化了很多,但是放到普通的程序员面前,仍然过于复杂。其中诸如接口化、可移植、操作规范等问题,都没有实现标准化,在这些条件没有完备之前,程序员的编程担负将难以减轻。而大数据行业的快速发展,却在要求程序员具备快速编程能力。但是目前这种矛盾的现状,显然不能满足要求,这同时也是造成大数据行业人才奇缺的一个因素之一。把这些情况叠加一起,目前一个可行的解决办法,应该是采用类似EJB、CORBA这样的中间件方案,把大数据编程组件化。程序员通过调用规范的接口,然后加入一些数据业务规则,就可以完成工作。以此实现快速设计、快速编程、快速投入部署的目的。
4. 数据安全
最后说一下数据安全。数据安全对当今社会的影响有多大,看一看这些年发生了的一些案例就知道了,例如维基解密、斯诺登这样的事件,用地震形容也不为过。我们现在已经步入后斯诺登时代,如果仍然忽视网络和大数据的安全问题,那么下一个安全事件很可能在我们身边发生。所以,从这个角度来说,安全在下一代大数据系统中的重要性,可能要远超过上述几个指标。但是回头看看现在的这些大数据软件,包括hadoop,安全工作做得实在乏善可陈。
在我们的理念里,下一代大数据系统中,安全应该是全方位的,能够深入数据处理的每一个环节,而且在用户这个层面上,安全还应该是可以制订的,就是允许让用户自己设计安全方案,定义安全规则,然后加入到大数据系统中来。只有这样,在互联网络和云计算大行其道的今天,数据安全才能够有所保证。
以上是我们对下一代大数据系统的一些粗浅看法。顺便夹带个私货:《Laxcus大数据管理系统2.0》,其中有不少与上述介绍相关的内容。欢迎与诸位同仁交流、探讨。
Laxcus大数据管理系统架构
Laxcus安全管理模型