大数据平台概要设计说明书模板_第1页
大数据平台概要设计说明书模板_第2页
大数据平台概要设计说明书模板_第3页
大数据平台概要设计说明书模板_第4页
大数据平台概要设计说明书模板_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

计算平台概要设计说明书文件编号受控编号版次1.0密级内部公开总页数42附录作者:日期:-01-28同意:日期:审核:日期:(版权全部,翻版必究)

文件修改统计修改日期修改状态修改页码及条款修改人审核人同意人

目录1. 引言 51.1 编写目标 51.2 术语与缩略词 61.3 对象及范围 81.4 参考资料 92. 系统总体设计 92.1 需求要求 92.1.1 数据导入 92.1.2 数据运算 92.1.3 运算结果导出 102.1.4 系统监控 102.1.5 调度功效 112.1.6 自动化安装布署与维护 112.2 运行环境 122.3 基本设计思绪和处理流程 132.4 系统结构 142.4.1 大数据运算系统架构图 142.4.2 hadoop体系各组件之间关系图 142.4.3 计算平台系统功效图 152.4.4 系统功效图逻辑说明 162.4.5 计算平台业务流程图 162.5 还未处理问题 173. 模块/功效设计 173.1 计算驱动模块 173.1.1 设计思绪 173.1.2 流程图 193.1.3 处理逻辑 203.2 调度模块 203.2.1 设计思绪 203.2.2 流程图 223.2.3 处理逻辑 233.3 自动化安装布署模块 233.3.1 设计思绪 233.3.2 处理逻辑 233.4 调度模块与计算驱动模块交互流程 243.4.1 处理流程图 243.4.2 处理逻辑 243.4.3 hadoop驱动模块调用驱动接口 253.4.4 调度模块接收hadoop执行状态接口 253.5 调度模块与kettle交互流程 263.5.1 处理流程图 263.5.2 处理逻辑 273.6 对调度任务运行过程进行监控流程 273.6.1 处理流程图 273.6.2 处理逻辑 273.7 对hadoop驱动任务运行过程进行监控流程 283.7.1 处理流程图 283.7.2 处理逻辑 283.8 对操作系统/应用程序监控流程 293.8.1 处理流程图 293.8.2 处理逻辑 293.9 监控报警模块 303.9.1 设计思绪 303.9.2 流程图 313.9.3 处理逻辑 314. 系统数据结构设计 324.1 数据实体关系图 324.2 数据逻辑结构 324.2.1 驱动任务设置表 324.2.2 驱动设置表 334.2.3 驱动任务执行明细表 344.2.4 调度任务表 344.2.5 调度步骤表 354.2.6 调度步骤执行统计表 364.2.7 操作系统监控数据表 374.2.8 应用程序监控数据表 384.2.9 监控系统配置表 384.2.10 业务数据统计表 394.3 数据物理结构 395. 安全设计 396. 容错设计 406.1 挽救方法 406.2 系统维护设计 407. 日志设计 40

