广州电信创新平台云计算技术方案建议书_20110728_切勿传播.doc

上传人:海阔****涯 文档编号:95706071 上传时间:2023-08-29 格式:DOC 页数:39 大小:6.96MB
返回 下载 相关 举报
广州电信创新平台云计算技术方案建议书_20110728_切勿传播.doc_第1页
第1页 / 共39页
广州电信创新平台云计算技术方案建议书_20110728_切勿传播.doc_第2页
第2页 / 共39页
点击查看更多>>
资源描述

《广州电信创新平台云计算技术方案建议书_20110728_切勿传播.doc》由会员分享,可在线阅读,更多相关《广州电信创新平台云计算技术方案建议书_20110728_切勿传播.doc(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、技术方案建议书 技术方案建议书目录1云计算系统设计方案概述41.1系统基本功能41.2主要设计思想和设计目标、设计原则41.3中国电信创新平台的云计算解决方案51.4系统的主要技术特点52系统总体构架62.1系统基本组成与构架62.2系统功能模块73系统基本功能与处理方案83.1CDR、PSMM、DT数据入库处理功能与方案83.1.1基于FTP加速引擎的数据高速稳定下载优化方案更好的下载方式83.1.2数据入库模块93.1.3基于全局样本抽样的压缩优化方案更好的压缩方式103.2索引生成与数据存储方案113.2.1数据立方(DataCube)更好的索引生成方式113.2.2阶梯式数据存储系统更

2、好的存储方式133.3单用户数据查询功能与方案143.3.1cProc并行计算架构实时性更强的计算架构143.3.2单用户单表多字段查询153.4数据查询统计功能与方案173.4.1MapReduce的架构173.4.2多表连接功能与方案204Avatar系统更好的计算与存储集群可靠性234.1计算与存储集群Master单点失效容错处理234.2计算与存储集群的负载均衡处理315MapReduce计算架构可靠性设计336系统扩展性356.1已有的Hadoop集群规模356.2集群扩展方法357设备配置367.1建议硬件配置367.2软件配置368系统设计性能378.1数据入库能力378.2数据

3、存储能力378.3查询分析计算性能389系统接口389.1四种功能接口389.2不同用户的使用范围399.3输入数据格式39图表 1 电信创新平台数据存储与处理总体技术架构6图表 2 数据下载解决方案8图表 3 样本抽样的压缩优化方案10图表 4 系统负载监控的压缩优化方案11图表 5 数据文件中的记录压缩11图表 6 数据立方(DataCube)与基于B+数的索引12图表 7 基于B+树的字段索引13图表 8 阶梯式数据存储系统14图表 9 cProc并行计算架构15图表 10 cProc计算架构下单表多字段查询过程17图表 11 分布式计算流程19图表 12 Hadoop的基本结构20图表

4、 13 Join的流程图23图表 14 Master单点失效容错处理24图表 15 AvatarNode0以Pimary启动过程26图表 16 AvatarNode1以Standby启动过程27图表 17 DataNode启动过程27图表 18 AvatarNode0宕机后的状态28图表 19 AvatarNode1切换为Primary过程28图表 20 AvatarNode0重启过程29图表 21 AvatarNode启动切换流程图30图表 22 作业提交34图表 23 JobTracker0宕机34图表 24 作业注销35图表 25 全网设备汇总表36图表 26 软件配置列表36图表 27

5、 分布式文件存储系统吞吐量37图表 28 CDR查询统计性能测试表38图表 29 查询接口图381 云计算系统设计方案概述1.1 系统基本功能本方案的建设思路是,既要紧密结合实际网络情况,提供一套适合电信集团的数据处理系统,又能适应今后发展的创新的数据共享平台。系统的基本功能和性能如下:1)海量CDR、PSMM、DT存储和计算能够存储PB级别的数据, 并完成各种复杂业务应用计算。2)PB级数据秒级查询能力高效索引算法,智能化调度任务系统,满足秒级查询速度。3)海量数据统计功能高效的全局数据统计算法提供较短时间内的数据查询统计能力。1.2 主要设计思想和设计目标、设计原则(1)设计思想:将海量数

