HBTC2012:Hadoop的现在和将来

由中国计算机学会主办、CCF大数据专家委员会承办HBTC2012Hadoop与大数据技术大会于11月30日在北京举行。本届大会以大数据共享与开放技术为主题,设置了Hadoop生态系统、大数据行业应用、大数据共享平台与应用以及大数据的技术挑战和发展趋势等五个分论坛。大会就大数据技术生态系统的现状和发展趋势进行探讨,并围绕Hadoop与大数据热点技术和应用实践进行深入解析。

雅虎北京全球研发中心朱金生先生在大会30日下午发表了精彩的演讲。演讲主要涉及Hadoop的现状我会简单地介绍一下Hadoop的进展以及Hadoop在未来的发展,尤其是在高性能计算方面、HPC方面以及Hadoop和HPC之间怎么样互相影响两个方面。

朱金生提到雅虎的使命有三点:首先是怎么能够让检查邮件、共享文件信息、照片或者是邮件等,怎么能够让大家的活动变得越来越有趣。第二,这些日常的习惯怎么能够从基于网站转换到基于移动设备。所以在雅虎上我们认为自己是全面的移动技术的供应商。另外,除了雅虎提供的资产还有内容,我们如何为客户提供更好的服务,而且找到合适的方式提高用户的体验。第三,雅虎广告业。雅虎怎么能提供计算广告和数码的合作伙伴,雅虎怎么能更好地服务。这一点是非常重要的。Hadoop是雅虎的核心所在,所以你每在门户上点击一下都会通过Hadoop知道,Hadoop的云端部署也是全球最大的。他想强调了雅虎在Hadoop社区的定位,完全开放地拥抱这个社区,同时支持Hadoop的工作,除了站之外还包括核心。另外,雅虎也会最好地支持整个的社区,更好地利用高性能计算。

就云端而言雅虎每个月有10亿访问量,7亿的常规的用户,但一定要需要建立一个架构,这个架构处理数据一定要效率高,包括了线下的以及线上的搜索,这个规模是巨大的。怎么把这个核心拓展,这也是和计算相关的问题,雅虎也看到的确是存在问题,但雅虎也会提供解决方案,这样的解决方案是我们可以遇到的,这样的问题我们每天都会遇到。最后是怎么能找到一个最好的社区比如说我们不仅仅为Hadoop做贡献,同时也有继续在未来努力做进一步贡献的项目。所以完全欢迎开源社区,同时Hadoop会继续作出承诺,而且在未来看到会有更多的可能性。

所以这些是比较有趣的数字,现在雅虎有42000个节点,在全球生产的最大的服务器就是Hadoop的部署。另外,我们也要推出一些新的版本看问题存在于哪儿,同时来增加数据的价值。在研究里面有各方面的创新,在各个阶段集群中都会有一些研究,所以这个工作流是这样的,开发者先进行研究之后进行数据分析找到一个模型,最后会做口袋测试之后进行完全的推出,这是整个的流程,现在我们的集群大概还是有4万多个节点,接下来还希望再增加一万个节点。这些都是用户的数字每天有300多个增加,基本上是1000万个jobs/h。所以大家在互联网行业对此都比较熟悉,Hadoop能做什么。雅虎用Hadoop做搜索和行为分析。Hadoop在雅虎中是无处不在的,这是由于搜索的,雅虎有很多的E-mail用户,Hadoop可以帮助雅虎更好地使用避免网络钓鱼和垃圾邮件。

雅虎怎么能提供更有效而且更个性化的体验,不仅仅是内容也包括了广告无论是个人还是社会客户的体验来说都是非常相关的,比如说电视、网站或者说是平板电脑或者是在手机上都是如此。

