《分布式存储技术及容灾方案》由会员分享,可在线阅读,更多相关《分布式存储技术及容灾方案(73页珍藏版)》请在金锄头文库上搜索。
1、分布式存储技术及容灾方案,课程大纲,分布式存储技术 Hadoop概念 Hadoop发展历史 Hadoop架构 HDFS架构 MapReduce架构 Hadoop实验 Hadoop灾备,分布式存储,分布式存储系统主要包括分布式文件系统与分布式数据库系统。 文件系统与数据库系统区别。 文件系统用文件将数据长期保存在外存上,数据库系统用数据库统一存储数据; 文件系统中的程序和数据有一定的联系,数据库系统中的程序和数据分离; 文件系统用操作系统中的存取方法对数据进行管理,数据库系统用DBMS统一管理和控制数据; 文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享。,分布式存
2、储,大规模数据处理的问题,1990年,普通的硬盘驱动器可存储1370MB数据并拥有4.4 MB/s的传输速度 ,只需五分钟的时间就可以读取整个磁盘的数据。 目前,1TB级别的磁盘驱动器是很正常的,但是数据传输的速度却在100MB/s左右。所以它需要花两个半小时以上的时间读取整个驱动器的数据,从一个驱动器上读取所有的数据需要很长的时间,写甚至更慢。 如何解决?一个很简单的减少读取时间的办法是同时从多个磁盘上读取数据。试想一下,我们拥有100个磁盘,每个存储百分之一的数据。如果它们并行运行,那么不到两分钟我们就可以读完所有的数据。,Hadoop是什么?,Hadoop是一种针对大数据分析的开源分布式
3、计算平台,是由Apache软件基金会主席Doug Cutting在雅虎时创建。 一个分布式文件系统和并行执行环境,让用户便捷地处理海量数据。 目前Yahoo是最主要的贡献者。,Hadoop应用Yahoo,Yahoo目前有超过38000台服务器,有超过4000个以上的服务器集群,数据总量达到了170PB,每日的数据增量在10TB以上。Yahoo的Hadoop应用包含有搜索、日志处理(Analytics, Reporting, Buzz)、用户建模、内容优化,垃圾邮件过滤器以及广告计算等。,Hadoop应用Yahoo,以网络分析为例,Yahoo目前有超过100亿个网页,1PB的网页数据内容,2万亿
4、条链接,每日面临这300TB的数据输出。“在应用Hadoop前,实施这一过程我们大概需要1个月的时间,但应用后仅需要1周时间”。再以Yahoo搜索为例,“我们的服务器上保留有用户三年来的搜索记录,这个数据是由超过 10TB的自然语言文本库所组成”,“如果数据重整,我们在应用Hadoop前需要1个月的时间进行处理,而在有了Hadoop后仅仅需要30分钟。,Hadoop应用Facebook,随着Facebook网站的使用量增加,网站上需要处理和存储的日志和维度数据激增。在这种环境下对任何一种数据处理平台的一个关键性要求是它必须具有快速的支持系统扩展的应变能力。此外,由于工程资源有限,所以系统必须是
5、可信的,并且易于使用和维护。 Facebook正在运行世界第二大Hadoop集群系统 Facebook在Hadoop上存放的数据超过了2PB; 每天加载的数据超过10TB; Hadoop系统具有2400个内核,大约9TB的内存。,Hadoop应用淘宝,淘宝是在国内最先使用Hadoop的公司之一。淘宝网目前有会员2亿左右,日均UV高达4000万,日交易量高达10亿元,每天产生大量的数据,所以部署了一系列不同规模的Hadoop集群。淘宝生产所使用的Hadoop集群为目前国内规模最大的Hadoop集群之一。 Hadoop集群规模 总容量为14.1PB,利用率77.09% 共有1300台机器 每天处理
6、18000道Hadoop作业 用户数474人,用户组38个 扫描数据:约500TB/天,Hadoop行业应用,1.在线旅游:目前Cloudera的Hadoop架构正在为80%左右的全球在线旅游预定服务。Orbitz CEO Barney Harford表示,受益于Hadoop架构,他们极为轻松地实现了诸多的数据分析工作,并在其中得出“MAC用户比Windows用户愿意支付20美元的成本来预订酒店”,可以帮助发现以前从来没有发现的数据点,进而使分析和挖掘成为了可能。 2.移动数据:Cloudera为“70%美国智能手机”提供服务,通过无线方式存储和处理移动数据,以及有关市场份额的数学可以帮助锁定
7、客户。 3.电子商务:Cloudera第三个市场是美国超过10,000,000家网上商店。,Hadoop行业应用,4.能源发现:采用Hadoop来对数据进行排序和整理,而这些数据全部来自从海洋深处地震时产生的数据,而其背后有可能意味着石油储量。 5.能源节省:使用Hadoop来提升电力服务,尽量为用户节省在资源方面的投入。某些特定功能,如精确并长期的费用预测如果没有Hadoop几乎很难完成。Opower现在管理着30TB的信息,其中包括来自5000万用户(横跨60个公共事业部)能源数据,气象与人口方面的公共及私人数据,历史信息,地理数据及其他。这些都是通过超过20个MySQL数据库和一个Had
8、oop集群来存储和处理的。,Hadoop行业应用,6.基础设施管理:随着更多的公司从服务器、交换机及其他IT设备商收集并分析数据,Hadoop更有市场。NetApp收集设备日志(现在已经超过1PB的容量了),并将它们存储在Hadoop中。 7.图像处理:利用Hadoop来存储和处理高来自卫星捕捉的高分辨率图像,并尝试将这些信息及图像与地理格局的变化相对应。 8.欺诈检测:在金融服务机构和情报机构中,欺诈检测一直都是关注的重点。Zions Bancorporation利用Hadoop来存储所有数据,并对客户交易和现货异常进行判断,对可能存在欺诈行为提前预警的。,Hadoop行业应用,9.IT安全
9、:如基础设施管理一样,企业通过使用Hadoop来处理机器产生的数据,以识别恶意软件和网络攻击模式。ipTrust通过使用Hadoop来指定IP地址的名誉得分(在0-1之间的得分,O等于没有防线或未知的风险),从而使其他安全产品可以判断是否接受来自这些来源的通信,IBM和HP都使用ipTrust的安全产品。 10.医疗保健:Apixio利用Hadoop平台开发了语义分析服务,可以对病人的健康提供医生、护士、及其他相关人士的回答。Apixio试图通过对医疗记录进行先进的技术分析,与一个简单的基于云计算的搜索引擎来帮助医生迅速了解病人。,Hadoop特点,扩容能力(Scalable):能可靠地(Re
10、liably)存储和处理千兆字节(PB)数据。 成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。 高效率(Efficient):通过分发数据,Hadoop可以在数据所在的节点上并行地(Parallel)处理它们,这使得处理非常的快速。 可靠性(Reliable):Hadoop能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署(Redeploy)计算任务。,Hadoop生态系统,Hadoop成员组成,Apache Hadoop 是一个用java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,它可以
11、让应用程序支持上千个节点和PB级别的数据。,Hadoop成员组成,Hadoop core:Hadoop的核心子项目,提供了一个分布式文件系统(HDFS)和支持MapReduce的分布式计算。 Hbase:建立在Hadoop内核之上,提供可靠的,可扩展的分布式数据库。 ZooKeeper:一个高效的,可扩展的协调系统。分布式应用可以使用ZooKeeper来存储和协调关键共享状态。 PIG:建立于Hadoop内核之上,是一种支持并行计算运行框架的高级数据流语言。,HDFS系统架构,HDFS主要组件,NameNode,NameNode是一个中心服务器,单一节点,负责管理文件系统的名字空间(names
12、pace)以及客户端对文件的访问。 NameNode负责文件元数据的操作,DataNode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过NameNode,只会询问它跟那个DataNode联系,否则NameNode会成为系统的瓶颈。 副本存放在哪些DataNode上由NameNode来控制,根据全局情况做出块放置决定,读取文件时NameNode尽量让用户先读取最近的副本,降低带块消耗和读取时延。 NameNode全权管理数据块的复制,它周期性地从集群中的每个DataNode接收心跳信号和块状态报告(BlockReport)。接收到心跳信号意味着该DataNode节点工作正常。块状态报告
13、包含了一个该DataNode上所有数据块的列表。,DataNode,一个数据块在DataNode以文件存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。 DataNode启动后向NameNode注册,通过后周期性(1小时)的向NameNode上报所有的块信息。 心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。 集群运行中可以安全加入和退出一些机器。,文件存储,文件存储,文件切分成块(默认大小64M),
14、以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默认3)。 NameNode是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表以及块所在的DataNode等等。 DataNode在本地文件系统存储文件块数据,以及块数据的校验和。 可以创建、删除、移动或重命名文件,当文件创建、写入和关闭之后不能修改文件内容。,实例:HDFS写文件,Write packet,Create file,Write packet,Write packet,Send ack,Send ack,Send ack,Close file,实例
15、:HDFS读文件,Read block,Open file,Close file,Get block location,HDFS读文件流程,客户端联系NameNode,得到所有数据块信息,以及数据块对应的所有数据服务器的位置信息。 尝试从某个数据块对应的一组数据服务器中选出一个,进行连接。 数据被一个包一个包发送回客户端,等到整个数据块的数据都被读取完了,就会断开此链接,尝试连接下一个数据块对应的数据服务器,整个流程,依次如此反复,直到所有想读的都读取完了为止。,HDFS可靠性保障,一个名字节点和多个数据节点 数据复制(冗余机制) 存放的位置(机架感知策略) 故障检测 数据节点 心跳包(检测是
16、否宕机) 块报告(安全模式下检测) 数据完整性检测(校验和比较) 名字节点(日志文件,镜像文件) 空间回收机制,Hadoop实验,实验环境 三台PC机,Linux操作系统,各主机对应的ip地址: 192.168.1.11 ubuntu1 192.168.1.12 ubuntu2 192.168.1.13 ubuntu3 Hadoop安装包(http:/hadoop.apache.org/core/releases.html) 安装jdk 1.5以上版本,Hadoop实验,Hadoop安装 在所有的机器上建立相同的用户,例如:grid SSH配置,实现在机器之间执行指令的时候不需要输入密码 在ubuntu1(准备设为NameNode)上生成密钥对,执行$ssh-keygen -t rsa,然后一路回车,就会按照默认的选项将生成的密钥对保存在.ssh/id_rsa文件中。执行: $cd /.ssh $cp id_rsa.pub authorized_keys $scp authorized_keys ubuntu2:/home/grid/.ssh $scp authorized_