6、据分解到由大量X86架构计算机构成的低成本计算平台上进行实时处理,依靠分布式云计算软件进行容错,从而提升海量数据分析的实时性和性价比。(2)设计目标:利用中国电信计算资源池中的X86架构计算机,建立云计算平台,提供CDR、PSMM、DT实时查询和统计分析等多种业务支持。创新平台系统具有可动态可伸缩性、高度容错性和响应实时性,达到较之传统方案有一个数据量级的性能价格比提升。(3)设计原则:前瞻性技术与实际应用环境相结合。本项目是既是先进技术应用创新示范项目,又是工程实施型项目。把握技术正确性和先进性是前提,但是前瞻性技术实施必须在资源池的实际应用环境的基础上进行,必须结合资源池平台的实际情况进行

7、研究和开发,只有与实际应用环境相结合才有实际应用价值。学习借鉴国外先进技术与自主创新相结合。在基于资源池的云计算平台用于超大规模数据处理方面,国内外几乎是在一个起跑线上;但在关键技术研究及既往的技术积累方面,国外一些大公司有着明显的优势。我们将积极学习借鉴国外先进的云计算技术,同时与自主创新相结合,形成功能强大、性能卓越的能够满足实际应用环境需求的云计算数据处理和统计分析平台。1.3 中国电信创新平台的云计算解决方案在中国电信提供的计算资源池上,申请若干X86架构计算/存储节点,虚拟出海量存储空间、处理能力和数据管理能力。同时研制面向应用的分布式数据处理软件,满足CDR、PSMM、DT数据的索

8、引、查询、统计分析、深度数据挖掘等应用需求。1.4 系统的主要技术特点实时性:平台在高效率并行分布式软件的支撑下,可以实时完成CDR、PSMM、DT入库和索引建立、查询、统计和分析等工作。数据入库不会出现数据堆积现象,各类查询工作基本都在秒级完成,统计工作在较短时间内结束,具有前所未有的高效性。高可靠性:基于对云计算可靠性深厚的研究积累,彻底解决了当前分布式计算平台易出现的单点故障问题。任何一个节点出现故障,系统将自动屏蔽,而且不会出现丢失数据的现象。包括数据下载入库节点、CDR、PSMM、DT索引建立节点、HDFS元数据节点、HDFS数据存储节点、MapReduceJob Tracker节点

9、、MapReduce Task Tracker节点等。可伸缩性:在不停机的情况下,增加节点,平台的处理能力自动增加;减少节点,平台的处理能力自动缩减。这样,可以做到与资源池的无缝对接,根据计算和存储任务动态地申请或释放资源,最大限度地提高资源利用率。高性价比:采用X86架构廉价计算机构建云计算平台,用软件容错替代硬件容错,大大节省成本。在目标性能和可靠性条件下,可比传统的小型机加商用数据库方案节省10倍左右的成本。全业务支持:采用NoSQL关系数据库混合模式,绝大部分海量数据存放于分布式平台并进行分布式处理,少量作为缓存的数据存放于关系数据库,可支撑对结果集的各种类型业务。不仅支撑查询、统计、

10、分析业务,还可支撑深度数据挖掘和商业智能分析业务。2 系统总体构架2.1 系统基本组成与构架创新平台数据处理系统由5个主要部分组成:基础设施层,数据存储层,数据处理层,监控协调层和接口层。图表 1 电信创新平台数据存储与处理总体技术架构上图中,自底向上分为四个层面。最下层是基础设施构架层,该共享平台将将构建在中国电信资源池平台之上,利用资源池所提供的计算资源、存储资源和网络资源,作为创新平台数据处理系统的基础设施和支撑平台。在这一层又分为物理层和虚拟层,即在物理集群之上搭建了一层Vmware虚拟集群。这样做有利于充分利用物理资源,因为在物理层物理机的性能可能参差不齐,直接将系统搭建在物理集群之

