大规模Web性能优化调研报告_第1页
大规模Web性能优化调研报告_第2页
大规模Web性能优化调研报告_第3页
大规模Web性能优化调研报告_第4页
大规模Web性能优化调研报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大规模Web系统性能优化调研报告2院(系)名 称 :资环学院专 业 名 称 :地理信息系统学 生 姓 名 :林 晖学 号 :0032二一三年四月简要目录第一章 Hadoop之我见41.1.Hadoop解决什么问题?41.2.Hadoop怎样解决问题41.2.1.HDFS41.2.2.MapReduce61.3.Hadoop真的这么好吗?71.4.Hadoop解决本学科问题的思考8数据拆分9Map过程9中间数据9Reduce过程9输出过程91.5.对商业价值的思考9第二章 Hadoop相关技术112.1.Hadoop生态系统112.2类似技术12参考文献13摘要本文首先分析Hadoop能够解决什么问题,从问题入手分析Hadoop的核心组件如何协同工作,总结了Hadoop的核心思想。然后从Hadoop的设计特点入手,翻阅有关资料,总结Hadoop卓越成就背后的缺陷。通过对Hadoop的总体了解与调研,将其与本学科的问题进行总结,提出一些解决思路。然后从Hadoop的商业模式应用出发,思考Hadoop的潜在商业应用点。最后一个部分纵向分析架构Hadoop生态系统的各个重要组件及其相互协作模式,同时横向比较与Hadoop类似的技术特点以及与Hadoop的相互关联。关键字:HDFS、MapReduce、遥感图像处理、PIG、Hive、Hbase第一章 Hadoop之我见1.1.Hadoop解决什么问题?序号问题描述传统解决方案1数据爆炸性增长,怎样提高存储数据容量提高服务器硬件配置2数据集中式存储,并行读写硬件故障停止系统运行,维修硬件,重启服务器3数据来源于多个存储位置,需要配合处理花费大量时间整合数据,进行运算4数据容量增长,需要扩展数据存储节点重新编程,重启系统1.2.Hadoop怎样解决问题Hadoop的两个核心组件:HDFS和MapReduce,下面使用图表的形式分别说明两者的功能以及技术原理。1.2.1.HDFSl HDFS功能与设计思想:序号问题构想HDFS解决方案1硬件故障整个HDFS系统由数百或数千个存储着文件数据片断的服务器组成。每一个组成部分都会频繁地出现故障,HDFS设想一些组成部分总是失效的,HDFS致力于故障的检测和自动快速恢复2流式的数据访问HDFS使应用程序流式地访问它们的数据集。HDFS是设计成适合批量处理的,而不是用户交互式的。所以其重视数据吞吐量,而不是数据访问的反应速度。3简单一致性模型大部分的HDFS程序对文件操作需要的是一次写入,多次读取的。一个文件一旦创建、写入、关闭之后就不需要修改了。这个假定简化了数据一致的问题和高吞吐量的数据访问。4移动计算代价比移动数据高一个应用请求的计算,离它操作的数据越近就越高效,这在数据达到海量级别的时候更是如此。将计算移动到数据附近,比之将数据移动到应用所在显然更好,HDFS提供给应用这样的接口。5应用需要在异构平台下移植HDFS提供对异构平台的支持l HDFS的技术原理这部分,我认为网上有两个图已经将HDFS的读写原理说的非常清楚,没有必要花费时间去重复画这样一个图,其实核心就在于如何去理解元数据节点(NameNode)作为管理者以及数据节点DataNode作为工作者如何协同配合.HDFS读原理:HDFS写原理:1.2.2.MapReduce经过网上的调研,通过对自己编程经验的总结以及将编程上升到社会科学的角度而言来谈的话,MapReduce主要两个流程就是Map和Reduce,从社会科学角度引出MapReduce的核心思想:第一次工业革命以来,蒸汽机的出现为工业界带来了前所未有的变革,工厂制代替了手工工场,用机器代替了手工劳动,典型实例纺织工人制成一件衣服的过程中,首先需要将棉花(代表系统中的数据)这类原始材料放入不同的车间(Map的过程)加工成可适合用于加工服装的棉布,接着就是从不同的车间取不同的布料,制成一件衣服出售(Reduce过程)。那么这样一个简洁,易用的编程模型,比较核心的技术原理我认为就三块:物理架构如何设计、执行流程是怎样的,单项作业如何进行?通过对资料的整理与收集,网上有许多图片,以下三个我认为对MapReduce的编程模型核心思想剖析的比较到位,其实核心就是要理解分而治之这一重要思想。MapReduce编程模型物理架构MapReduce执行过程单一作业提交过程(来源于Hadoop官网)1.3.Hadoop真的这么好吗?网上看到一篇由DatabaseColumn的几个数据库大牛编写的一篇文章MapReduce:一个重大的倒退,总结了MapReduce的不足,从五个大的方面阐述了Hadoop的劣势:序号问题描述详细阐述1MapReduce是一个数据库存取的退步MapReduce不满足下列数据库社区40年来总结的经验,倒退到了60年代的设计思想l 结构描述是好的。l 将结构描述从程序中分离是好的l 高阶的访问语言是好的2MapReduce是一个粗燥的实现l MapReduce没有索引l MapReduce同时存在很多底层的实现问题,特别是数据交换和数据斜交的情况。3MapReduce并不新奇MapReduce的技术核心思想至少是20年前的4 MapReduce失去了很多特性与目前的数据库管理系统相比,MapReduce缺失了以下特性:l 批量导入l 索引l 更新事务l 完善的约束l 完善的引用 l 视图5 MapReduce与现有的数据库管理系统工具不兼容目前存在许多优秀的数据库管理工具,而MapReduce不能使用这些工具:l 报表l 商业智能工具l 数据挖掘工具l 复制工具l 数据库设计工具 1.4.Hadoop解决本学科问题的思考根据对Hadoop的调研,结合本学科著名的遥感地物识别问题,对Hadoop的使用提出一个自己的一个思考。首先描述下问题,遥感图像具备多个波段,里面包含了大量的信息,包括通过卫星上的光谱传感器拍摄得到的光谱信息,以及图像本身包含的纹理和形状信息等等,而这些遥感图像数据量巨大,特别是全球的影像数据,例如全球高分辨率的quickbird数据,数据量很轻易就达到TB,在这些影像基础之上,我们可以通过对图像的光谱特性寻找到一些特殊的地物,例如汶川大地震期间,空军的飞机失事,由于汶川为山地形势,崇山峻岭遍布森林,失事飞机坠落之后,人工寻找难度很大,需要使用一些特殊手段寻找失事飞机,首先得到汶川地区的遥感影像数据,在此基础上利用飞机与周围地物的不一致特征寻找失事飞机,结合Hadoop的主要思想,对于这类在海量的数据当中寻找具备某种地物光谱特征的图像时,我认为可以将其分为以下几个比较关键的步骤数据拆分将得到的大容量图像按照波段进行切割拆分,将256个波段分开拆分成多个波段组合,进行处理。Map过程将拆分之后的数据Map集群中的节点上,同时记录每个map节点所分配的相应的数据块标识,通过此举来保证找到结果之后,能够反向通过key得到波段特征。中间数据将Map之后的数据节点内的数据按照地理位置的组合成一个新的中间数据,进入Reduce过程。Reduce过程将中间数据重新组合,通过reduce过程得到不同的波段组合的区域组合,计算每个区域是否还有飞机地物特征波段输出过程当reduce之后,并通过分析得到的具备飞机地物特征波段,将此结果作为备选方案,通常会有多个方案,再通过这些方案的过滤,去这些地方人工进行搜索,将会大大减少工作效率。1.5.对商业价值的思考Hadoop具备许多优良的特性,在许多商业场景中具备很多应用空间,我按照自己的理解我觉得有如下一些应用就很适合Hadoop,当然还有很多,这里只是举个例子:1. 亚马逊每次当我浏览商品时,即时我没买,下次登录之后就会出现我上次浏览的同类商品的信息和销售情况,这类信息应该也用到了Hadoop。2.很多公司报表用到的年度报告或者年度环比数据报告的时候也会用到hadoop去计算. 例如房地产的数据。3.搜索引擎分析的时候应该也会用到。4银行的信用卡业务,当你正在刷卡完一笔消费的那一瞬间,假如在你当天消费基础上再消费满某个额度,你就可以免费获得某种令你非常满意的利益等等,你可能就会心动再去消费,这样就可能提高银行信用卡业务,那么这个消费额度是如何从海量的业务数据中以秒级的速度计算出该客户的消费记录,并及时反馈这个营销 信息到客户手中呢?这时候关系型数据库计算出这个额度或许就需要几分钟甚至更多时间,就需要hadoop了,这就是所谓的“秒级营销”. 第2章 Hadoop相关技术2.1.Hadoop生态系统第1章 介绍的主要是Hadoop的核心部分即MapReduce以及HDFS的主要功能以及实现方法,Hadoop还包括许多组件,下列表格中的一些相关技术就是在Hadoop得到广泛使用的一些技术特点以及与Hadoop之间的相互关系。序号技术名称主要功能与技术特点与Hadoop的关系1Pig提供SQL-LIKE语言Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口l 提供更丰富的数据结构l 提供更强大的数据分析2HIVE基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。帮助Hadoop使用类SQL语句快速实现简单的MapReduce统计3Hbase适合于非结构化数据存储的数据库就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;4ZooKeeper配置维护、名字服务、分布式同步、组服务等。它的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。负责协调工作流程5Sqoop用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。数据切换工具6AVROAvro是一个数据序列化的系统,它可以提供:1 丰富的数据结构类型2 快速可压缩的二进制数据形式3 存储持久数据的文件容器4 远程过程调用RPC5 简单的动态语言结合功能,Avro和动态语言结合后,读写数据文件和使用RPC协议都不需要生成代码,而代码生成作为一种可选的优化只值得在静态类型语言中实现。序列化支持各个技术之间构成的Hadoop生态系统可以简要的以下述图形表示2.2类似技术序号技术名称主要功能Hadoop类似技术关联1Google FIle System(GFS)一个分布式的文件系统, 从GFS之上看起来, 隐藏了集群内部各个节点之间的复杂物理联络关系, 形成一个虚拟的统一海量文件系统. 利用MapReduce的计算模型, 进行数据计算.HDFS是GFS的类开源实现2Big Table稀疏的、分布式的、持久化存储的多维度排序Map。特点:1、适合大规模海量数据,PB级数据;2、分布式、并发数据处理,效率极高;3、易于扩展,支持动态伸缩;4、适用于廉价设备;5、适合于读操作,不适合写操作。6、不适用于传统关系数据库;HBase是Big Table的开源实现3lustre一个大规模的、安全可靠的,具备高可用性的集群文件系统,它是由SUN公司开发和维护。该项目主要的目的就是开发下一代的集群文件系统参考文献1. Tom White, Hadoop权威指南, 清华大学出版社, August 31, 20112. 维基百科.Apache Hadoop. /wiki/Hadoop.2012.053. 私塾网.深入浅出学Hadoop /forum/blogPost/list/5456.html 2013.024. 维基百科.Avro. /wiki/Avro.2012.055. Apache Pig. Welcome to Apache Pig, /,2013.026. Apache Hbase. Welcome to Apache HBase.http:/HB/2011.057. Apache Hive,Welcome to Hive,http:/H/2012.048. Apache Zookeeper. / 2012.079. Apache Sqoop,/.2013.0310. 杨杨ye,HBase与BigTable的比较,/yangyangye/archive/2010/08/09/.html

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论