海量数据正在不断生成,对于急需改变自己传统IT架构的企业而言,面对海量数据,如何分析并有效利用其价值,同时优化企业业务已成为现代企业转型过程中不可避免的问题。
作为海量数据处理的一个重要工具——Hadoop也开始受到了越来越多人的关注。第四届Hadoop大会——Hadoop Summit 2011大会6月29日在Santa Clara举行了,备受关注的Yahoo新成立的子公司——Hortonworks在此次大会上亮相,号称比Hadoop快三倍的MapR也亮相了、同时一些新的项目比如HCatalog等也受到了技术人员的关注。我们将此次会议的一些重要信息整理如下,提供给Hadoop的从业者们参考。
三大Hadoop支持商争奇斗艳
Hortonworks——小象变成了大象
Eric Baldeschwieler做了主题演讲,他也是Hortonworks(Yahoo剥离出的专门运营Hadoop的新公司)未来的CEO。Hortonworks公司将专门负责Hadoop的开发和运维。他表示新公司的目标是提供商业上的支持,并为客户提供完整的Apache Hadoop平台。他还表示Cloudera是他们的竞争对手,并且表示两家公司非常相似。(Eric并未提及MapR,也许在他看来,由EMC赞助的MapR至少在开放性上还很难与Hortonworks和cloudera相比较,不过在对Hadoop的支持上,Cloudera、MapR和Hortonworks将是最有力的三个贡献者,从LOGO即可看出,Hadoop已经从小象变成了三只大象)。Cloudera提供他们自己的Hadoop分布式系统基础架构,类似于Apache发布的版本,Hortonworks的目标是提供类似的服务。
此外,Sanjay Radia也谈到了Hadoop对企业的影响,Hortonworks在工作安全性(防止用户数据被别人删除)、服务水平协议(SLA)、可预测性和资源共享调度等方面进行了改善。
MapR——最大处理1010EB数据
MapR——MC Srivas介绍了MapR的算法,以及和Apache Hadoop的不同。MapR的Hadoop Distribution对Hadoop的可靠性、性能和易用方面都做了大量的提升。HDFS可以处理10-50PB的数据,而MapR则可以处理1010EB数据;HDFS的瓶颈是2000节点的集群,而MapR的的处理能力则是10000个节点以上的集群。
在NameNode HA方面,MapR把元数据放在了所有的节点,这样不仅可以scale还可以实现HA,由于元数据很少检索,因此有更多的内存可用于MapReduce处理。另外,MapR与Pig和Oozie兼容,HDFS也完全兼容了NFS协议,支持随机读写功能。
此外,MapR还配备了快照,并号称不会出现SPOF单节点故障,且与现有HDFS的API兼容,因此非常容易替换原有的系统。
目前,MapR M3 Free版本已经提供下载。
Cloudera——3.5版本发布
CLoudera新发布的Enterprise 3.5是此次大会的亮点之一。产品副总裁Charles Zedlewski表示,“最大的变化在于能够让用户在一两分钟内就可以安装和配置Google-like这样的架构”。
据了解,3.5版本能够自动配置、重启服务器、添加删除硬件。另外还有一个活动监视器,整合各组件的用户行为,并提供实时查看活动、活动历史以及工作;同时它还提高了资源和授权的管理,并改善LDAP(Lightweight Directory Access Protocol)系统安全。
Cloudera 3.5提供了10个组件。Charles Zedlewski还表示将进一步增加3到4个CDH的组件,例如压缩算法,利用Google的Snappy加快数据的导入和导出。
免费的Express版已经可以下载,这个版本可自动安装和配置50个节点。
Kafka、Haystack、HCatalog——海量数据处理的未来
Linkedln——只有7000行代码的Kafka
Linkedln作为最近最热的社交网站,受到了与会者们的重点关注。开源的Kafka是Linkedln的开源消息队列——包括数据跟踪、记录、指标、消息和队列。仅仅由7000行Scala编写,据了解,Kafka每秒可以生产约25万消息(50 MB),每秒处理55万消息(110 MB)。
在kafka的核心思路中,不需要在内存里缓存数据,因为操作系统的文件缓存已经足够完善和强大,只要不做随机写,顺序读写的性能是非常高效的。kafka的数据只会顺序append,数据的删除策略是累积到一定程度或者超过一定时间再删除。Kafka另一个独特的地方是将消费者信息保存在客户端而不是MQ服务器,这样服务器就不用记录消息的投递过程,每个客户端都自己知道自己下一次应该从什么地方什么位置读取消息,消息的投递过程也是采用客户端主动pull的模型,这样大大减轻了服务器的负担。Kafka还强调减少数据的序列化和拷贝开销,它会将一些消息组织成Message Set做批量存储和发送,并且客户端在pull数据的时候,尽量以zero-copy的方式传输,利用sendfile(对应java里的FileChannel.transferTo/transferFrom)这样的高级IO函数来减少拷贝开销。可见,kafka是一个精心设计,特定于某些应用的MQ系统,这种偏向特定领域的MQ系统我估计会越来越多,垂直化的产品策略值的考虑。
Facebook的Haystack
在Karthic Ranganathan的演讲中,FaceBook每月有150亿条信息,但不包括短信和电子邮件,大约有14TB的数据。此外还有1200亿聊天数据,大约有25TB,每月总计会有300TB的数据生成。Facebook使用HBase满足他们的在小消息(small message)、元数据、和搜索引擎的需求。
据了解,Facebook使用HBase是因为它的高吞吐量写入简单并具有横向扩展的能力。Facebook使用被称之为“Haystack”的系统存储照片、大型邮件和附件,而“Haystack”的配置是16个内核,12个1TB硬盘和48GB内存(HBase占用24GB)。
此外Fackbook正在提高NameNode的高可用性和使用第二个NameNode,并使用闪存来提高性能。
IBM的Watson
Anant Jhingran是IBM的CTO,他重点介绍了IBM的Watson的分布式计算原理,实际上,尽管MapReduce被应用到了Watson之中,但IBM并未对此进行大规模的宣传。(据现场目击者描述,IBM只是介绍了Watson到底有多么强大,但到底是如何强大,IBM并未做出太多的描述)据了解,Watson的知识是来源于200万个网页数据,总共2-5TB的数据量(即时性),而这一切,base在使用3000-4000瓦电量的基础上(节能性)。他还指出,用户界面和人工智能对于应用程序来说同样重要。
HCatalog——解决HDFS存储瓶颈
HCatalog是Apache新的一个开源项目,由Yahoo刚成立的Hortonworks提交。HCatalog主要用于解决数据存储、元数据的问题。(主要解决HDFS的瓶颈),它提供了一个地方来存储数据的状态信息,这使得数据清理和归档工具可以很容易的进行处理。
HCatalog值得期待,因为用户不再再需要担心文件和目录的问题。HCatalog还允许数据生产者改变写数据操作,同时还支持旧格式数据,对开发人员而言,HCatalog目前提供了一个API,用于帮助数据存储开发人员读取和写入不同的格式数据。
从公布的信息来看,Pig和Hive已经开始集成HCatalog,而Hortonworks正打算增加HCatalog对HBase的支持。
Giraph——大规模图像处理
大规模图形算法——Giraph。大规模的图形算法是本次会议的一个热点,Avery Ching谈到了Giraph——基于Hadoop的大规模图像处理。Yahoo过去使用MPI处理图形,可惜MPI没有容错功能,而作为一个迭代的图形处理库,Giraph具有容错和动态调节的功能。
实际上,雅虎的Webmap是一个用来计算网页间链接关系,和基于链接关系的feature的算法。最主要的部分是link inversion和类似page rank的迭代算法,Giraph主要是webmap中相关算法的系统化框架化。
Hadoop in CBSi
令人惊讶的是,作为一个媒体集团,CBSi居然也拥有自己的MapReduce技术,并支持Chukwa、Pig、Hive、HBase、Cascading、Sqoop、Oozie等等。CBSi用了100个节点、500TB磁盘来处理2.35亿个媒体文件。CBSi的Hadoop平台主要功能是数据挖掘、实验和对广告系统优化。而它正希望添加Oozie、Azkaban、HCatalog以及Hama(graph processing)到它的Hadoop平台之上。