11、上很可能造成负载的不均衡,如果根据物理机的性能来部署虚拟机,就可以通过调整配置使得各个虚拟机之间性能达到平衡,从而使部署在虚拟集群上的系统出现负载不平衡的几率达到最低。第二层是数据存储层,在这一层将根据数据的所占空间以及速度要求将数据分配到不同层次的存储空间中。最上层是一个作为缓存的MySQL集群,另外三层包括部署在机械磁盘上的Hadoop的HDFS分布式文件系统、部署在固态磁盘上的HDFS以及分布式内存存储系统MemCache。第三层是数据处理层,其中包括计算架构层和业务层。计算架构层中的cProc是一种处理海量数据的并行编程模型和计算框架,用于对大规模数据集的并行计算。cProc通过把对数

12、据集的大规模操作分发给网络上的每个节点实现数据处理,每个节点会周期性的把完成的工作和状态的更新报告回来。随着节点的增多,cProc的处理能力将成倍数增长。而Hadoop的MapReduce并行计算架构则适用于对大规模数据进行全局读写扫描分析和批处理计算。业务层由量个部分组成:CDR、PSMM、DT数据入库处理模块和数据管理模块。数据入库处理模块负责数据的下载与入库,其中的FTP下载加速引擎用于使用多线程和断点续传技术加速数据文件的下载,数据压缩引擎用来对入库前的数据进行压缩减少数据容量从而加速入库速度。数据管理模块包括了单用户数据查询模块、数据查询统计模块。最上层是用户接口层,主要供用户查询、

13、监视相关的API接口以及JDBC/ODBC 、REST等API接口 。图中右侧是监控协调层,其中由ZooKeeper集群负责监控整个集群同时做负载平衡以及保证存储系统和计算架构的可靠性。此外,WorldEyes是CProc项目的一个子项目,主要是用来解决对系统中所有系统消耗与系统性能的动态监控。2.2 系统功能模块信令共享平台需要提供的4大主要功能模块描述如下。(1)CDR、PSMM、DT数据入库处理模块数据入库主要负责从源数据存储系统下载原始数据,进行数据解析处理后存储到云存储系统中,同时建立与数据对应的索引。在内部处理模块上,信令数据合成系统主要包括三个模块:下载模块、解析处理模块和索引建

14、立模块。下载模块主要负责源数据文件的分发与下载,而解析处理模块主要负责源数据的解析和合成处理、以及CDR、PSMM和DT数据汇总计算,索引建立模块则负责对源数据中的每条记录的重要字段建立索引。(2)单用户数据查询模块单用户的数据查询模块主要负责对源数据中记录的字段根据具体的单个或多个条件查询出结果。(3)数据查询统计模块数据查询统计模块主要负责对源数据中所有的记录根据一定的查询范围以及综合查询的SQL语句统计分析出所要的结果。(4)接口模块接口模块提供外部所需的JDBC/ODBC等接口用于调用内部的系统模块,同时给外部提供性能监控API。3 系统基本功能与处理方案3.1 CDR、PSMM、DT

15、数据入库处理功能与方案3.1.1 基于FTP加速引擎的数据高速稳定下载优化方案更好的下载方式元数据存储在FTP服务器上,采用多机器多线程的数据下载方式。首先指令发布机对FTP服务器上的存储数据进行目录分析,将每一天每一种类型的数据文件分别按时间顺序排序,并根据预先在配置文件中设置的下载机器数量,进行负载均衡的下载文件列表分发。图表 2 数据下载解决方案接着每一台连接到指令发布机的下载机都会获得一张下载列表,此下载列表是有序的,完整的。下载机对下载列表经行备份,并时刻在文件中记录当前下载的文件序号,以及当前下载到文件的位置。之后,开始正式数据下载,数据下载过程中,WorldEyes会自动监控系统

16、的各项性能指标,驱动Ftp数据加速引擎,动态控制单节点上的下载线程数量。从而得到加速下载,和合理使用网络带宽的目的。下载机在下载数据的过程中会根据HDFS上存储文件块的大小进行将同一天同一类型的小文件合并,大文件分割。保证数据占用完整的数据块,达到节约磁盘空间的目的。一个在路径中存储的文件,可能是多个同一天同一类型的数据文件的合并也可能是同一天同一类型的数据文件的分块。在下载过程中可能出现FTP服务器连接被挂载连接的情况,对此每个FTP的下载连接都设置了超时时间,一旦出现当前文件的下载超时后,便在一分钟以内重新连接FTP服务器并开始断点续传(自动可靠性保证方案)。如果下载过程中下载机出现宕机的