这更多是关于Hadoop未来架构的介绍了,有怎样潜在的工作负载。今天谈到的是HPC,朱金生用案例来比较一下Hadoop计算的差异。我们现在有这样的趋势,这样的趋势都知道存在海量的数据,而且数据量在不断地增加。所以,数据基本上是每18个月就以成倍的速度增加,我们怎么处理这些数据呢?尤其是很多的数据是通过各个设备来搜集起来的。所以Hadoop是有非常好的生态系统的,因为有很多的企业或者是公司都对Hadoop开始逐渐地产生了兴趣。所以说,现在是非常好的生态环境。从雅虎的定位角度来说,我们也是希望能够作出贡献,而且我们也希望能够投入之后有回报,所以这是一个互惠的投入和产出。另外我们也希望整个行业也是从中获益,雅虎也可以从中获益。

另外关于和线下批量的工作流或者是工作负荷相比而言,我们也看到越来越多的数学或者是战略性的工作流和负荷越来越多了,因此我们可以做更为精确、更为数据分析型的用户行为的分析,所以我也看到了在未来,会看到越来越多的计算密集型的负荷会出现。HPC的角度也是如此的,他们也完全拥抱在Hadoop的高性能计算。所以有的时候会存在困惑,采用拓展还是另外一种方式,所以这也是很多企业目前在面临的问题,不管是基于网络的企业还是说基于普通的企业都是如此。

对雅虎来说为了能够更好地找到相关性强的而且是个性化的客户体验的话,我们都知道数据是要经过周期的,所以怎么能够利用这些数据来帮助客户找到他们 想要的,这个变得越来越复杂,因为周边的情况变得越来越复杂,我们看到有很多的、实时的流、纳入到整个的行业和架构中,实时的因素越来越强。

朱金生介绍三个思维范式的转换,第一是关于技术方面的。第二是关于经济性和成本的,第三是关于行为上的范式的转变。在未来处理器的变化越来越快。新 的业务模式成本也需要考虑,比如说获取数据的成本在未来是希望能够把它减少为0。现在的数据越来越多了,成本怎么能降下去呢?如果有比较好的业务模式,数 据的获取基本上是可以减少为0的。第三,用户的倾向是愿意分享数据,他们自己的数据,把他们的数据从自己的PC、自己的手机推送到网络。同时,他们也希望 能够在任何时候都能够访问自己个人的数据,所以这点变得越来越复杂,不单单对雅虎对整个行业来说都是如此。

这意味着什么?对我来说是三件事,首先从架构的角度来说。对计算会产生一定的影响,对数据也会产生一定的影响,对滞后率也会产生影响。从计算的角度 上可以做四件事,如果是一个程序员有关键资源UI,在一个特定的情况下来运行自己的UI,所以说有一些东西在访问的时候是排他性的,但对大多数人来说,有 HR的资源,也许是在节点,这就要看我们谈论的是什么样的范式了。所以有这样的能力让怎么能够对关键的资源来说保护事实上也是非常重要的。比如说你不想做 UI的接口。另外,现在有越来越多的能力来处理更大的数据集。在所有的节点上即便是在同样的节点上,也可以看到CPU也是以同样的方式来运行。当然了,你 也可以做安排,也可以工作负荷的平衡。另外还有批处理。现在来说怎么做批的处理呢?即便是在单个节点上或者是跨节点上CPU的利用率相对而言还是比较低 的。所以所有的额外的带宽意味着什么?也许我们可以做其他的工作可以预测用户下一步想要什么之后来使用。

接下来看数据,数据是比较有趣的它会以周期的形式来运行,首先是数据搜集和采集之后,如果是原始数据的话可能要对它进行处理,之后再计算。之后可以 减少数据之后再集合这些数据。有的时候可以非常容易地来进行模拟,当然了有的时候有不同版本的数据,尤其是在计算完之后有不同版本的数据,这些都是和数据 相关的。

最后一块是latency,它可以用最快的速度来访问数据,所以地点是非常重要的,你也希望不管数据在哪儿都可以做计算。另外不同的阶段Latency也是非常重要的,你在部署的时候也是希望有战略性的,这样能够得到最大的效果。所以这基本上是和分布相关的。