引言编写目标大数据泛指巨量数据集,因可从中挖掘出有价值信息而受到重视。《华尔街日报》将大数据时代、智能化生产和无线网络革命称为引领未来繁荣三大技术变革。麦肯锡企业汇报指出数据是一个生产资料,大数据是下一个创新、竞争、生产力提升前沿。世界经济论坛汇报认定大数据为新财富,价值堪比石油。所以,发达国家纷纷将开发利用大数据作为夺取新一轮竞争制高点主要抓手。互联网尤其是移动互联网发展,加紧了信息化向社会经济各方面、大众日常生活渗透。有资料显示,1998年全球网民平均每个月使用流量是1MB(兆字节),是10MB,是100MB,是1GB(1GB等于1024MB),将是10GB。全网流量累计达成1EB(即10亿GB或1000PB)时间在是一年,在是一个月,在是一周,而仅需一天,即一天产生信息量可刻满1.88亿张DVD光盘。我国网民数居世界之首,天天产生数据量也位于世界前列。淘宝网站天天有超出数千万笔交易,单日数据产生量超出50TB(1TB等于1000GB),存放量40PB(1PB等于1000TB)。baidu企业现在数据总量靠近1000PB,存放网页数量靠近1万亿页,天天大约要处理60亿次搜索请求,几十PB数据。一个8Mbps(兆比特每秒)摄像头一小时能产生3.6GB数据,一个城市若安装几十万个交通和安防摄像头,每个月产生数据量将达几十PB。医院也是数据产生集中地方。现在,一个病人CT影像数据量达几十GB,而全国每年门诊人数以数十亿计,而且他们信息需要长时间保留。总之,大数据存在于各行各业,一个大数据时代正在到来。信息爆炸不自今日起,但近年来人们愈加感受到大数据来势迅猛。首先,网民数量不停增加,另首先,以物联网和家电为代表联网设备数量增加更加快。全球有5亿个设备联网,人均0.1个;全球将有500亿个设备联网,人均70个。伴随宽带化发展,人均网络接入带宽和流量也快速提升。全球新产生数据年增40%,即信息总量每两年就能够翻倍,这一趋势还将连续。现在,单一数据集容量超出几十TB甚至数PB已不罕见,其规模大到无法在允许时间内用常规软件工具对其内容进行抓取、管理和处理。数据规模越大,处理难度也越大,但对其进行挖掘可能得到价值更大,这就是大数据热原因。鉴于越来越大数据规模,采取常规基于DBMS数据分析工具和方法已经无法满足大规模数据分析需求,现在一些大型互联网企业采取hadoop体系进行大规模数据运算,结合hadoop体系结构与实际运算需求结合,采取hadoop体系结构分布式运算模型,经过集群方式实现大数据运算,为企业提供大数据价值。为适应大数据计算要求,同时提供大数据运算平台系统设计依据,特制订计算平台系统概要设计文档,为后期系统详细设计和实现提供依据。术语与缩略词以下术语、定义和缩略语适适用于本标准:术语与缩略词解释备注NamenodeHDFS采取master/slave架构。一个HDFS集群是由一个Namenode和一定数目标Datanodes组成。Namenode是一个中心服务器,负责管理文件系统名字空间(namespace)以及客户端对文件访问。Namenode执行文件系统名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到详细Datanode节点映射Datanode集群中Datanode通常是一个节点一个,负责管理它所在节点上存放。HDFS暴露了文件系统名字空间,用户能够以文件形式在上面存放数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存放在一组Datanode上。Datanode负责处理文件系统客户端读写请求。在Namenode统一调度下进行数据块创建、删除和复制Secondnamenode光从字面上来了解,很轻易让一些初学者先入为主认为:SecondaryNameNode(snn)就是NameNode(nn)热备进程。其实不是。snn是HDFS架构中一个组成部分,不过经常因为名字而被人误解它真正用途,其实它真正用途,是用来保留namenode中对HDFSmetadata信息备份,并降低namenode重启时间JobtrackerJobTracker是MapReduce框架中最主要类之一,全部job执行都由它来调度,而且Hadoop系统中只配置一个JobTracker应用。