17、情况,则操作员手动重启机器后,下载程序的运行脚本会自动执行,继续完成下载任务(手动可靠性保证方案)。3.1.2 数据入库模块我们采用最新一代的云入库方式,元数据直接通过Ftp服务器下载得到后,根据文件类型和大小进行划分处理后,使得每一个文件的大小小于等于一个数据块的大小,然后通知Namenode并修改其中的块注册信息,达到自动回收块的目的。下载和入库是一个同步的过程。这样做可以有效的提高入库性能,入库的瓶颈几乎下降为0对外网络带宽的需求也将至了最低。是目前最高效也是最稳定的提高入库性能的解决方案。当然这样的方案建立在下载节点是Datanode的基础之上,而且此时的下载节点并不需要向Datano

18、de直接上传数据,所以相对的压力也会小很多。机器的负载并不会很高,相反效率会提高不少。这种入库的方式与传统的HDFS文件拷贝最大的不同就是:数据块并不要从硬盘上的一个扇区拷贝至另外的扇区,或者从一块硬盘复制到另外一块的硬盘。从整体上看减少了整个系统约50%的I/O操作。3.1.3 基于全局样本抽样的压缩优化方案更好的压缩方式采用基于全局样本抽样的压缩优化方案和基于系统负载监控的压缩优化方案。前者是通过对小批量的真实数据的分析得出最优化的压缩样本蓝图,并根据样本蓝图进行数据压缩,达到最佳压缩比。可以提高压缩和解压缩的效率。样本蓝图的获取一般是在机器空闲的时候完成。集群中的机器随即从HDFS上抽取

19、每种类型的文件若干,并根据其中的相关字段,进行样本分析,得到最优平均压缩表(样本蓝图),在机器开始重新进行数据下载的时候,若采用基于全局样本抽样的压缩优化方案,则使用实现生成好的有平均压缩表作为样本蓝图,进行新一轮的高效压缩。一旦新的样本蓝图产生,旧的样本蓝图是不会被删除,因为集群中得数据的压缩可能采用多个蓝图版本。图表 3 样本抽样的压缩优化方案后者是通过动态监控系统的负载(包括CPU和内存)动态调控压缩比,充分发挥机器的性能,达到最佳的入库效率。更好的系统负载监控方案WorldEyes,WorldEyes是CProc项目的一个子项目,主要是用来解决对系统中所有系统消耗与系统性能的动态监控,

20、以可视化的图表方式更直观跟准确的向用户通知系统的占用情况,并根据监控数据智能化的调控系统性能,将机器的性能发挥到极致。3.2 索引生成与数据存储方案3.2.1 数据立方(DataCube)更好的索引生成方式本方案采取了更优的索引生成方式:数据立方(DataCube)。我们以B+树的结构建立了字段的索引,每个B+树结构的字段索引相当于一个数据平面,这样一个全局数据表与其多个重要字段的索引就组成了一个类似于立方体的数据组织结构,我们称之为“数据立方(DataCube)”。如下图所示:图表 4 数据立方(DataCube)与基于B+数的索引其中,我们对一些重要字段建立索引,索引以B+树的结构生成,每

21、一条新的记录只需要插入到B+树中。B+树的插入仅在叶结点上进行。 每插入一个(关键码-指针)索引项后都要判断结点中的子树棵数是否超出范围。当插入后结点中的子树棵数大于 m 时, 需要将叶结点分裂为两个结点。它们的双亲结点中应同时包含这两个结点的最大关键码和结点地址。此后, 问题归于在非叶结点中的插入了。在非叶结点中关键码的插入与叶结点的插入类似, 非叶结点中的子树棵数的上限为m, 超出这个范围也要进行结点分裂。在做根结点分裂时, 因为没有双亲结点, 就必须创建新的双亲结点, 作为树的新根。这样树的高度就增加一层了。图表 5 基于B+树的字段索引当有新的记录到来时,我们要将新的数据记录对应的一条

