12 月份虽然进入了一年中最冷的时候,但是丝毫不影响国内技术社区的热情,12 月初举行的 Hadoop 中国 2011 云计算大会和 PyCon 中国 2011 大会就是例证。在盛会到来之前,我们不妨看看这些相关技术的最新发展趋势和动态,提前热热身。
Hadoop 中国 2011 云计算大会
Hadoop 的热潮已经扑面而来。在 InfoWorld 最新公布的 2011 年十大新兴企业级技术中,Hadoop 名列第四:
Hadoop 由 Apache Software Foundation 公司于 2005 年秋天作为 Lucene 的子项目 Nutch 的一部分正式引入。Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 非常可靠,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。由于以并行的方式工作,通过并行处理加快处理速度,因此 Hadoop 效率很高。
各大公司和厂商也在积极地利用 Hadoop 解决自己和客户的问题。
eBay 在 Hadoop 世界(Hadoop World) 大会的主题演讲中展示了一种全新的搜索引擎Cassini 的架构,它使用 Apache Hadoop 来支持每小时进行的索引更新,使用 Apache HBase 对随机存取信息提供支持。Hugh E. Williams 介绍了项目的规模、使用的技术和完全重建 eBay 核心站点搜索过程中得到的经验。这次重建工作由 100 多位工程师耗时 18 个月完成。
新 Cassini 平台将能支持:9700 万活动的买家和卖家;每天 2.5 亿次查询;2 亿多件商品和 5 万多种分类。eBay 已经在 Hadoop 和 Teredata 集群存储了 9PB 用来做分析的数据,但这将是生产环境里提供给用户直接使用第一个应用。Cassini 将保留 90 天的历史数据在线——按照目前的规模是 10 亿条数据记录,包括用来做排名的用户和行为数据。支持搜索系统所需的大部分工作是由每小时在 Hadoop 上运行的批处理作业完成的。Hadoop 环境使 eBay 能够恢复或重新分类整个站点的库存,这是一项重大改进。记录存储在 HBase 里,通常在每个小时索引更新的时候进行扫描。当一条新的记录上线,几分钟内就能从 HBase 里进行查询,并被加入实时索引里。Williams 提到,团队熟悉 Hadoop 的运维,系统运行很稳定,基本没出什么问题。与此相反,他指出 HBase 似乎很难驾驭。
Amazon、Cloudera 和 IBM 都发布了它们的 Hadoop-as-a-Service 产品,Microsoft 的类似产品也将在明年问世:
Amazon 是最早推出 AWS Elastic MapReduce 的,可以追溯到 2009 年,在 EC2 和 S3 上运行 Apache Hadoop 。同 Amazon 的其他 IaaS 产品一样,这项服务提供了大数据分析所需的最基本的硬件和软件,把很多配置和编程的工作留给了客户,这需要不少专业知识。假定公司有这样的能力,它可以成功配置并运行 Hadoop 任务,就像 New York Times 一样,以相当低廉的价格,在 100 个 Amazon EC2 实例上运行了一个 24 小时的 Hadoop 任务,将内容为 1851 年到 1922 年发表的公开文章的 1100 万张图片转换成了 1.5TB 的 PDF 文档。
Cloudera 将 Amazon 的 MapReduce 服务又超正确的方向上推进了一步,推出了 CDH3 ,这是一个调优过的 Hadoop AMI,包含很多附加软件,可以帮助管理、运行 Hadoop 上的复杂任务,例如:Apache Mahout、Flume、Sqoop、Pig、Oozie、Hive、HBase、ZooKeeper、Whirr 等等,其中大多数都是开源项目。但是目前还是有些问题,仍然需要大量的专业知识,安装、配置一些东西, CDH3 安装指南(PDF)还是有不下 175 页的篇幅是在说明如何从基础开始,对 JDK、CDH3、Snappy 以及系统的其他部分进行配置的。
Microsoft 最近在PASS Summit 2011 上宣布他们会在Windows Azure 和SQL Server 中整合Hadoop-as-a-Service 服务,在2012 年提供给那些在其平台上处理大数据的公司。目前还没有太多的细节,只知道Microsoft 承诺会保持与Apache Hadoop 的兼容性,并且将代码贡献给开源项目。他们还提供了一个基于Sqoop 的 SQL Server-Hadoop Connector ,这让 SQL 数据表与 Hadoop 的 HDFS 之间的双向数据传输成为可能,因为 Hadoop 需要将数据保存在自己的文件系统中以保证能够高效地处理大量的数据。
IBM 也发布了自己的产品,使用 IBM InfoSphere BigInsights 软件,在SmartCloud Enterprise 上运行Hadoop 。 BigInsights 有两个版本,基础版是免费的,非常适合项目评估,企业版用于生产环境。IBM 的解决方案是迄今为止看起来最为成熟的,基于 Watson 技术,这是一个 AI 系统,它打败了两名今年的 Jeopardy! 最佳选手(译注:Jeopardy! 是美国的一个电视智力竞猜节目,比赛问题内容涵盖多个方面,1964 年开播至今)。Watson 并非在大集群上运行 Hadoop 来回答问题,而是包含了超过 100 项技术来“分析自然语言,识别源数据,发现并生成假设,寻找证据并评分,对假设做合并和分级”。因此,这并不仅仅是一个运行大数据任务的平台,它还提供了发现数据并解释它的能力,这是处理问题的过程中最复杂的部分之一。
另一个值得一提的解决方案是 EMC Greenplum Analytics Workbench ,一个 1000+ 物理节点的集群在运行 Hadoop 集成测试,是由 EMC 及 Intel、Mellanox Technologies、Micron、Seagate、SuperMicro、Switch 和 VMware 这些合作伙伴一同推出的。 Greenplum 并不提供 Hadoop-as-a-Service,而是提供了一个超过 10000 虚拟节点和 24 PB 存储容量的平台,用于对 Hadoop 本身进行测试。
Hortonworks 公司(由 Yahoo! 和 Benchmark Capital 于 2011 年 7 月联合创建),宣布了一款基于 Hadoop 的数据平台(Hortonworks Data Platform)的技术预览版。该公司雇佣了众多 Hadoop 项目的核心人员欲以提供相应的支持和培训。
Hadoop 0.20.205 之外,HDP 1.0 还将若干开源项目包含其中,用来增强其平台自身的管理能力,诸如:Ambari,一款开源的安装和管理系统。HCatalog,一个元数据管理系统,此外还有一些常见的与 Hadoop 平台相结合使用的,Pig、Hive、HBase 及 Zookeeper 等。在接下来的几周里,Hortonworks 计划发布基于 Hadoop 0.23 的 HDP 2.0 版本,该版本的 Hadoop 实现了下一代的 MapReduce 。
在激烈的市场环境中,与其他竞争者相比 Hortonworks 有着自己的优势。出身于名门 Yahoo!,Hortonworks 拥有着许多 Hadoop 架构师和源代码贡献者,这些源代码贡献者以前均效力于 Yahoo!,而且已经为 Apache Hadoop 项目贡献了超过 80% 的源代码,Hortonworks 这样说道。这些工程师同时也为分布式领域的一些其他项目(如 HCatalog、Ambari 和 Pig 等)做出了贡献,此外,在 Yahoo! 还都曾参与过在 4 万台服务器规模集群中运行 Hadoop 的经验。
正如李明(Nisa)在 InfoQ《大数据时代的创新者们》一文中所说" Hadoop 是大数据时代数据处理的首选":
脱胎于 Google MapReduce 的 Hadoop 凭借其开源和易用的特性,很快成为了大数据时代的最耀眼的主角。目前,Hadoop 已经成为大数据生态环境中不可或缺的一环,是拥有海量数据处理需求的公司的标准配置,许多商业创新和产品创新也都是围绕着 Hadoop 展开的。
虽然 Yahoo 是 Hadoop 最大的贡献者,也进行了 Hadoop 的商业化,但却没法阻止其他的颇具实力的竞争者进入这个前途无限的领域。 Cloudera 便是其中最耀眼的一个。且不说联合创始人中有 Facebook 和 Google 的精英们,就连 Hadoop 的创始人 Doug Cutting 也从 Yahoo 离职加入了 Cloudera,这一举动当时在业界还引起了不小的震动。Cloudera 最开始的模式是帮助企业管理数据,后来则转型为软件厂商。他们推出的软件发布包可以帮助企业更方便地搭建以 Hadoop 为中心的数据管理平台。Cloudera 也是通过技术支持、培训和咨询等付费服务来盈利的,目前融资已达 3600 万美元。
如果说 Cloudera 是依靠其华丽的精英团队来吸引客户的话,那么 MapR 则是通过过硬的产品来让业界认识到他们的价值。据称,经过 MapR 改造的 Hadoop 的速度可达原来的 3 倍。对于 Hadoop 的 MapReduce 模式,相信现在基本上已经没人提出质疑了,然而大家更关心的是,这玩意还能不能更快,MapR 则很完美地回答了这个问题。EMC 也宣布在一些产品使用 MapR 版本的 Hadoop,而 MapR 也刚刚完成了 2000 万美元的融资。
除了速度以外,Hadoop 的易用性也是一个用户所关心的问题。虽然相比较其他的框架而言,Hadoop 已经简化了许多使用 MapReduce 技术时所需要做的工作,但是对于终端用户而言可能还算不得十分友好。近日宣布完成 570 万美元 A 轮融资的海量数据管理软件商 Platfora ,就在试图解决这个问题。Platfora 旨在提供一个更为友好且更具操作性的用户界面,而且这个产品可以兼容包括 Cloudera 和 MapR 在内的各个 Hadoop 版本,能够大大降低使用 Hadoop 的门槛,让更多的公司体验到 Hadoop 的技术优势。
不仅仅是 Hadoop 本身,就连 Hadoop 的周边也不乏成功的创新者。 AsterData 已经成功地被老牌数据仓库厂商 TeraData 以 2.63 亿美元收购,他们的核心技术叫做 SQL-to-MapReduce,可以将海量非结构化数据的处理技术和结构化数据的数据仓库技术结合在一起。而这种高速处理海量非结构化数据的能力,恰恰是传统数据仓库的公司所欠缺的,这也是为什么 TeraData 肯花如此大的价钱买下 AsterData 的原因。
在这样一个发展背景下,Hadoop 中国 2011 云计算大会的召开就显得很必要,国内技术社区在 Hadoop 方面的实践应用还有较长的路要走,大会也安排了比较丰富的日程,主题包括:
- Hadoop 生态系统 (Hadoop, Map/Reduce, HDFS, Hive, HBase, ZooKeeper, Chukwa, Avro…) 新功能 / 新特性研发
- 大规模结构化 / 非结构化数据离线或在线处理应用案例分析
- 虚拟化技术在 Hadoop 生态系统中的运用
- 支撑 Hadoop 生态系统的基础设施(数据中心)建设
- NoSQL 系统实现,应用案例,性能评测及系统优化
- Hadoop 生态系统性能评测,profiling,异常处理及性能优化
- Hadoop 生态系统辅助工具(监控、记账、审计、CLI、Web 前端等)
- Hadoop 生态系统安全技术
PyCon 中国 2011 大会
PyCon 中国 2011 大会是由 Python 软件基金会下的 PyCon.Org 授权中国举办的第一次 PyCon China 会议。
乍一想,读者可能觉得 Python 技术社区好像不是很火爆,有什么可说的?的确,相对于新生语言 Dart 以及 Node.js 平台来说,Python 最近的新闻不是很多。不过,这恰恰说明,Python 的发展进入了稳定的青壮年时期,已经低调地在各种场景中发挥着重要的作用。
不要忘记,Python 赢得了 Tiobe 2010 年度语言大奖:
Python 已经成为系统脚本“事实上”的标准(在这个领域,它是 Perl 的后继者),但现在它还应用到了各种不同类型的应用当中。Python 是 Web 开发者热衷的语言,特别是与 Django 框架的结合。由于 Python 易学性,越来越多的大学开始将 Python 作为教学语言了。
最近,微软的开发部门发布了 Python Tools for Visual Studio (PTVS)的 RC 版。除了支持 CPython 与 IronPython 的重构外,此次发布还提供了对 MPI (Message Passing Interface)与 Microsoft HPC (High Performance Computing)的支持。Visual Studio Ultimate 用户还可以使用一款针对 CPython 的分析器。内建的项目模板有:Python/IronPython Console Applications、Python MPI Applications、IronPython with WPF、IronPython with Silverlight Web Page(本质上,它使用了 Python 而非 JavaScript 编写常规的网页)、IronPython with WinForms。Python 开发最重要的方面之一就在于它的可交互性,而 PTVS 直接把一种 Python REPL 集成到了 Visual Studio 中。 REPL 窗口可以供之前提到的几种 Python 变体语言使用,并且支持自动完成、语法突出显示和可视化等。对于习惯于 IPython 所提供的增强版 REPL 的用户,PTVS 支持 IPython 0.11。 对于使用 IronPython 的用户,REPL 支持 Sho。
Python 已经成为 Heroku 的 polygot 平台官方支持的多种语言之一。Python 曾是大家要求 Heroku 提供支持呼声最高的语言,与其同时提供支持的还有 web 框架 Django。Adam 将 Python 看做“静静成功的语言,与 node 这种一直在产生大量喧嚣的有所不同”。他在博客中补充道:
Python 社区有其自身独特之处。在快速前进的创新和勤奋努力的小心之间寻找平衡,这是 Python 的文化。它强调可读性,最小化“魔法代码”,将文档看做第一等大事,并且拥有良好测试、后向兼容的版本发布传统,这在语言核心和其生态系统的开发库上都有体现。它让初学者很容易上手,同时大型项目维护起来也不困难,这使得它覆盖了科学计算、视频游戏、系统自动化和 web 等多个领域。
在 Adam 看来,Python 培养了现代 web 框架的发展,比如 Zope 和 Plone 。这些框架引入的理念有:通过视图模板分离业务和展示逻辑、数据库交互用的 ORM、还有测试驱动开发;早在 Rails 诞生 5 年之前,这些理念就已经体现在 Zope 之中了。它们没有在市场上获得成功,是因为它们比较复杂,学习曲线比较陡峭,远远超越了它们的时代。后来,尽管一开始 Python 社区没有太多介入,Django 以 Rails 强有力竞争者的姿态出现。另一个成功的框架是 Flask ,这是 Python 的一个微型框架,使用 Heroku 的平台作为 beta 版本的一部分。
虽然是低调的成功,但是 Python 技术社区同样需要分享和交流, PyCon 中国 2011 大会提供了这样的平台,来自国内外的技术专家会针对 Python 的各个方面做深入的剖析,其中让人期待的演讲包括:
- Python 游戏开发探索与发现——当前的游戏开发,存在着游戏内容越来越繁杂,服务人数越来越多,市场变化越来越快等现状,导致一款游戏的开发的成本越来越高,风险越来越高,规模也越来越大。这一直是最棘手的问题。如何才能利用 Python 高效的开发速度来降低游戏开发的成本?如何用 Python 架构上万人在线的游戏服务器?如何使用 Python 来快速开发图形和客户端逻辑?Python 在现今的多核体系下是否力不从心?是否"高性能"永远不属于我们讨论的范围?Python 在各个游戏项目中的使用情况如何?
- Python 在豆瓣的应用——Python 是豆瓣网开发的主力语言。从在线应用到离线运算到后台维护,Python 都起着不可替代的作用。本演讲将详细介绍豆瓣网在各个方面是如何应用 Python 的,以及我们的一些经验和教训。
- 易度 PaaS 云开发平台技术内幕——易度 PaaS 是国内第一个基于 Python 语言的企业应用云端开发平台。演讲将分析现有的企业 PaaS 平台,讲述易度是如何利用现有开源技术,依托 python/zope/pyramid 等主要技术来构建这一平台的。
- Python 之于 Webgame 的应用——Python 已经成为了 WebGame 行业的主流编程语言,本演讲将在使用 Python 开发 MMOGs 服务器端的领域上,比如大型 Python 应用的开发模式、高性能 I/O、协程、通信,以及 Python 的优势与缺陷等,与大家分享和交流经验。
更多技术会议和活动预告,请关注 InfoQ 中文站提供的《中国技术社区活动日历表》。
评论