它们都是由一个master服务JobTracker和多个运行于多个节点slaver服务TaskTracker两个类提供服务调度。master负责调度job每一个子任务task运行于slave上,并监控它们,假如发觉有失败task就重新运行它,slave则负责直接执行每一个taskTaskTrackerTaskTracker都需要运行在HDFSDataNode上,而JobTracker则不需要,通常情况应该把JobTracker布署在单独机器上HBaseHBase是一个分布式、面向列开源数据库,该技术起源于Changetal所撰写谷歌论文“Bigtable:一个结构化数据分布式存放系统”。就像Bigtable利用了谷歌文件系统(FileSystem)所提供分布式数据存放一样,HBase在Hadoop之上提供了类似于Bigtable能力。HBase是ApacheHadoop项目标子项目。HBase不一样于通常关系数据库,它是一个适合于非结构化数据存放数据库。另一个不一样是HBase基于列而不是基于行模式。Hivehive是基于Hadoop一个数据仓库工具,能够将结构化数据文件映射为一张数据库表,并提供完整sql查询功效,能够将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,能够经过类SQL语句快速实现简单MapReduce统计,无须开发专门MapReduce应用,十分适合数据仓库统计分析。StormStorm为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。这是管理队列及工作者集群另一个方式。Storm也可被用于“连续计算”(continuouscomputation),对数据流做连续查询,在计算时就将结果以流形式输出给用户。它还可被用于“分布式RPC”,以并行方式运行昂贵运算。FlumeFlume是Cloudera提供一个高可用,高可靠,分布式海量日志采集、聚合和传输系统,Flume支持在日志系统中定制各类数据发送方,用于搜集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接收方(可定制)能力。ETLETL是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)过程。是构建数据仓库主要一环,用户从数据源抽取出所需数据,经过数据清洗,最终按照预先定义好数据仓库模型,将数据加载到数据仓库中去。KettleKettle是一款国外开源ETL工具,纯java编写,能够在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。MySQLMySQL是一个开放源码小型关联式数据库管理系统,开发者为瑞典MySQLAB企业。现在MySQL被广泛地应用在Internet上中小型网站中。因为其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MongoDBMongoDB是一个介于关系数据库和非关系数据库之间产品,是非关系数据库当中功效最丰富,最像关系数据库。他支持数据结构非常涣散,是类似jsonbson格式,所以能够存放比较复杂数据类型。Mongo最大特点是他支持查询语言非常强大,其语法有点类似于面向对象查询语言,几乎能够实现类似关系数据库单表查询绝大部分功效,而且还支持对数据建立索引。对象及范围1、开发人员、DBA、测试人员;2、研发主管领导、产品人员;参考资料1、《大数据处理体系架构》2、《HBaseTheDefinitiveGuide》3、《The.Definitive.Guide.3rd.Edition.May.》4、《Programming_Hive》系统总体设计需求要求运行环境操作系统:RedHadEnterprise5.5软件环境:Java1.6Hadoop-1.0.4HBase-0.94.9Hive-0.10.0sqoop-1.4.2zookeeper-3.4.5Kettle4.3MySQL5.1硬件环境:8核16G内存PC服务器8台基本设计思绪和处理流程1、按照数据分析实时性,分为在线数据分析和离线数据分析。2、在线数据分析:往往要求系统在数秒内返回上亿行数据分析,从而才能达成不影响用户体验目标。3、离线数据分析:对大多数反馈时间要求不高应用,比如离线统计分析、机器学习等,应采取离线分析方式,经过数据采集工具将日志数据导入专门分析平台进行分析。4、系统主要以离线数据分析为主,采取现在在互联网业界流行hadoop体系结构对大批量数据进行运算,采取hadoop集群方式对大数据进行运算。5、数据运算平台以调度为根本,作为运算平台关键控制系统,对运算平台各个步骤进行控制,且对运算过程中步骤依赖关系进行控制,同时对各个步骤进行监控,经过监控异常报警来提升系统稳定性和异常响应速度。系统结构大数据运算系统架构图日志存放日志存放统计分析数据应用Hadoop(HDFS、HBASE)在线计算:Storm流计算框架离线计算:Hadoop(Map/Reduce、Hive、pig)日志采集日志采集系统Flume数据服务数据提取,报表展现,功效、网页展示……统计、分析数据存放,数据接口MongoDB、MySql大数据平台系统功效图系统功效图逻辑说明生产系统源数据经过sqoop,flume,Kettle等获取后保留在Kafka消息队列中或者保留到hadoophdfs系统中。调度系统负责本身控制功效,经过读取调度控制配置信息调用驱动代理程序处理相关运算功效。驱动代理程序负责全部基于运算平台相关组件驱动任务,读取调度系统传递过来模版信息,读取模版信息,并执行对应驱动操作。系统管理功效部分完成系统相关配置,管理等相关信息维护操作。监控系统对整个系统运行情况进行监控,由各个业务子系统按照监控系统要求实现对应监控功效。大数据平台功效结构图大数据平台功效结构图说明:1)大数据平台功效结构主要划分为计算平台,应用平台,系统管理以及监控,配置等相关应用功效。2)计算平台分为基础运算部分,模版管理部分,驱动代理部分,系统调度部分。3)计算平台分为离线计算与实时计算两种形式。4)计算平台基于模版功效开发,实际应用中做到模版热插拔,对于功效需求只需要开发对应模版,并布署上计算平台即可应用。5)驱动代理程序管理全部基于大数据运算相关组件代理功效,对外提供给调度系统应用,调用模版设置对应类型,进行对应类型驱动操作。6)调度系统只关心其本身系统控制能力,不参加详细业务以及计算功效组件调用。还未处理问题无模块/功效设计调度模块设计思绪一:调度模块实现功效思绪二:流程说明以及注意事项:任务与步骤采取配置表方式保留在mysql中,调度程序定时扫描任务表,判断是否有开启任务,假如有开启任务,则开启任务。调度任务需要判断任务中步骤之间依赖关系,依照依赖关系判断是否能够执行下一步执行步骤。一个任务中能够包含多个步骤,每个步骤为一个详细任务,步骤与步骤直接存在依赖关系。对于详细执行任务将由驱动代理自动完成。流程图处理逻辑1、调度任务开启后扫描任务配置表,看任务配置表是否存在需要处理任务信息,假如不存在需要处理任务信息,则线程执行休眠,不然执行步骤2;2、生成数据日期,并检验任务依赖关系,假如依赖关系未执行完,则现成等候操作,等候依赖任务执行完成,假如依赖关系都执行完,则获取符合条件任务,执行步骤3:3、读取任务信息表,获取任务信息,依照任务信息读取步骤信息,执行对应步骤操作,执行步骤4;4、依照步骤信息配置获取需要执行对应模版信息,调用驱动代理程序执行对应功效,执行步骤5;5、驱动代理程序执行模版初始化,初始化完成后获取对应参数数据,并依照模版类型选择详细驱动程序,执行对应操作。6、判断该任务下步骤是否执行完成,假如未执行完成,则执行步骤3,继续下一个步骤执行,不然执行步骤7;7、写步骤完成信息表,判断是否还存在要执行任务,假如没有等候,存在需要执行任务则执行步骤3.驱动代理模块设计思绪一:计算驱动模块实现功效思绪二:流程说明以及注意事项:1、计算平台驱动提供针对Hive,MapReduce,Hbase等相关驱动应用。2、基于业务模版设置操作,调度执行业务模版,不关心模版详细业务形态。3、一个驱动应用包含四个步骤:1)删除不用数据;2)加载数据;3)运算;4)导出结果文件。4、提供监控需要对应信息。5、对于文件操作,会包括到多个文件或者目录操作,多个文件或者目录以逗号分隔,对文件操作中包括到一些按照小时,天,月份文件命名操作,配置中以特殊字符进行替换。流程图处理逻辑1、由调度程序驱动代理模块,调用驱动代理模块驱动应用,传递需要驱动模版编号,处理时间范围等相关信息,执行流程2;2、驱动程序首先查询是否存在该模版,假如不存在模版,、则执行流程3,不然执行流程4;3、则直接返回任务失败信息,不存在相关模版,整个流程结束;4、假如查询到相关模版信息,先执行初始化模版信息以及需要删除中间文件,多个文件以逗号分割,假如为空则表示不需要清理中间文件,执行流程5;5、清理hive表数据操作,多个hive语句以逗号分割,假如为空则表示不需要进行分割,执行流程66、判断该操作是hive驱动mapreduce还是自定义mapreduce,假如是自定义mapreduce则走自定义mapreduce操作,执行流程7,不然假如是hive驱动mapreduce,则走hive操作流程,不然执行流程8;7、假如mapreduce操作流程,第一步执行加载文本文件数据,多个文本文件以逗号进行分割,第二步执行mapreduce操作,经过shell脚本方式执行mapreduce操作,第三步执行完后将结果输出。8、假如是hive操作流程,第一步先执行加载文本文件到hive表,假如有多个文件操作一逗号分割,第二步执行hive语句,多个hive语句以逗号分割方式,第三步将结果输出到对应hive表中。9、依照设置导出方式,将结果文件导出到mysql,或者mongodb,或者直接将文本文件从hdfs文件系统中导出。对操作系统/应用程序监控流程处理流程图处理逻辑1、读取监控服务器列表,判断是否需要监控,假如需要监控,则执行步骤2,假如不需要监控,执行步骤5;2、监控模块向监控服务器发送监控请求,等到被监控服务器返回,执行步骤3;3、被监控服务器接收到请求监控信息后,将相关信息返回给监控模块,执行步骤4;4、监控服务器将返回数据进行解析后入库,执行步骤5;5、判断被监控服务器是否都请求完成,假如请求完成,则执行步骤6,不然执行步骤1;6、监控模块线程休眠10分钟,等候下次进行监控,执行步骤1.监控报警模块设计思绪一:监控模块实现功效思绪二:流程说明以及注意事项:1、监控报警模块主要完成三个级别监控报警,分为:1)操作系统级别,检测运行机器操作系统是否正常运行,CPU,内存,I/O,存放等资源利用情况,采取LinuxShell脚本对相关信息进行搜集并上报;2)应用程序级别监控,检测kettle,hadoop,hive,hbase,zookeeper等相关程序是否正常开启,以及应用程序相关资源监控。3)程序数据级别监控,对数据情况进行监控,主要是数据异常监控。2、监控模块主要负责监控数据采集,数据异常报警,以及后期监控数据展示等功效。3、对于系统级别和应用程序级别监控数据采集采取由监控模块主动调用对应应用接口方式采集数据,对于应用数据级别监控则由各个应用将相关数据写入到数据库表,由监控系统对其进行扫描。4、监控模块报警机制支持优先级报警模式,对于优先级较高,需要紧急处理报警,需要不间断进行报警,但需要设置报警频率,如10分钟重复一次。5、监控报警模式采取邮件监控方式,辅助以短信提醒方式。流程图处理逻辑1、监控报警开启采取开启开启方式进行,当监控报警线程开启后判断是否抵达监控时间点,假如未抵达监控时间点,则线程休眠1分钟后再次进行判断,假如抵达监控时间点则执行步骤2。2、读取需要监控任务列表,得到需要监控任务,执行步骤3。3、对监控任务源数据进行扫描,判断是否存在异常,假如存在异常则保留监控异常数据,执行步骤4,不然执行步骤1。4、判断监控列表是否都执行完,假如执行完,对于异常情况以邮件方式通知相关人,不然执行步骤3。系统数据结构设计数据实体关系图详细图例见附件数据逻辑结构调度任务表字段说明数据类型是否为空主键备注TaskId任务IDint否是主键,自增加IDTaskName任务名称Varchar(255)否TaskDesc任务描述Varchar(500)是Priority优先级int是数值1~10值越大优先级越高,默认5CycleType周期类型int否0.执行一次1.分钟2.小时3.天4.月Interval频次间隔Int是整数PlanRunTime预期执行时长Int是单位:分钟LastRunDate最终执行日期int否0101Status任务状态int否0.正常1.暂停CreateUser创建人Varchar(255)否CreateTime创建时间date否ModifyUser修改人Varchar(255)是ModifyTime修改时间date是调度步骤表字段说明数据类型是否为空主键备注StepId步骤IDint否是主键,自增加IDTaskId任务IDint否“任务表”主键StepSort执行次序int否相同则表示并行StepName步骤名称Varchar(255)否TemplateID模板IDInt否PlanRunTime预期执行时长Int是单位:分钟CreateUser创建人Varchar(255)否CreateTime创建时间date否ModifyUser修改人Varchar(255)是ModifyTime修改时间date是调度任务依赖表字段说明数据类型是否为空主键备注TaskId任务IDint否FatherId父任务IDint否调度任务运行日志表字段说明数据类型是否为空主键备注SerialId统计IDInt否是主键,自增加IDTaskDate任务日期Int否TaskId任务IDInt否“任务表”主键Status任务状态Int否0.初始化1执行中2.已完成-99.执行错误RetryTimes重试次数IntBeginTime开始执行时间Date是EndTime结束执行时间Date是CreateTime创建时间Date否ModifyTime修改时间Date是调度步骤运行日志表字段说明数据类型是否为空主键备注SerialId统计IDInt否是主键,自增加IDTaskDate步骤日期Int否TaskId任务IDInt否“任务表”主键StepId步骤IDInt否“步骤表”主键StepSort步骤序号int否Status步骤状态Int否0.初始化1.执行中2.已完成-99.执行错误RetryTimes重试次数IntBeginTime开始执行时间Date是EndTime结束执行时间Date是CreateTime创建时间Date否ModifyTime修改时间Date是调度步骤运行错误日志表字段说明数据类型是否为空主键备注SerialId统计IDInt否是主键,自增加IDTaskDate任务日期Int否TaskId任务IDInt否StepId步骤IDInt否ErrorInfo错误信息Varchar(4000)否InsertTime统计时间Date是系统资源表字段说明数据类型是否为空主键备注ResourceId资源IDInt否是主键,自增加IDCpuInfoCpu信息Varchar(4000)是MemoryInfo内存信息Varchar(4000)是DiskInfo硬盘信息Varchar(4000)是CreateTime统计创建时间date否CreateName统计创建人Varchar(256)否ModifyTime统计修改时间Date否ModifyName统计修改人Varchar(256)否服务器机器表字段说明数据类型是否为空主键备注MachineId机型IDInt否是主键,自增加IDCpuInfoCpu信息Varchar(4000)是MemoryInfo内存信息Varchar(4000)是DiskInfo硬盘信息Varchar(4000)是CreateTime统计创建时间date否CreateName统计创建人Varchar(256)否ModifyTime统计修改时间Date否ModifyName统计修改人Varchar(256)否服务器信息表字段说明数据类型是否为空主键备注ServerId服务器IDInt否是主键,自增加IDServerName服务器名称Varchar(256)是ServerIp服务器IPVarchar(256)是CreateTime统计创建时间date否CreateName统计创建人Varchar(256)否ModifyTime统计修改时间Date否ModifyName统计修改人Varchar(256)否系统管理信息表字段说明数据类型是否为空主键备注SystemId服务器IDInt否是主键,自增加IDMachineId机型IDInt否ResourceId资源IDInt否ServerId服务器IDInt否CreateTime统计创建时间date否CreateName统计创建人Varchar(256)否ModifyTime统计修改时间Date否ModifyName统计修改人Varchar(256)否集群信息表字段说明数据类型是否为空主键备注ClusterId集群IDInt否是主键,自增加IDClusterName集群名称Varchar(256)是ClusterPath集群配置目录Varchar(256)是Remark集群配置备注Varchar(256)是CreateTime统计创建时间date否CreateName统计创建人Varchar(256)否ModifyTime统计修改时间Date否ModifyName统计修改人Varchar(256)否集群列表字段说明数据类型是否为空主键备注ListId集群列表IDInt否是主键,自增加IDClusterId集群IDInt否ServerId服务器IDInt否CreateTime统计创建时间date否CreateName统计创建人Varchar(256)否ModifyTime统计修改时间Date否ModifyName统计修改人Varchar(256)否系统配置表字段说明数据类型是否为空主键备注ConfigId系统配置IDInt否是主键,自增加IDConfigName配置名称Varchar(256)否ConfigValue配置信息Varchar(256)否ClusterId集群IDInt否CreateTime统计创建时间date否CreateName统计创建人Varchar(256)否ModifyTime统计修改时间Date否ModifyName统计修改人Varchar(256)否Hadoop参数配置表字段说明数据类型是否为空主键备注ConfigId系统配置IDInt否是主键,自增加IDConfigName配置名称Varcha

温馨提示

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

最新文档

评论

0/150

提交评论