22、索引记录插入到所有的字段索引中,这时要采取一定的写入策略。当新的记录积累到n1条或经过一定时间t1时,对于存储在MemCache中的字段索引,可以将这些数据记录对应的索引记录一次性批量写入;当新的记录积累到n2条或经过一定时间t2时,可以将这些数据记录对应的索引记录一次性批量写入HDFS(固态磁盘)上的索引文件。对B+树的查找类似于二分查找,对于m阶,叶子节点中记录个数为n的B+树来说,其查找的时间复杂度为O(log m+(n+1)/2)。因此对于值匹配和范围查找来说,有很快的速度。此外,由于对值按照大小顺序进行了指针链接,因此m阶B+树还可以进行对值进行顺序查找。 我们对重要字段建立索引,存

23、储在HDFS(固态磁盘)上。将最近常用的字段索引加载到MemCache中,同时删除最不常用的字段索引以节省空间。详细来说,对于每次查询,系统统计每个字段索引被调用的次数,对于被调用次数最多的那些字段索引就被加载到MemCache中,而在MemCache中被调用次数最少的某些字段将被删除。3.2.2 阶梯式数据存储系统更好的存储方式图表 6 阶梯式数据存储系统在此方式的存储结构中数据文件将存储在容量最大而IO速度较慢的HDFS(机械磁盘)上,在容量较大IO速度较快得HDFS(固态磁盘)上存储磁盘索引文件,而在容量较小IO速度最快的MemCache上则已对的形式存储最常用到的字段的索引。MySQL

24、集群作为查询统计结果的缓存,在做数据查询或数据统计处理时可以先到缓存里查找结果,同时还可以对结果集进行如“group by”等操作。Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。3.3 单用户数据查询功能与方案 3.3.1 cProc并行计算架构实时性更强的计算架构 cProc是基于HDFS之上的一个大规模数据并行计算架构,能够将快速提交任务,直接访问HDFS数据节点上的数据文件,具有计算实时性、数据处理本地性等特点。图表 7 cProc并

25、行计算架构特点:1)实时性MapReduce架构的job提交过程较为复杂,客户端将job提交到JobTracker有较长的延迟, JobTracker将job处理为Map/Reduce task后,通过TaskTracker的心跳信息将task任务返回给TaskTracker,此过程中也存在延迟。相对于MapReduce架构, cProc并行计算架构的job提交是实时性的,在提交job之前所需程序jar包已经分发到所有计算节点,在job提交之后,master在初始化处理之后即将task直接分发到所有slave节点上。2)计算的数据本地性在job提交后, master根据数据所在位置分配计算,这

26、样在每个计算节点上要处理的HDFS上的数据块就在本地,这样避免了数据的移动,极大地减少了网络IO负载,缩短了计算时间,同时因为是对本地磁盘文件进行处理,所以不必使用HDFS的API而是直接调用本地操作系统的API。而MapReduce架构虽然也遵循数据本地性,但仍会有很大比例的数据处理不是本地的。3)数据平衡cProc并行计算架构能够周期性地对HDFS上的数据进行维护,保持DataNode节点上所存储的数据量的平衡,减少因数据负载的不平衡而导致的计算负载的不平衡。4)一个job中可实现多个Map和Reduce阶段一个Map/Reduce处理阶段的输入和输出也可以是一个Map和Reduce阶段,

27、这样就可以方便地实现对协作性计算任务的处理。5)基于公平调度策略的任务调度平台公平调度是一种多用户的赋予作业(job)资源的策略,它的目的是让所有的作业随着时间的推移,都能获取与权值相应的共享资源。当单独一个作业在运行时,它将使用整个集群。当有其它作业被提交上来时,系统会将任务(task)空闲计算槽(slot)赋给这些新的作业,以使得每一个作业都大概获取到与权值相应的计算时间。这个特性让短作业在合理的时间内完成的同时又保证了长作业的服务质量。公平调度器按资源池(pool)来组织作业,默认情况下,每一个用户拥有一个独立的资源池。在Slave计算节点上设置有同时运行的任务个数上限,若未达到上限,则

