【文章摘要】据悉,淘宝Hadoop集群拥有2860个节点,清一色基于英特尔处理器的x86服务器,其总存储容量50PB,实际使用容量超过40PB,日均作业数高达15万,为淘宝网的日常运营做出了关键支撑。对了,它还有一个很美丽的名字:“云梯”。
当下中国超大规模的单Master节点Hadoop集群在哪里?在淘宝。
据悉,淘宝Hadoop集群拥有2860个节点,清一色基于英特尔处理器的x86服务器,其总存储容量50PB,实际使用容量超过40PB,日均作业数高达15万,为淘宝网的日常运营做出了关键支撑。对了,它还有一个很美丽的名字:“云梯”。
近日,《网络世界》记者有幸采访到了阿里集团技术共享平台核心系统研发部海量数据技术专家罗李。作为淘宝“云梯”集群元老级创建者,以及目前的负责人,他详细讲解了Hadoop在淘宝的应用与发展。
“云梯”的前世今生
“在2008年之前,淘宝内部一些业务团队,纷纷搭建了自己的Hadoop集群,但规模都很小,出了问题也都各自解决。”罗李说,“考虑到淘宝的业务确实对分布式计算系统有需要,再加上这种分散模式小集群的资源利用率不高,整个集团就决定建立一个统一的、大的分布式计算集群,为各业务线服务。”
至于为什么选择Hadoop,罗李表示,当时能够达到商用水准的分布式计算技术也只有Hadoop。不过,他说:“当时整个淘宝并没有一个对Hadoop内核真正了解的人,后来是抽调了雅虎中国的核心技术人员,在2008年10月成立了专门团队。”
“2008年我也是刚进淘宝,就直接被分配到这个团队,那时整个团队包括我才四个人。到2009年,我们的‘云梯’集群刚搭起来的时候,才300台规模。”罗李告诉记者。
短短不过四年时间,“云梯”集群已经扩张到近2900台规模,成为中国规模最大的单Master节点Hadoop集群。而伴随“云梯”集群成长的罗李,也成为了中国当下为数不多的、真正精通Hadoop的高级技术人才。
谈起“云梯”集群名字的由来,这竟是一个有几分“无心插柳柳成行”意味的故事。原来,出于安全性等多重考虑,当时阿里集团高层是决心自主研发一套有独立自主知识产权的分布式计算系统,即后来代号为“飞天”的大规模分布式计算系统。而罗李他们研发的这个基于开源Hadoop技术的集群,最初只是被定位成一个临时的、有过渡性质的系统,目的是让淘宝的业务人员提前熟悉和使用分布式计算系统,待“飞天”成熟后再将业务移植过来。
“我们一开始就知道我们是为他们(‘飞天’系统)铺路的,所以,既然他们叫‘飞天’,那我们就叫‘云梯’好了,隐含奉献的意思。”罗李说。
只是,世事难料,大家都没有想到,四年后的今天大数据和Hadoop会如此之火,发展前景堪称一片光明,而淘宝凭借“云梯”集群也成为该技术领域的应用先锋。当然,阿里集团一直在坚持研发“飞天”集群,并取得了阶段性的成果。因此,在阿里集团内部,其实是“飞天”和“云梯”两大分布式计算系统并立的局面。
在应用中发展
从2009年的300台发展到目前2860台,这绝不只是一个机器简单堆叠的过程,而是耗费了淘宝研发人员无数的智慧与汗水。Hadoop技术本身在淘宝也获得了长足的发展。
淘宝对Hadoop进行深度重构的最重要一次实践,当属该公司根据自身的业务需求,开发了自己的Hadoop分支——ADFS。
据介绍,ADFS主要解决的是HDFS NameNode在设计上存在单点故障、内存瓶颈(因为所有的数据都是存入内存,长期以往,NameNode必将遭遇内存扩展瓶颈),以及集群重启时间过长,期间无法对集群进行写操作等问题。
而ADFS原理简单地说就是将非热点数据存入“数据库”,而非NameNode的内存。罗李说:“由于数据存放在数据库里,只要数据库‘不挂’就没有问题,NameNode的单点故障问题由此解决,同时也一并解决了内存瓶颈。系统升级不需要再停机,重启时间也由原来的一两个小时缩短到5分钟之内。总之,ADFS能提供10亿文件/目录的管理能力,其稳定性、性能和可维护性不输于甚至优于现有系统。”此外,值得一提的是,淘宝已经将ADFS开源在GitHub之上。
大数据实践:探秘淘宝Hadoop集群
另一大改进,就是为减少磁盘使用量而实施了HDFS Raid技术。
“HDFS出于可靠性考虑,都是将一份数据存成三份,这意味着1GB的数据占用了3GB的存储容量,可靠性是有了,但经济性并不好。HDFS Raid就相当于Raid 10,原来1GB的数据所需要的空间从原来的3GB降到2.4GB,对我们来讲,就是上百万资金的节省,而可靠性却并没有丧失。”罗李说。
不过,罗李表示,HDFS Raid技术来源于Facebook,他们是在Facebook提供的版本上做了些改进。
此外,还一个无法被描述成“项目”的改进就是持续不断地“优化”。“虽然Hadoop的优势之一就是不够了就可以加机器,但加机器意味着更大的存储容量、更大的计算需求和更大的网络流量,对主节点都会带来新的压力,因此,每次在扩展之前,我们都要对系统进行评估,都需要优化代码。”罗李说。
罗李颇为骄傲地告诉记者,由于不断地对Hadoop内核进行优化,淘宝版本的Hadoop在性能上“比一些社区的Hadoop版本高出30%~50%”。
“毕竟,我们这么大的规模作支撑。因为系统的性能瓶颈只有在一定规模下才能暴露,而我们甚至将Java内核的漏洞都跑出来了。”罗李说。
不过,罗李坦承,自从今年七月份新的“云梯”版本上线之后,他们发现通过优化代码提高系统性能的空间越来越小了。“所以,我们开始和运维团队一起合作,打算去从硬件层面下手,例如购买更高性能的CPU、闪存、万兆网卡等。事实上,我们现在最紧缺的资源就是CPU和磁盘。”他说。
同时,罗李指出,对很多公司而言,在规模不是特别大的情况下,通过购买更强劲的硬件来提高集群性能也是一个好办法,而且其成本不一定比维持一支技术团队要高。而硬件产业链的上游厂商英特尔则公开表示,英特尔未来首要任务之一,就是要打造适用于大数据应用的“芯”,该公司今年三月发布的全新至强处理器E5产品家族,就能为分布式计算带来更优性能、能效、可扩展性和可管理性。同时,英特尔还将帮助合作伙伴打造可承载大数据应用的基础设施。
关于“云梯”集群未来的发展方向,罗李表示,短期内是存储结构和技术进行优化部署ADFS,并且开发HDFS NameNode HA技术,而长期来说,“云梯”将演变成多Master节点Hadoop集群。
如今,Hadoop之火有目共睹,那什么样的公司适合采尝试这一新兴技术?罗李回答道:“还应该是从业务角度出发。有海量数据需要处理,并且计算模型并不太复杂,对数据进行处理的过程可以分成一个个小的步骤去完成,就可以尝试Hadoop 技术。”
相关推荐
### 大数据时代:高性能Hadoop集群与应用案例 #### 一、Hadoop概述与重要性 随着信息技术的快速发展,数据量呈爆炸性增长趋势,这不仅为数据分析带来了前所未有的机遇,同时也对数据处理能力提出了更高要求。...
大数据管理与监控:Ambari:Hadoop集群管理基础.docx
标题中的“大数据教程之搭建Hadoop集群.zip_大数据环境搭建hadoop”暗示了这是一个关于如何在大数据环境中构建Hadoop集群的教程。Hadoop是Apache软件基金会的一个开源项目,主要用于处理和存储海量数据,其分布式...
大数据处理框架:Hadoop:Hadoop集群部署与管理.docx
【大数据技术基础培训-Hadoop集群管理与维护】 大数据技术已经成为当今企业处理海量数据的核心工具,而Hadoop作为开源的大数据处理框架,其集群管理和维护是确保数据处理效率和系统稳定性的关键。本讲座将深入探讨...
数据集成工具:Talend:Talend与大数据集成:Hadoop与Spark.docx
**大数据技术:Hadoop 框架详细介绍** 在当今信息化社会,海量的数据正在不断涌现,传统的数据处理方式已经无法满足需求。此时,大数据技术应运而生,其中Hadoop框架作为开源的分布式计算平台,成为了大数据处理的...
【大数据技术基础实验报告-Linux环境下hadoop集群的搭建与基本配置】 实验主要涉及了大数据技术中的基础概念,包括Linux操作系统、Java环境、SSH服务、Hadoop集群的搭建与配置。以下是具体步骤和知识点的详细解释:...
【大数据技术基础实验报告——Hadoop集群的使用和管理】 Hadoop是Apache开源项目中一个分布式计算框架,它为处理和存储大规模数据提供了强大的支持。本实验报告将深入探讨Hadoop集群的启动、管理和使用,以及如何...
本篇将深入探讨Hadoop这一大数据处理框架在淘宝网中的应用,以及其在数据分析领域的实践。 一、Hadoop基本概念 Hadoop是Apache基金会开发的一个开源项目,主要用于大规模数据集的分布式计算。其主要包含两个核心...
### 大数据集成方案:Oracle+Hadoop,R+Hadoop等组合的数据集成实战案例 #### 一、大数据集成背景与需求 随着信息技术的发展,数据量呈爆炸式增长,企业面临着如何有效处理海量数据的挑战。传统的数据处理方法难以...
大数据存储与处理技术 hadoop技术原理及应用 hadoop集群搭建文档-虚拟机版本 共9页.pdf
川大IT企业实训-拓思爱诺大数据学习资料,第一天Hadoop集群搭建
2. **分布式计算**:MapReduce是一种编程模型,用于在Hadoop集群上并行处理和生成大型数据集。 3. **可扩展性**:Hadoop可以处理从GB到PB级别的数据,可以在集群中增加更多的节点来扩展存储和计算能力。 4. **可靠...
大数据处理框架:Hadoop:大数据与Hadoop简介.docx
在大数据领域,Hadoop是一个关键的开源框架,用于存储和处理海量数据。本教程将带你逐步构建一个Hadoop集群,以便充分利用分布式计算的优势。我们首先从Hadoop的基础知识开始。 Hadoop是由Apache软件基金会开发的一...
"大数据实践-Hadoop集群安装与配置" 本文档旨在指导用户实践Hadoop集群的安装和配置,涵盖了从环境搭建到Hadoop集群的安装和配置的所有步骤。通过实践本项目,用户可以初步掌握Hadoop集成环境的搭建和配置。 一、...