由中国计算机学会主办、CCF大数据专家委员会承办HBTC2012Hadoop与大数据技术大会于11月30日在北京举行。本届大会以大数据共享与开放技术为主题,设置了Hadoop生态系统、大数据行业应用、大数据共享平台与应用以及大数据的技术挑战和发展趋势等五个分论坛。大会就大数据技术生态系统的现状和发展趋势进行探讨,并围绕Hadoop与大数据热点技术和应用实践进行深入解析。
中国计算机学会大数据专家委员会副主席哈尔滨工业大学教授李建中老师发表了精彩的演讲,就大数据计算基本概念、研究问题和部分解做了深入的探讨。
李建中以学院式的手法介绍了大数据的研究方向。讲三个问题:第一,大数据的基本概念。第二,大数据计算机其挑战。第三,研究问题与部分解。
第一,大数据的基本概念。什么是大数据,实际上我的报告讲了很多了,为什么叫做描述?因为大数据实际上是结合了不可定义的概念,大是相对的,是相对目前的及拴系统计算能力来说的,今天的大数据明天就不是大数据,大数据有的人说三个V,有的人说四个V,V我也不详细说了。所以说,大数据存在已久。有一个会议叫SSDB是1983年创建的一个会议,这里面的论文就是在研究大数据,这个会议到现在已经有29年的历史了,现在为什么谈起来大数据呢?因为个时候大数据还没有那么普遍,涉及的领域很少,参加这方面研究的人也很有限,所以跟现在不同。现在的大数据和当时研究的不同主要有两点。
第一,大数据达到了无处不在的程度。因特网有很多的大数据,在科学研究领域、医疗领域、商业领域、制造业、智慧城市都有大量的数据。全世界的感知数据增长率是每年58%,全世界拥有的存储能力或者是存储总量的增长率是每年只有40%。到2007年是一个里程碑,到2007年全世界的感知数据已经超过了全世界所拥有的存储器的容量。到2010年的时候,全世界的感知数据是1.25千万PB,2011年产生的感知数据已经二倍于我们人类所拥有的存储器的容量。所以,我们可以得到这样的结论,大数据几乎无处不在,数据量远远超出了现有的存储能力。
第二,大数据计算及其挑战。
大数据的输入是大数据D,问题的解是f(D)。我们通常讲的时候总是讲查询、挖掘、分析,实际上已经远远地超出了这个范围。大数据是一个多学科大范围的研究领域,涉及到很多的学科。
比如说在生物学、宇航学等各种领域里面都有它非常复杂的大数据的计算问题,但我们没有考虑到。大数据计算问题的空间有多大?可以把在大数据方面的活动区分成这样五个方面,一个是大数据的获取、一个是大数据的传输、一个是大数据的存储、一个是大数据的质量管理。最终,要支持大数据的问题求解。所有的五个阶段里面的问题集中起来,称之为大数据计算问题的空间。我们把求解这个空间里面的每一个问题的过程叫做大数据计算。对每个问题要研究什么呢?要研究它的可计算性、计算复杂性和求解算法。现在我们面临的挑战是四个方面。
第一,如何把现有的计算理论、现有的算法、设计方法和现有的计算系统scale to up。第二,usability的问题。如果大数据里面充满了错误,我们计算在好也不会得出正确的结论。第三,privacy的问题,如何在最大化确保privacy。第四,交叉学科的问题,如何实现多学科交叉,面临和解决大数据的领域问题,各个学科里面的大数据由于专业不同又没有能力处理这样大的数据,如何把多个学科交叉起来,然后来解决问题。所以我们面临的挑战是四个挑战。实际上大对计算的影响力是非常大的。我们在中型计算机上和64个节点的集群上做了两组实验,就在数据库里面的算法和数据苦里面的算法进行了计算。我们是用了1T到10T的数据,这样的执行时间是从68个小时到89个小时。所以,大数据项我们提出了很多的挑战,同时现有的方法和技术已经不能有效的支持大数据计算了。
第三,研究问题与部分解。
现在考虑两个基础方面的、共性的研究问题。第一个问题是大数据的计算复杂性问题。大数据的计算复杂性测度,除了时间复杂性以外还要考虑能量复杂性。云计算出来之后或者是集群技术出来之后,能量测度复杂性非常高,我们学校集群的电费就是1000多万,所以能量的问题我们不得不考虑。这样,就要在这两个测度下来考虑。时间复杂性的问题上要充分考虑问题的复杂性分类。传统的复杂性理论是把问题分成P类和NP类。现在在P类问题里,数据量输入非常大的时候,N方算法就已经不合适了。甚至N算法都不合适了。在传统的理论里,我们认为多项式算法是可以接受的。的数据的前提下不一定合适,大数据问题的难解性的标准是什么可以重新考虑。第二是数据难解问题的判断性问题,这通常是用了一个归结的方法。假定线性和亚线性是我们能容忍的算法,现在考虑用归的办法来判定一个问题是不是难解的,我们用归就需要来解决多项线性和亚线性归的问题,这个做起来很困难,如果这条路走不通就需要探索新的路。
很多难解的问题怎么办?我们就想做算法,每个问题的复杂性我们要知道是不是难解的,这是需要解决的问题,同时难解之后我们要判定是不是有线性或者是亚线性的算法,是不是可近似性的。
对能量复杂性来说,我们首先要研究能量复杂性的模型,看看能量是怎么样来消耗能量,然后我们来研究和时间复杂性相似的问题,这是最基本的基础理论问题,现在我们正在做这方面的工作。另外一个问题是大数据的计算的算法设计的新方法,我们需要有新的思维,不然的话是很难取得突破性的进展的。现在各个企业和厂家都在宣布说我有什么什么工具,你有什么什么工具。但试想一下如果一个大数据问题到你那算的话都是N的平方算法的话是很难解决的。算法都没有解决工具何以生成?所以算法是我们面临的很大的问题。
现在多项式算法如果指数太多的话,是平方级以上对P数量级或者是E数量级的数据就不可能计算了,所以现在要有新的理念,要追求线性和亚线性计算的算法,这里面是n,logn、loglogn的算法了。排序问题有没有这样的算法?对基于比较的排序来说,nlogn也是没有算法的,但像基数排序的不依赖于比较的是有线性算法的,让它具有更一般性适合大数据的处理有很多的问题,很多的问题如果不具有线性和亚线性算法的时候,我们要考虑设计的新方法了。我们首先叫做doing more with less,我能不能用一部分的数据来解决整个数据的问题。在这么多年的工作中,试着想了几个方法,一个是基于压缩的大数据计算方法。压缩大家都知道,可是有一个很大的问题是,传统的压缩方法在计算之前需要把数据反压缩过来,可是我们追求的是无解压的计算,压缩小了就在小的上面计算,这样才能达到提高性能的目的。因此有两个问题需要考虑,一个是数据压缩方法,一个是无解压的计算问题。
第二个问题是无解压计算的问题,有了压缩的方法在这上面怎么计算呢?有很多的方法,有兴趣的老师和同学可以去看一下相关的文章。第二个方法是适用的是基于抽样的大数据的e、dβ的近似计算方法。因此就要解决三个问题,一个是抽样方法的选择问题,不同的数据不同数据的特点可能需要的抽样方法是不一样的,对不同的应用抽样的方法也是不一样的,甚至我们已经遇到了所有的抽样方法都不合适的数据怎么办?我们还要和数学家共同商量,搞出新的方法。第二个方法是估计器的问题,我们要做一个估计器,能够证明它(e,β)的估计器,那么我们怎么能给定了以后却确定样本的大小,希望用最小的样本来计算问题。这些问题如何解决在下面的文章里都有介绍。
第三个问题是增量式大数据计算方法。很多的数据库是动态变化的,还有一些数据像传感器网络的数据、流数据都是在不断地增加和变化的。现在就考虑有两种增量方法,一个是有大数据D,先把数据D小部分算完了,之后再加上( e,β),我的计算和原始的没有关系,只和(e,β)有关。这个大数据的计算问题就变成了小数据的计算问题。还有一些流数据的增量式的算法就有意义了,总是要保证后面增量的计算和前面没有关系,我就把大数据的计算问题变成了小数据的计算问题,这里面有一些方法,这些文章都很好找的。
最后一个现在正在试的方法是主数据分析的方法。大数据的一个特点是价值很大可是价值密度很低。现在把有价值的数据叫做主数据,现在我们有两种主数据,一般是绝对主数据,这个数据相对这个领域的有价值数据是什么?我们要把它找到。另外一个是相对主数据,这对计算来说是有用的,我们怎么把它找到,现在正在做工作,明年年初会出来结果。
这是在一类方法学上。下面是云计算环境下的并行算法的设计方法。并行算法有很多,可是云计算环境和传统的并行计算环境是不一样的,所以要有新的设计方法。第一个问题是,云环境下大数据怎么分布存储,数据怎么在各个节点上分布才能有效地支持大数据计算,这是需要解决的问题,我们提过一些方法。第二个是云计算环境下的低通讯量的并行算法。因为云计算的通信是瓶颈的问题,如果通信量非常大云计算是不灵的。现在我们追求的是低通信量的并行算法的设计。还有是能量受限的大数据计算方法,给定一个能力β,这个计算问题要判定一下在β的能量下能不能算出来,能算出来怎么算?我我我这是算法方面要考虑的问题。
李建中简单介绍六个方面的关键技术研究。
第一是大数据获取,有两个方面,首先是基于互联网的大数据获取的理论和方法,在数据库研究里面有了很多的相应的技术。但这些技术不适合大数据,数据量非常大的时候就有问题,怎么把这些问题scale to大数据上。第二个是基于传感网的大数据的获取的方法。因为大数据的数据已经达到了非常大的地步,所以我们涉及到新的数据获取的问题,传统的传感器的节点已经不灵了,我们还要研究信号处理的算法,还要研究物理世界信息准确的获取的方法。现在的获取方法有很大的问题,一个这样的物理世界的信息是这样的,可是我们可能会变成这个样子。物理世界不可能再现,我们作出的结论也不可能对。今年我们做了两个这样的结果要发表出来。
在大数据的传输上,一个是大数据实时传输的理论和算法,有一些结果。第一是大数据的安全可靠传输的理论和算法。第二,大数据传输的调度和控制的问题。第三,在传输的过程中继续进行计算。这样通信量很少。第三是大数据的存储问题。过去的数据中心有很多,数据有一个数据中心,当我用的时候在服务器上让数据流到我这里来。在网上传输TP级数据的话,网络是根本不可能的。现在我们希望数据中心既能存储数据又能支持大数据计算,算法也在那里。用户提交的是计算请求,计算完之后把结果传输给我,有一系列的研究需要说。
第三个问题是大数据可用性的研究理论和技术。目前的大数据的基础设施基本上都是考虑关注量的管理忽略了质的管理。所以造成了很大的问题,数据质量问题已经严重地危害到了国际信息社会,有很多这样的例子。在中国虽然没有报道但也有很多流露。所以说这个问题是很严重的。所以,今年正在做的973项目就是在解决这个问题,把数据的可用性定义为数据一致性等五个指标在信息系统中被满足的程度。要研究的三个关键科学问题是量质融合管理、劣质容忍原理、深度演化机理。研究的是如何既管量又管质。之后要考虑知识,在弱可用信息上如何解决知识的获取、知识的推理问题,这个项目大概有这么五个课题还有一个应用课题。这样来解决一系列的问题,这样项目目前在进行中已经取得了一些结果再一个是大数据问题求解。第一是共性的大数据问题的求解的理论和算法,一个是面向应用的。
共性方面的问题是计算机界能独立完成的,应用方面需要和应用领域结合起来才能完成。共性方面的问题实际上并不是很多,是结构化和半结构化大型数据的理论和算法,现在都有一些不是大数据算法。这些算法怎么样能够把它提升到解决大数据问题上,涉及到需要新的算法,TB级以上的数据如何做。再有,图数据安装,图数据是复杂的数据,现在Facebook也好归根到底都是图的问题。我们需要研究的是大型图数据的计算的理论和算法,包括确定图和不确定图。
还有一个是非结构化的大数据的计算的理论和算法。同样的问题有很多,那么算法怎么做,归根到底还是算法的问题。再一个是面向应用的大数据求解了,是生物信息领域、天文学领域等计算,这些计算计算机科学家必须和那个领域的专家结合起来,才能把它解决出来,所以这对我们来说是一个很大的挑战。
第二个是Privacy的问题了,它有可能成为大数据计算的很大的障碍。我们遇到的问题是他有数据不给你因为保密,可是我们想算又没有数据,这里的问题矛盾非常大。所以这个问题是在这一段时间内很难解决的问题,所以Pricacy并不是本身的问题。
最后李建中提出了两个问号,第一是大数据的硬件平台,我的问题是云计算是大数据计算的最好平台吗?它有两个极限,一个是通讯瓶颈问题,一个是能量消耗问题,这两个问题是非常严重的。现在云计算炒得很厉害,这不是科学技术模式而是一个商业模式,本质上就是一个集群,它的两个局限性使我们真的做一些复杂问题处理的时候会发现做那样的并行算法几乎是不可能的,通讯量一到这个问题就很难了。所以我们就想是不是需要考虑突破云计算束缚的、适合大数据计算的新型的计算系统。
第二个,我们是不是需要新的程序设备模型。很多的问题并不是能用迭代来做的,很多的问题需要更加适合的模型。怎么样考虑这个问题,是不是它就到头了?第二个问题,是不是要新的软件开发工具?比如说在集群上设计一个并行算法的时候,一个调试工具都没有,其他的工具呢?就更少了,我们是不是需要?
第三,我们是不是需要新的软件设计方法学,在云计算环境下,软件设计和迁移的方法一样吗?还会不会有其他的问题?引起大家的深思。