28、就产生了空闲计算槽。当集群上出现空闲计算槽时,调度按两步进行,首先空闲计算槽在作业池之间分配,其次在作业池内的作业间分配。 3.3.2 单用户单表多字段查询单用户单表多字段的查询在cProc计算架构中进行,分为多个Map计算过程。首先,分配不同的字段到不同的计算节点上进行索引查询,接下来,再对查询结果求交集,最后根据索引的结果集去读取数据文件中的记录。此外由于用户给定的查询条件中的字段有可能没有建立索引,因此就可以在记录的结果集中根据这些字段在进行过滤得到最终的记录结果集。具体查询流程如下图所示:图表 8 cProc计算架构下单表多字段查询过程 1)Master节点上的计算:根据查询条件,首先

29、查询MySQL集群中的结果缓存,若缓存中无符合查询条件的记录结果集则通过负载均衡器自动分配轻负载任务(MemCache字段索引查询任务)和重负载任务(HDFS(固态磁盘)上字段索引文件的查询任务)到不同的Slave节点。2)Slave节点上的计算:Map0:根据被分配的所要查询的字段进行索引查询。输入:所要查询的字段名及其取值或取值范围输出:在查询x字段的Slave节点上,将对应此字段查询条件的结果集(数据文件在HDFS的绝对路径以及最终结果在数据文件中的偏移量)依据Slave节点个数进行切分,形成多个子集,分发给集群中的所有Slave节点。而对于其他字段,将其结果的全集分发给集群中的所有Sl

30、ave节点。Map1:对发送到本节点上的所有字段的索引结果集求交集。输入:x字段的索引结果子集和其他字段的索引结果全集。输出:本节点上的所有字段的索引结果集的交集,根据交集中每条记录中的数据文件在HDFS的绝对路径得到数据文件所在物理位置(计算节点)分成多个子集,并将这些子集分发到相对应的计算节点。Map2:根据收到的索引结果集读取本地文件的偏移量并将读取到的数据压缩记录解压得到完整的记录,再根据查询条件中没有建立索引的那些字段的取值或取值范围对这些结果记录进行过滤得出最终记录结果集。输入:索引结果集,其中所有的数据文件均存储在本地。输出:最终记录结果集返回给用户并且根据策略存储到MySQL集

31、群中的记录结果集缓存中。3.4 数据查询统计功能与方案数据查询统计功能采用MapReduce的方式进行查询。鉴于数据查询统计针对于表中的大部分字段,且查询统计需要访问的数据量是庞大的, 因此进行全表扫描.为了实现分布式的全表扫描,这里采用MapReduce任务的方式.对于MapReduce任务,为了保证MR的执行效率,进行了如下优化: 1)如果仅仅是查询,没有聚合操作,则无Reduce .如果还有一些统计信息,例如入sum,max,avg,min等的话,则添加Reduce。2)原则上,每个Map任务仅仅处理本地的Block块,避免网络传输,但某个Map出现问题的话,允许在其他机器上执行。3)鉴

32、于处理的数据量较大,尽量做到实例的重复利用,对于不能重复利用的,在使用完之后,将其置为null,以便垃圾回收器能尽早将其回收。4)在大数据量的情况下,测试MapReduce程序,观察结构是否正确,观察占用系统资源的情况,主要涉及:内存,网络。说明:MapReduce的框架决定了网络必须是良好的。如果期间JobTracker出现问题,则该任务必定失败;如果期间某个TaskTracker出现问题,则只能出现部分结果(也可以按照失败处理)。3.4.1 MapReduce的架构 MapReduce 是云计算的核心计算模式,是一种分布式运算技术,也是简化的分布式编程模式,用于解决问题的程序开发模型,也是

