文献综述(或调研报告):
在微服务架构中,应用由许多的微服务组成,每个微服务对应一个独立的业务功能,只定义该功能必须的一些操作。微服务架构具有很高的扩展性,既可以服务内部扩展也可以系统横向的扩展。除此之外,微服务架构中的各个微服务具备独立部署的能力,因此当某个微服务发生变化时只需要重新编译部署相应的微服务,而不用将整个系统重新编译部署,降低了对系统环境所造成的风险。[4]
文中提出了一种基于微服务的应用架构,将单体应用分解为微应用和微服务。微应用负责提供界面交互,并对微服务进行应用编排。微应用是呈现给业务人员的操作界面,是满足用户业务需求、提高用户操作体验的功能组合,通过调用一个或多个微服务实现业务需求对应的逻辑。微服务负责实现业务逻辑,并封装成服务接口对外提供,对应独立的子数据库,并对数据库进行访问。微服务是指一系列的微型服务,组合用以开发支撑一个应用。微应用、微服务作为独立进程运行,微应用与微服务之间、 微服务相互之间通过轻量级通信机制交互。[10] 基于微服务架构的应用结构图如下:
Spark不仅保留了MapReduce的可扩展性、容错性、兼容性,同时由于Spark基于内存的编程模型,它可以把中间的迭代过程不放在磁盘中,直接数据不落地在内存中执行,极大地提高了它的执行速度,具有快速、通用、简单等特点。因此Spark在大数据计算上比MapReduce快100倍。[1]
Spark应用程序在集群上是一个独立运行的过程,在主程序中有 SparkContext对象协调(驱动程序)。SparkContext可以连接多种类型的 cluster managers(Sparkrsquo;s own standalone cluster manager or Mesos/YARN),跨应用程序分配资源。一旦连接,Spark获得集群中节点的executors(执行权),应用程序进行计算和存储数据是一个过程。接下来,它将发送你的程序代码(JAR或Python文件传递给SparkContext)到 executors。最后,SparkContext发送tasks给executors执行。[11]Spark 的任务调度方式流程图如下:
云数据库具有很好的可扩展性和容灾性,并且具有高效的读写性能,能满足海量数据的分布式应用需求。[6]
大数据环境下,需要以数据为中心,考虑海量数据的存储、管理及数据分析。传统的数据处理方法,已经不能适应大数据的需求。大数据要处理大量、非结构化的数据,所以在各个处理环节中都可以采用Mapreduce等方式进行处理。把非结构化数据或者半结构化数据转化为结构化数据,把繁杂庞大的结构化数据转化为简单的可以直接使用的数据。本系统主要关注文献中的数据清洗和数据合并:数据清洗是指采用Spark编程模型处理已经导入存储系统的数据,然后把处理后的有效数据再重新导入存储系统。数据合并是指把清洗后的相同或者相似类型的数据按照一定的合并规则合并成一组数据,数据规模可以是一个或者多个。[2]
实际中,向HBase写入非结构化数据时,存在严重延时问题。[7]同时,HBase提供的查询,只是基于主键来实现快速查询,如果用户不使用主键信息进行查询操作用其他方法会导致查询效率太低,根本无法满足实时査询的需要。
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。