探秘淘宝Hadoop集群

合集下载

Hadoop集群的三种方式

Hadoop集群的三种方式

Hadoop集群的三种⽅式1,Local(Standalone) Mode 单机模式$ mkdir input$ cp etc/hadoop/*.xml input$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'$ cat output/*解析$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'input 夹下⾯的⽂件:capacity-scheduler.xml core-site.xml hadoop-policy.xml hdfs-site.xml httpfs-site.xml yarn-site.xml bin/hadoop hadoop 命令jar 这个命令在jar包⾥⾯share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar 具体位置grep grep 函数input grep 函数的⽬标⽂件夹output grep 函数结果的输出⽂件夹'dfs[a-z.]+' grep 函数的匹配正则条件直译:将input⽂件下⾯的⽂件中包含 'dfs[a-z.]+' 的字符串给输出到output ⽂件夹中输出结果:part-r-00000 _SUCCESScat part-r-00000:1 dfsadmin在hadoop-policy.xml 存在此字符串2,Pseudo-Distributed Operation 伪分布式在 etc/hadoop/core.site.xml 添加以下属性<configuration><property><name>fs.defaultFS</name><value>hdfs://:8020</value> 是主机名,已经和ip相互映射</property>还需要覆盖默认的设定,mkdir -p data/tmp<property><name>hadoop.tmp.dir</name><value>/opt/modules/hadoop-2.5.0/data/tmp</value> 是主机名,已经和ip相互映射</property>垃圾箱设置删除⽂件保留时间(分钟)<property><name>fs.trash.interval</name><value>10080</value></property></configuration>etc/hadoop/hdfs-site.xml: 伪分布式1个备份<configuration><property><name>dfs.replication</name><value>1</value></property>配置从节点<property><name>node.secondary.http-address</name><value>主机名:50090</value></property></configuration>格式化元数据,进⼊到安装⽬录下bin/hdfs namenode -format启动namenode,所有的命令都在sbin下,通过ls sbin/ 可以查看sbin/hadoop-daemon.sh start namenode hadoop 的守护线程启动(主数据)sbin/hadoop-daemon.sh start datanode 启动datanode(从数据)nameNode都有个web⽹页,端⼝50070创建hdfs ⽂件夹,创建在⽤户名下⾯bin/hdfs dfs -mkdir -p /user/chris查看⽂件夹bin/hdfs dfs -ls -R / 回调查询本地新建⽂件夹mkdir wcinput mkdir wcoutput vi wc.input创建wc.input⽂件,并写⼊内容hdfs⽂件系统新建⽂件夹bin/hdfs dfs -mkdir -p /user/chris/mapreduce/wordcount/input本地⽂件上传hdfs⽂件系统bin/hdfs dfs -put wcinput/wc.input /user/chris/mapreduce/wordcount/input/在hdfs⽂件系统上使⽤mapreduce$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /user/chris/mapreduce/wordcount/input /user/chris/mapreduce/wordcount/output红⾊代表:读取路径蓝⾊代表:输出路径所以mapreduce的结果已经写到了hdfs的输出⽂件⾥⾯去了Yarn on a Single Node/opt/modules/hadoop-2.5.0/etc/hadoop/yarn-site.xml 在hadoop的安装路径下<configuration><property><name>yarn.resourcemanager.hostname</name><value></value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>yarn 的配置已经完成在同⼀⽬录下slave⽂件上添加主机名或者主机ip,默认是localhostyarn-env.sh 和 mapred-env.sh把JAVA_HOME 更改下,防⽌出错export JAVA_HOME=/home/chris/software/jdk1.8.0_201将mapred-site.xml.template 重命名为mapred-site.xml,同时添加以下配置<configuration><property><name></name><value>yarn</name></property></configuration>先将/user/chris/mapreduce/wordcount/output/删除再次执⾏$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jarwordcount /user/chris/mapreduce/wordcount/input /user/chris/mapreduce/wordcount/output伪分布式执⾏完毕,mapreduce 执⾏在了yarn 上3,完全分布式基于伪分布式,配置好⼀台机器后,分发⾄其它机器step1: 配置ip 和 hostname 映射vi /etc/hosts192.168.178.110 hella-hadoop192.168.178.111 hella-hadoop02192.168.178.112 hella-hadoop03同时在window以下路径也得设置C:\Windows\System32\drivers\etc\hosts192.168.178.110 hella-hadoop192.168.178.111 hella-hadoop02192.168.178.112 hella-hadoop03具体可参考linux ip hostname 映射step2:部署(假设三台机器)不同机器配置不同的节点部署:hella-hadoop hella-hadoop02 hella-hadoop03HDFS:NameNodeDataNode DataNode DataNodeSecondaryNameNodeYARN:ResourceManagerNodeManager NodeManager NodeManager MapReduce:JobHistoryServer配置:* hdfshadoop-env.shcore.site.xmlhdfs-site.xmlslaves*yarnyarn-env.shyarn-site.xmlslaves*mapreducemapred-env.shmapred-site.xmlstep3:修改配置⽂件core.xml<configuration><property><name>fs.defaultFS</name><value>hdfs://:8020</value></property><property><name>hadoop.tmp.dir</name><value>/opt/app/hadoop-2.5.0/data/tmp</value></property><property><name>fs.trash.interval</name><value>10080</value></property></configuration>hdfs-site.xml<configuration><property><name>node.secondary.http-address</name><value>:50090</value></property></configuration>slavesyarn-site.xml<configuration><property><name>yarn.resourcemanager.hostname</name><value></value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!--NodeManager Resouce --><property><name>yarn.nodemanager.resource.memory-mb</name><value>4096</value></property><property><name>yarn.nodemanager.resource.cpu-vcores</name><value>4</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property><property><name>yarn.log-aggregation-retain-seconds</name><value>640800</value></property></configuration>mapred-site.xml<configuration><property><name></name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>:19888</value></property></configurationstep4:集群的配置路径在各个机器上要⼀样,⽤户名⼀样step5: 分发hadoop 安装包⾄各个机器节点scp -p 源节点⽬标节点使⽤scp 命令需要配置ssh ⽆密钥登陆,博⽂如下:step6:启动并且test mapreduce可能会有问题No route to Host 的Error,查看hostname 以及 ip 配置,或者是防⽕墙有没有关闭防⽕墙关闭,打开,状态查询,请参考以下博⽂:4,完全分布式+ HAHA全称:HDFS High Availability Using the Quorum Journal Manager 即 HDFS⾼可⽤性通过配置分布式⽇志管理HDFS集群中存在单点故障(SPOF),对于只有⼀个NameNode 的集群,若是NameNode 出现故障,则整个集群⽆法使⽤,知道NameNode 重新启动。

林子雨大数据技术原理与应用第二章课后题答案

林子雨大数据技术原理与应用第二章课后题答案

大数据第二章课后题答案黎狸1. 试述Hadoop 和谷歌的MapReduce 、GFS 等技术之间的关系。

Hadoop 是Apache 软件基金会旗下的一-个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。

①Hadoop 的核心是分布式文件系统( Hadoop Ditributed FileSystem,HDFS ) 和MapReduce 。

②HDFS是对谷歌文件系统( Google File System, GFS ) 的开源实现,是面向普通硬件环境的分布式文件系统,具有较高的读写速度、很好的容错性和可伸缩性,支持大规模数据的分布式存储,其冗余数据存储的方式很好地保证了数据的安全性。

③MapReduce 是针对谷歌MapReduce 的开源实现,允许用户在不了解分布式系统底层细节的情况下开发并行应用程序,采用MapReduce 来整合分布式文件系统上的数据,可保证分析和处理数据的高效性。

2. 试述Hadoop 具有哪些特性。

Hadoop 是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性。

①高可靠性。

采用冗余数据存储方式,即使一个副本发生故障,其他副本也可以保证正常对外提供服务。

②高效性。

作为并行分布式计算平台,Hadoop 采用分布式存储和分布式处理两大核心技术,能够高效地处理PB 级数据。

③高可扩展性。

Hadoop 的设计目标是可以高效稳定地运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点。

④高容错性。

采用冗余数据存储方式,自动保存数据的多个副本,并且能够自动将失败的任务进行重新分配。

⑤成本低。

Hadoop 采用廉价的计算机集群,成本比较低,普通用户也很容易用自己的PC 搭建Hadoop 运行环境。

⑥运行在Linux 平台上。

Hadoop 是基于Java 语言开发的,可以较好地运行在Linux 平台上。

林子雨大数据技术原理与应用第二章课后题答案

林子雨大数据技术原理与应用第二章课后题答案

林子雨大数据技术原理与应用第二章课后题答案-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII大数据第二章课后题答案黎狸1.试述Hadoop和谷歌的MapReduce、GFS等技术之间的关系。

Hadoop是Apache软件基金会旗下的一-个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。

①Hadoop 的核心是分布式文件系统( Hadoop Ditributed FileSystem,HDFS )和MapReduce。

②HDFS是对谷歌文件系统( Google File System, GFS )的开源实现,是面向普通硬件环境的分布式文件系统,具有较高的读写速度、很好的容错性和可伸缩性,支持大规模数据的分布式存储,其冗余数据存储的方式很好地保证了数据的安全性。

③MapReduce 是针对谷歌MapReduce的开源实现,允许用户在不了解分布式系统底层细节的情况下开发并行应用程序,采用MapReduce 来整合分布式文件系统上的数据,可保证分析和处理数据的高效性。

2.试述Hadoop具有哪些特性。

Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性。

①高可靠性。

采用冗余数据存储方式,即使一个副本发生故障,其他副本也可以保证正常对外提供服务。

②高效性。

作为并行分布式计算平台,Hadoop采用分布式存储和分布式处理两大核心技术,能够高效地处理PB级数据。

③高可扩展性。

Hadoop的设计目标是可以高效稳定地运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点。

④高容错性。

采用冗余数据存储方式,自动保存数据的多个副本,并且能够自动将失败的任务进行重新分配。

⑤成本低。

Hadoop采用廉价的计算机集群,成本比较低,普通用户也很容易用自己的PC搭建Hadoop运行环境。

hadoop 集群 工作原理

hadoop 集群 工作原理

hadoop 集群工作原理【最新版】目录1.Hadoop 集群的概念与组成2.Hadoop 集群的工作原理3.Hadoop 集群的搭建与优化4.Hadoop 集群在实际应用中的重要性正文一、Hadoop 集群的概念与组成Hadoop 集群是一个分布式计算框架,主要由两部分组成:Hadoop 核心和 Hadoop 生态系统。

Hadoop 核心包括了 HDFS(分布式文件系统)和YARN(资源调度管理框架),它们共同构成了 Hadoop 集群的基本结构。

Hadoop 生态系统则包括了各种与 Hadoop 核心相互配合的数据处理组件,例如 MapReduce、Hive、Pig 等。

二、Hadoop 集群的工作原理Hadoop 集群的工作原理主要基于数据分布式处理和任务并行执行。

首先,通过 HDFS 将数据存储在集群中的多台服务器上,实现数据的分布式存储。

然后,通过 YARN 将数据处理任务分解为多个小任务,并将这些任务分配给集群中的不同服务器进行并行执行。

最后,将所有小任务的处理结果进行合并,得到最终的计算结果。

三、Hadoop 集群的搭建与优化搭建 Hadoop 集群需要考虑多个方面,例如服务器的选择、网络的配置、Hadoop 组件的安装和配置等。

在搭建过程中,需要避免一些常见的坑,例如硬盘容量不足、内存分配不合理等问题。

在 Hadoop 集群搭建完成后,还需要对其进行优化,以提高集群的性能和吞吐量。

这包括对Hadoop 组件的参数进行调整、对集群的资源分配进行优化等。

四、Hadoop 集群在实际应用中的重要性随着大数据时代的到来,数据量呈现出爆炸式增长,传统的数据处理手段已经无法满足人们对于数据的需求。

Hadoop 集群作为一种分布式计算框架,能够高效地运行在低廉的机器上,用于大数据的处理分析。

淘宝TFS的nameserver的hadoop设计

淘宝TFS的nameserver的hadoop设计

淘宝TFS的nameserver的hadoop设计Nameserver HA 容灾方案结构Nameserver 的容灾采用ha结构,即两台机器互为热备,同时运行时,一台为主,一台为备,主绑定到对外vip,提供服务;当主机器宕机后,迅速将vip绑定当备机,备机切换为主,提供服务。

结构中有两个NameServer, 在同一时刻,只有一个为主,一个为备。

主NameServer是对外提供服务的机器,并接管了对外服务的ip地址;备NameServer维护元数据状态,一旦主NameServer停止服务,会马上将自身切换为主,绑定对外ip地址,继续提供服务。

职责NameServer(master) : 1. 提供对外服务2. 管理所有DataServers, blocks的复制,迁移,紧缩以及nameserver的其他功能。

3. 增量同步元数据变更信息给NameServer备机。

NameServer(slave):1. 维护DataServers心跳信息2. 接受主NameServer同步的元数据DataServer:1. 接受外部请求2. 同时给主备Nameserver汇报心跳HeartAgent监控NameServer的服务情况,发现主Ns挂掉以后,将备切换为主。

问题为什么采用一主一备的结构客户端只配置了一个vip地址,ha通过绑定这个地址到主ns提供服务。

同一时间,只能有一个ns提供服务。

Ns需要保证一个block同时只能有一个client在更新,需要生成唯一的lease。

扩展目前这种主备结构并不是最优方案,理想的nameserver容灾应该采用nameserver集群来解决,可以考虑实现一个chubby 集群,或是类似与cassandra的去中心化结构。

流程启动过程StartRead fsimageCan be Master?NoMaster exist?YesNotify MasterYesMaster exist?NoYesFatal ErrorAccept ds heartbeat NoMark self as MasterNotify MasterReady to SyncAccept ds heartbeat Handle Sync MetaData LoopHandle request Loop作为主的启动流程:1. Ns起来以后,首先检查自己是否能成为一个Master, 按上一节的说法,主要是检查vip是否绑定在本机(.)2. 如果发现可以做Master, 则要检查另外一台机器是否认为自己是Master,3. 如果对方认为自己是,这个肯定是出问题了,必须马上告警并退出。

简述启动和关闭hadoop集群的方式以及使用的相关指令。

简述启动和关闭hadoop集群的方式以及使用的相关指令。

简述启动和关闭hadoop集群的方式以及使用的相关指令。

Hadoop是一个开源的分布式数据处理框架,通常用于存储和处理大规模的数据集。

启动和关闭Hadoop集群是使用Hadoop框架的关键步骤。

本文将一步一步回答如何启动和关闭Hadoop集群,以及使用的相关指令。

一、Hadoop集群启动方式Hadoop集群可以通过两种方式进行启动:单节点启动和多节点启动。

1. 单节点启动单节点启动适用于在本地主机运行Hadoop的开发和测试环境。

在单节点启动方式下,所有Hadoop的组件都运行在一台主机上。

以下是单节点启动Hadoop集群的步骤:1. 安装Java开发环境在启动Hadoop之前,首先需要在机器上安装Java开发环境。

Hadoop依赖于Java来运行。

可以从Oracle官方网站下载并安装Java Development Kit(JDK)。

2. 配置Hadoop环境下载Hadoop的最新版本,并解压到本地目录。

接下来,需要配置Hadoop的环境变量。

打开Hadoop的安装目录,在conf目录下找到hadoop-env.sh文件。

通过编辑这个文件,设置正确的JAVA_HOME 路径。

3. 配置Hadoop集群在启动单节点Hadoop集群之前,需要配置Hadoop集群的相关参数。

打开conf目录下的core-site.xml和hdfs-site.xml文件,分别进行配置。

主要包括配置Hadoop文件系统的URL,配置Hadoop的本地文件夹路径,以及配置Hadoop的端口号等。

4. 格式化Hadoop文件系统在单节点模式下,需要手动初始化Hadoop文件系统。

在Hadoop 的安装目录下,使用命令`bin/hdfs namenode -format` 来格式化文件系统。

5. 启动Hadoop集群在Hadoop的安装目录下,使用命令`sbin/start-all.sh`来启动Hadoop集群。

这个命令会启动Hadoop的所有组件,包括NameNode,DataNode,SecondaryNameNode,以及JobTracker 等。

基于Hadoop数据分析系统设计毕业论文

基于Hadoop数据分析系统设计毕业论文

基于Hadoop数据分析系统设计毕业论文目录第一章某某企业数据分析系统设计需求分析 (1)第二章HADOOP简介 (2)第三章HADOOP单一部署 (5)3.1 H ADOOP集群部署拓扑图 (5)3.2 安装操作系统C ENTOS (6)3.3 H ADOOP基础配置 (12)3.4 SSH免密码登录 (16)3.5 安装JDK (17)3.6 安装H ADOOP (17)3.6.1安装32位Hadoop (18)3.6.2安装64位Hadoop (27)3.7 H ADOOP优化 (31)3.8 H IVE安装与配置 (32)3.8.1 Hive安装 (32)3.8.2 使用MySQL存储Metastore (32)3.8.3 Hive的使用 (35)3.9 H BASE安装与配置 (36)9.1 Hbase安装 (36)9.2 Hbase的使用 (38)3.10 集群监控工具G ANGLIA (41)第四章HADOOP批量部署 (47)4.1安装操作系统批量部署工具C OBBLER (47)4.2安装H ADOOP集群批量部署工具A MBARI (53)第五章使用HADOOP分析日志 (62)第六章总结 (66)第七章参考文献 (66)致谢 (67)第一章某某企业数据分析系统设计需求分析某某企业成立于1999年,其运营的门户每年产生大概2T的日志信息,为了分析的日志,部署了一套Oracle数据库系统,将所有的日志信息都导入Oracle 的表中。

随着时间的推移,存储在Oracle数据库中的日志系统越来越大,查询的速度变得越来越慢,并经常因为查询的数据量非常大而导致系统死机。

日志信息的分析成为了XX企业急需解决的问题,考虑到单机分析的扩展性与成本问题,且XX企业当前有一部分服务器处于闲置状态,最终决定在现有服务器的基础上部署一套分布式的系统来对当前大量的数据进行分析。

结合淘宝目前已经部署成功的数据雷达系统,同时由于XX企业预算有限,为了节约资金,决定采用开源的Hadoop来部署公司的数据分析系统。

去IOE 我们达到了预期目的——访阿里巴巴去IOE战略实施者周宝方

去IOE 我们达到了预期目的——访阿里巴巴去IOE战略实施者周宝方

去IOE 我们达到了预期目的——访阿里巴巴去IOE战略实施者周宝方杨晨【期刊名称】《信息安全与通信保密》【年(卷),期】2015(000)005【总页数】4页(P70-73)【作者】杨晨【作者单位】【正文语种】中文周宝方:曾任阿里巴巴集团数据库技术部负责人,阿里“去IOE”战略的主要实施者,当前为阿里巴巴基础设施“数据化运营”战略部门负责人。

IOE的高成本、高风险在业界已被诟病多年,中国头号互联网企业阿里巴巴集团凭借其雄厚的技术积累,敢为天下先,在中国率先推动去IOE实践,达到了公司预期目的,也为业界同行去IOE提供了可以效仿的样板,增添了信心。

日前,记者走进阿里,力求从这个电商巨人那里探寻去IOE的成功之道,阿里去IOE战略的实施者,当年曾任阿里集团数据库技术部负责人的周宝方愉快的接受了记者的访谈。

记者:阿里当年推动去IOE的初衷是什么,目前是否已经达到了预期的目的?周宝方:提到这个问题,阿里不希望“去IOE”的初衷归结到两个极端:一是单纯变为企业成本问题,二是简单地变成一个是否用国外产品和技术的问题去讨论。

成本降低是“去IOE”最先能够看到的,但最根本的原因是在互联网时代,不只是互联网企业,绝大部分企业对计算需求难以通过IOE提供的技术来满足了,IOE约束了企业长远的发展;技术路径上依赖于专用的硬件设备比较危险,随处可以买到的消费级服务器的架构长远来讲对于阿里和大多数企业则是较为可靠的选择。

对于成本,我想说今天所有讲的开源技术只解决了软件使用成本的问题,而忽略了开源软件的升级和维护成本。

“IOE”是软件时代或是“买计算机”时代的产物。

“去IOE”最好的解决方式是采用云计算,在云计算时代,则变成买“计算”的时代,而不是买来一台新的机器替代掉原有机器。

这是一个行业的变化而不是简单的策略选择。

2008年,阿里巴巴提出“去IOE”的想法,开始把云计算植入阿里的IT基因。

2010年起,淘宝不再购买小型机,阿里进一步提出用开源数据库MySQL+自研数据库OceanBase替代Oracle,并不再使用高端存储。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

探秘淘宝Hadoop集群
当下中国超大规模的单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技术的集群,最初只是被定位成一个临时的、有过渡性质的系统,目的是
让淘宝的业务人员提前熟悉和使用分布式计算系统,待“飞天”成熟后再将业务移植过来。

“我们一开始就知道我们是为他们(…飞天‟系统)铺路的,所以,既然他们叫…飞天‟,那我们就叫…云梯‟好了,隐含奉献的意思。

”罗李说。

只是,世事难料,大家都没有想到,四年后的今天大数据和Hadoop会如此之火,发展前景堪称一片光明,而淘宝凭借“云梯”集群也成为该技术领域的应用先锋。

当然,阿里集团一直在坚持研发“飞天”集群,并取得了阶段性的成果。

因此,在阿里集团内部,其实是“飞天”和“云梯”两大分布式计算系统并立的局面。

在应用中发展
从2009年的300台发展到目前2860台,这绝不只是一个机器简单堆叠的过程,而是耗费了淘宝研发人员无数的智慧与汗水。

Hadoop技术本身在淘宝也获得了长足的发展。

淘宝对Hadoop进行深度重构的最重要一次实践,当属该公司根据自身的业务需求,开发了自己的Hadoop分支——ADFS。

据介绍,ADFS主要解决的是HDFS NameNode在设计上存在单点故障、内存瓶颈(因为所有的数据都是存入内存,长期以往,NameNode必将遭遇内存扩展瓶颈),以及集群重启时间过长,期间无法对集群进行写操作等问题。

而ADFS原理简单地说就是将非热点数据存入“数据库”,而非NameNode的内存。

罗李说:“由于数据存放在数据库里,只要数据库…不挂‟就没有问题,NameNode的单点故障问题由此解决,同时也一并解决了内存瓶颈。

系统升级不需要再停机,重启时间也由原来的一两个小时缩短到5分钟之内。

总之,ADFS能提供10亿文件/目录的管理能力,
其稳定性、性能和可维护性不输于甚至优于现有系统。

”此外,值得一提的是,淘宝已经将ADFS开源在GitHub之上。

另一大改进,就是为减少磁盘使用量而实施了HDFS Raid技术。

“H DFS出于可靠性考虑,都是将一份数据存成三份,这意味着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 技术。

”。

相关文档
最新文档