33、开发人员拆解问题的方法。MapReduce 模式的主要思想是将自动分割要执行的问题,拆解成Map(映射)和Reduce(化简)的方式。在数据被分割后通过Map 函数的程序将数据映射成不同的区块,分配给计算机集群处理达到分布式运算的效果,在通过Reduce 函数的程序将结果汇整,从而输出开发者需要的结果。MapReduce 借鉴了函数式程序设计语言的设计思想,其软件实现是指定一个Map 函数,把键值对(key/value)映射成新的键值对(key/value),形成一系列中间结果形式的key/value 对,然后把它们传给Reduce(规约)函数,把具有相同中间形式key 的value 合并在一

34、起。Map 和Reduce 函数具有一定的关联性。MapReduce流程下图所示:图表 9 分布式计算流程 Hadoop 是一个实现了MapReduce 计算模型的开源分布式并行编程框架,程序员可以借助Hadoop 编写程序,将所编写的程序运行于计算机集群上,从而实现对海量数据的处理。此外,Hadoop 还提供一个分布式文件系统(HDFS)及分布式数据库(HBase)用来将数据存储或部署到各个计算节点上。借助Hadoop 框架及云计算核心技术MapReduce 来实现数据的计算和存储,并且将HDFS 分布式文件系统和HBase 分布式数据库很好的融入到云计算框架中,从而实现云计算的分布式、并行

35、计算和存储,并且得以实现很好的处理大规模数据的能力。综合MapReduce和HDFS来看Hadoop的结构:图表 10 Hadoop的基本结构在Hadoop的系统中,会有一台Master,主要负责Namenode的工作以及JobTracker的工作。JobTracker的主要职责就是启动、跟踪和调度各个Slave的任务执行。还会有多台Slave,每一台Slave通常具有DataNode的功能并负责TaskTracker的工作。TaskTracker根据应用要求来结合本地数据执行Map任务以及Reduce任务。 主服务控制集群相当于控制器部分,主要负责接收应用请求并且根据请求类型进行应答。存储节

36、点集群相当于存储器部分,是由庞大的磁盘阵列系统或是具有海量数据存储能力的集群系统,主要功能是处理数据资源的存取。HDFS 和Hbase 用来将数据存储或部署到各个计算节点上。Hadoop 中有一个作为主控的Master,用于调度和管理其它的计算机(将其称之为TaskTracker),Master 可以运行于集群中任一台计算机上。TaskTracker 负责执行任务,必须运行于DataNode上,DataNode 既是数据存储节点,也是计算节点。Master将Map 任务和Reduce 任务分发给空闲的TaskTracker,让这些任务并行运行,并负责监控任务的运行情况。如果其中任意一个Task

37、Tracker 出故障了,Master 会将其负责的任务转交给另一个空闲的TaskTracker 重新运行。用户不直接通过Hadoop 架构读取及HDFS 和Hbase存取数据,从而避免了大量读取操作可能造成的系统拥塞。用户从Hadoop 架构传给主服务控制集群的信息后,直接和存储节点进行交互进行读取操作。3.4.2 多表连接功能与方案多表关联查询采用MapReduce的方式。通过在Reduce端Join,实现多表关联。Join的原理如下:假设表A,表按照A.m = B.n进行Join,则对两者进行如下的MapReduce 运算。Map端:A表的记录为:(m,0),A),B表的记录为:(n,1

38、),B),将两者按照,的值进行hash,将m,n的hash值相同的记录放到一台机器上进行Reduce.Reduce端:,相同的记录必定放在同一台机器上,并且,已排好序的存放,因此,在每台机器上进行Join输出结果。最后,取每台机器的Join结果,就是最后的多表Join的结果。对于复杂的查询语句,可以先通过索引的方式过滤出中间集,然后对中间集做,最后得出结果。以下给出多表关联的实例:源表:源表sys_area: 区域ID 区域1广州2佛山3珠海源表cdr_hwcdma_1x_event: 区域ID imsi其他字段1123xxxxx1124xxxxx2125xxxxx2126xxxxx3127x