最后企业也许有不同的数据资源,你希望能够利用这些数据做交易,同时在交易中保证它的完整性,这一点也变得非常地重要。这些是我们新的教学主张了。和数据密集型的工作负荷相比,可以看到越来越多的负荷处理变得越来越计算密集型了。

HPC有超性能计算,有几个NPI相关的workload,也许数据并不是很多,但数据之间的计算是非常密集的。我们之间的互动越多结果就越好,所 以这基本上是对整个的计算的工作负荷来做计算。在HPC这边会用NPI。所以Hadoop这方面是很相似的。那在Hadoop你可以用高级别的语言,数据 密集型等等。这些都是HPC的工作量和Hadoop的工作量的基本的区别。

看一下数据, HPC在他们可以处理的合法数据,可以数据的类别也会有区别,HPC部分特别是对企业客户、结构性数据、关系的数据库Hadoop有很多都可以用,所以这 是一个非结构性的。在架构这方面HPC和Hadoop是很近似的,节点之间有很多的交互。这是有效率运行的很重要的一点。而在Hadoop方面是没有这个 需要的。

如果建立一个模型可以慢慢地建,可以把它们用在一些小的数据库上,所以这是一个很互动性的。那么Hadoop是不一样的,它是时间很长的而且需要消 耗很长的东西,所以它能够极大地补充HPC中的很多的功能。HPC是由企业来推动的,也是由科学来推动的,特别是企业。所以对华尔街来说经常用到HPC的 集群来进行金融建模。我早上来到以后看到没有进展可能就需要再做一次工作,它能够解决这样的问题。这是Hadoop目前做的。作为一个行业和社区,我们确 实也在很多的地方用到了HA。当然如果你是一个企业就需要服务和集群需要进行升级和打安全补丁。因此我们有很多代码的要求。Hadoop这方面确实可以做 很多的工作。但我确实认为有两个不同的使用架构和使用的情境,我确实看到HPC和Hadoop可以彼此学习,而且我确实认为这两个是彼此重叠的,未来会有 很多共同运营的机会。

HPC能够帮助减少工作量,而且也能够访问大云中的很多数据,而且还可以有GPGPU的支持,Hadoop也是如此,可以加入fine screen的安排。HPC可以跟Hadoop结合,而且可以增加HGPGPU的支持。

在HPC的工作量方面朱金生认为这里有三个重要的趋势,就是在数据类别,我们在这里谈的是什么。这里的L显示出采用云计算的可适用性方面使得我们越 来越尴尬,一开始我们有这样的交易,这并不是一个数据平行化的很好的情况。在下面包括基因的匹配还有一些应用,特别是在PCA的领域里,这些都有很多的平 行数据可以进行,可以分别在不同的地方,最后再来取,这可以称作是一个很高程度的数据的平行性。在右侧Hadoop可能不会发挥作用,但如果看看其他的方 面就可以知道了可以运行Hadoop,操作HPC的一些工作,在这种修改之后。

放在一起可以分析HPC和Hadoop之间的区别。我们谈到了三个重要的类别就是数据,特别是在数据采购这方面,对互联网企业来说特别市对一些企业 的情景等等,都会有很多的匹配工作需要来分析一下金融模型。在明天开盘之前需要把这些做好,那么潜在性谈的是多少的用户,是一个用户或者是几百万的用户都 在同时用,这里还可以增加一个架构上需要考虑的问题。

但除此之外还有使用的情境,数据是有周期性的,有采集的形式和周期,其中包括了一些错误,我们必须要把它放在一个适当正确形式之中,可以告诉大家数 据是没有问题的,一旦拿到了数据可以进行集群和不同组织的形式提供不同的组织和观点,而且我们要把数据放在不同的地方,这样才可以用到,比如说可以看到数 据的呈现,还需要环境的呈现,比如说实时的环境和流的环境,或者是实时的处理是比较好的一种方法。如果我们有全球的用户在各个地方都有可能又要考虑到数据 的分布,如果说你做的是电子商务交易的完好性是没有问题的,我们要确保这其中是没有问题可以得到很好的执行。一旦有商业执行的话,这是非常重要的。