39、xxxx3128xxxxxMap的输入:表A:key区域ID 区域(1,0)1广州(2,0)2佛山(3,0)3珠海表B:key区域ID imsi其他字段(1,1)1123xxxxx(1,1)1124xxxxx(2,1)2125xxxxx(2,1)2126xxxxx(3,1)3127xxxxx(3,1)3128xxxxxMap的输出:keyFiled1Filed2Filed3(1,0)1广州(1,1)1123xxxxx(1,1)1124xxxxx(2,0)2佛山(2,1)2125xxxxx(2,1)2126xxxxx(3,0)3珠海(3,1)3127xxxxx(3,1)3128xxxxxRedu

40、ce的输入:Mach1:keyFiled1Filed2Filed3(1,0)1广州(1,1)1123xxxxx(1,1)1124xxxxxMach2:keyFiled1Filed2Filed3(2,0)2佛山(2,1)2125xxxxx(2,1)2126xxxxxMach3:keyFiled1Filed2Filed3(3,0)3珠海(3,1)3127xxxxx(3,1)3128xxxxxReduce的输出:Mach1:Filed1Filed2Filed3Filed4Filed51广州1123xxxxx1广州1124xxxxxMach2:Filed1Filed2Filed3Filed4Filed

41、52佛山2125xxxxx2佛山2126xxxxxMach3:Filed1Filed2Filed3Filed4Filed53珠海3127xxxxx3珠海3128xxxxx最后将每台机器的结果汇总,就得到了Join的结果。Filed1Filed2Filed3Filed4Filed51广州1123xxxxx1广州1124xxxxx2佛山2125xxxxx2佛山2126xxxxx3珠海3127xxxxx3珠海3128xxxxx整个流程如下图所示:图表 11 Join的流程图 100G数据的性能估计为72秒120秒。4 Avatar系统更好的计算与存储集群可靠性4.1 计算与存储集群Master单点失

42、效容错处理图表 12 Master单点失效容错处理(1)Avatar机制AvatarNode0以Primary方式启动,AvatarNode0作为Namenode节点与用户交互。AvatarNode1以Standby方式启动,它是一个处于safemode的Namenode。它定期读取AvatarNode0的日志来更新自己内存和磁盘中的元数据,并定期做checkpoint,更新AvatarNode0上的fsimage以及editlog。DataNode节点向AvatarNode0和AvatarNode1同时发送心跳信息和BlockReport,其中包括Block的位置信息。NFS服务器存储Ava

43、tarNode0和AvatarNode1的fsimage和editlog。AvatarNode的primary节点写入editlog,standby节点读取editlog,更新内存中的元数据信息,并且定期做checkpoint,将fsimage及editlog回写到nfs服务器。具体使用时:AvatarNode0以Primary方式启动,AvatarNode1以Standby方式启动,然后启动各个DataNode。当AvatarNode0确认故障后,手动切换AvatarNode1到Primary,同时,选取一个备用节点,以standby启动,这样,当AvatarNode1发生故障时,即可将备用

44、节点切换到Primary状态,始终保持Namenode可以对外提供服务。 (2)Avatar运行流程1)AvatarNode0以Pimary启动a)等待DN的心跳信息 b)图5-2中的sharedir为NFS服务器上的共享目录/usr/local/sharedir,share0、share1分别为AvatarNode0、AvatarNode1镜像日志的存储目录c)一个DN抽象代表了所有的DataNodeAvatarNode0:PrimaryNFS服务器ClientDN读写镜像日志用户请求只能操作元数据AvatarNode1:XXXXsharedirshare1share0图表 13 Avata

45、rNode0以Pimary启动过程 2)AvatarNode1以Standby启动a)若启动参数中有 -sync,则AvatarNode1备份本地和NFS的镜像日志目录,而后用NFS中的AvatarNode0对应镜像日志目录中覆盖AvatarNode1的本地和NFS的对应目录;b)启动之后,处于保护模式;c)等待DN的心跳信息;d)ingest线程从NFS中的AvatarNode0对应日志的目录中读取AvatarNode0启动后的日志后线程关闭;e)启动ingest线程定期从NFS中的AvatarNode0对应日志的目录中读取AvatarNode0的日志。AvatarNode0:PrimaryClientDNAvatarNode1:Standby读日志用户请求,读写文件操作数据与元数据用户请求只能读操作NFS服务器NFS服务器sharedirshare1share0写镜像写日志

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