大数据平台下推荐系统的研究与实现
这是一篇关于推荐系统,Spark,流计算,实时推荐的论文, 主要内容为如何从海量数据中快速、有效挖掘出用户感兴趣的信息或商品是推荐系统领域的研究范畴,随着大数据时代的到来,这一类需求更加强烈。尽管推荐系统在理论与应用上已经取得了一定成果,然而传统推荐算法面对大数据处理需耗费大量时间,无法满足在线实时推荐的应用需求。Spark内存计算平台的出现能够为提高推荐算法运行效率与实时性提供技术支撑。本文旨在利用Spark平台对推荐算法进行优化与并行化实现,并且利用流计算框架实现一个能够满足离线与在线推荐相结合的推荐系统。基于Spark平台与相关的大数据技术,本文的研究内容如下:(1)协同过滤推荐算法的优化与并行化实现。针对基于用户的推荐方法迭代计算效率低的问题,利用Spark实现基于聚类的方法来加快算法的运行效率,针对ALS方法忽略相似度信息的缺陷,使用与KNN结合的KNN-ALS模型方法。同时为改善用户相似度计算时出现的量纲差异使用修正的相似度度量方法。(2)基于Spark的推荐系统实现,在大数据技术的基础上,利用Spark搭建离线与在线结合的推荐系统,其中离线推荐重点对数据仓库与推荐引擎设计,在线推荐则主要通过Kafka与Spark Streaming框架结合实现实时推荐设计。在电影数据集上的实验结果表明,离线推荐上,改进后的并行化推荐算法在相关评测指标上均通过了测试,另外,系统搭建的数据仓库在读写性能与存储空间上相比传统存储方式都具有非常大的优势;在线推荐上,通过Kafka与Spark Streaming的结合,完成了数据的实时加载与模型的更新,能够在动态数据环境下完成在线推荐。
基于分布式实时流计算的资讯feed流系统
这是一篇关于分布式,微服务,流计算,feed流的论文, 主要内容为当下,互联网应用开发非常重视流量,用户越多产生的价值越大。而feed流作为一种典型的流量入口,被越来越多的互联网产商使用,也受到互联网用户的广泛喜爱。但在数据以及用户数量急剧攀升至海量之后,feed流系统将面临高并发、吞吐量、实时性等诸多方面的严峻考验。因此非常有必要引入一套能够支撑海量数据和用户并同时能保证实时性的feed流系统。本文在调研了众多互联网头部产商的产品架构以及当前主流技术工具之后,确立了采用分布式实时流计算的技术构建一套能够实现高并发高吞吐量低延时的feed流系统的端到端解决方案。通过将整个系统分解成售前、售中、售后三大环节,feed流系统中的资讯实体可以被当做商品来看待,从传统商品销售的角度可以更好地理解本系统的业务流程。售前包括资讯的收集、审核过滤、分类、标签生成,涉及的技术包括爬虫、文本分类、RPC(远程过程调用)。售中就是用户与新闻资讯的交互过程,使用的技术包括Spring Boot、Nginx、My SQL、Redis。售后是一个包含了运营数据统计、展示、负反馈处理的运营平台,使用了Flink、Grafana等技术框架。本文在系统中对流动数据的管控与处理均体现了流计算的设计思路,以此达到在多个组件之间上下游数据的高吞吐量与实时性。本文在多处使用了分布式的架构来分散高并发的任务,使系统能充分利用廉价的硬件资源来实现高效、高可用的服务。与此同时,通过引入Docker容器技术以及Kubernetes集群管理工具,系统中数量众多的微服务部署运维得以简化。本文严格按照规范的软件开发流程进行了feed流系统的设计与实现,按顺序进行了需求分析、业务拆分、可行性分析即基础理论调研与技术选型、具体设计与实现、功能与性能测试等软件系统开发规程。使用功能模块图、架构图从整体上阐述系统的设计思想,使用程序流程图、时序图、类图、用例图等大量图表从细节上讲解每个功能模块的实现步骤,并且进行了基本的功能测试与性能测试,最终交付上线并正常稳定地运行。
分布式流计算平台调度与元数据管理的设计与实现
这是一篇关于分布式,流计算,元数据管理,调度算法的论文, 主要内容为随着互联网时代的到来,数据的形式和规模都发生了天翻地覆的变化。传统的数据具有静态与格式化的特性,且数据规模较小,可以采用单机的计算节点执行数据处理的任务。在处于信息化时代的今天,数据变化为规模庞大的非结构化实时异构数据,并且常以流式数据的形式存在。流式数据具有时间属性,传统的数据处理技术会丢失流式数据计算结果的准确性与价值,这导致新兴的数据计算任务不得不摒弃传统数据处理技术。以流式数据为代表的海量实时异构数据的处理技术难题亟待解决。本文基于为用户提供高吞吐低延时计算服务的分布式流计算平台,围绕分布式流计算平台中的控制节点,关注系统调度算法方面和元数据管理方面的研究。主要工作如下:1)设计并实现了分布式流计算平台采用的初调度、重调度、恢复调度三阶段的调度算法:在任务开始运行时采用初调度算法分析任务的资源需求并采取负载均衡的分配方案;在系统和任务运行期间采用重调度算法动态调整任务的性能瓶颈问题和系统的资源倾斜问题;在系统或任务出现异常时采用恢复调度算法降低任务的损失,并尽快恢复任务的高性能运行状态。力求更好地提高资源的利用率、实现系统的负载均衡,最终使得系统整体的吞吐率达到最大;2)自定义了一套分布式流计算平台的元数据抽象模型,以自定义流计算任务拓扑与插件的形式将具体的业务代码与流计算平台系统解耦,将分布式流计算平台通用化。采用内存管理与持久化存储的元数据两阶段提交的同步方式,提高了元数据的可靠性;通过元数据中心管理节点的主从备份策略,避免了管理节点的单点故障问题;3)设计并实现了分布式流计算平台的核心:控制节点。控制节点程序集合初调度、重调度、恢复调度三阶段调度算法和元数据管理两部分职能,并作为系统的管理者,与分布式流计算平台中的其他节点进行交互、负责系统资源管理、流计算任务相关的关键元数据管理等。通过对分布式流计算平台元数据管理及调度算法的功能和性能测试,达到了系统元数据可靠性管理的需求;相比同类系统在整体性能上占优;调度算法在运行期间会对任务和系统进行动态调整,对故障或异常情况会及时执行恢复调度;调度算法降低了流计算任务对网络的资源需求量,对系统整体的吞吐量亦有所提升。
基于Apache Flink的Streaming SQL实时计算平台的设计与实现
这是一篇关于Flink,实时计算,流计算,Streaming SQL的论文, 主要内容为传统基于Hadoop生态的离线数据存储计算方案已在业界大规模应用,但受制于离线计算的高时延性,越来越多的数据应用场景已从离线转为实时。Apache Flink作为一个近几年快速发展的分布式大数据处理引擎,凭借其在实时(流)计算上的明显优势和相对完备的SQL支持,成为各公司实时计算平台的首选计算引擎。然而传统的实时计算平台大多通过打包的方式提交任务,用户的学习成本较高,开发效率低下,任务的维护成本也较高。因此迫切需要提供SQL化编程的实时计算平台。基于Apache Flink的Streaming SQL实时计算平台主要包括任务管理、数据源管理和SQL引擎模块。任务管理模块是整个平台的后端,负责任务的管理、提交、监控,管理部分包含SQL任务的开发状态、版本等管理;任务提交部分则交由部署在不同集群的多个Launcher通过Flink客户端执行具体的操作;监控部分包含作业监控和Launcher监控,实时监控任务的状态并及时更新,实时监控Launcher的状态以便在Launcher挂掉时能够正确处理对应的任务。数据源管理模块负责不同数据源信息的注册、更新以及用户自定义函数及相应文件的管理。SQL引擎模块负责将用户的SQL任务逐条按Flink SQL的类型解析出来并交由Flink引擎执行,通过Flink提供的Catalog接口实现SQL中数据源信息与数据源管理模块的对接,使得用户的SQL任务中不再需要编写DDL(Data Definition Language,数据定义语言),只需编写DML(Data Manipulation Language,数据操纵语言)。本平台使用Spring Boot开发框架,采用My SQL实现数据持久化,通过Zoo Keeper保证服务高可用性和任务可靠性。实时计算平台通过统一数据源管理,仅通过编写SQL DML完成实时计算任务的开发,降低了开发成本,提升了开发效率。经过对常用数据源的测试能够较好的完成实时计算任务,基本达到了预期目标。
分布式流计算平台调度与元数据管理的设计与实现
这是一篇关于分布式,流计算,元数据管理,调度算法的论文, 主要内容为随着互联网时代的到来,数据的形式和规模都发生了天翻地覆的变化。传统的数据具有静态与格式化的特性,且数据规模较小,可以采用单机的计算节点执行数据处理的任务。在处于信息化时代的今天,数据变化为规模庞大的非结构化实时异构数据,并且常以流式数据的形式存在。流式数据具有时间属性,传统的数据处理技术会丢失流式数据计算结果的准确性与价值,这导致新兴的数据计算任务不得不摒弃传统数据处理技术。以流式数据为代表的海量实时异构数据的处理技术难题亟待解决。本文基于为用户提供高吞吐低延时计算服务的分布式流计算平台,围绕分布式流计算平台中的控制节点,关注系统调度算法方面和元数据管理方面的研究。主要工作如下:1)设计并实现了分布式流计算平台采用的初调度、重调度、恢复调度三阶段的调度算法:在任务开始运行时采用初调度算法分析任务的资源需求并采取负载均衡的分配方案;在系统和任务运行期间采用重调度算法动态调整任务的性能瓶颈问题和系统的资源倾斜问题;在系统或任务出现异常时采用恢复调度算法降低任务的损失,并尽快恢复任务的高性能运行状态。力求更好地提高资源的利用率、实现系统的负载均衡,最终使得系统整体的吞吐率达到最大;2)自定义了一套分布式流计算平台的元数据抽象模型,以自定义流计算任务拓扑与插件的形式将具体的业务代码与流计算平台系统解耦,将分布式流计算平台通用化。采用内存管理与持久化存储的元数据两阶段提交的同步方式,提高了元数据的可靠性;通过元数据中心管理节点的主从备份策略,避免了管理节点的单点故障问题;3)设计并实现了分布式流计算平台的核心:控制节点。控制节点程序集合初调度、重调度、恢复调度三阶段调度算法和元数据管理两部分职能,并作为系统的管理者,与分布式流计算平台中的其他节点进行交互、负责系统资源管理、流计算任务相关的关键元数据管理等。通过对分布式流计算平台元数据管理及调度算法的功能和性能测试,达到了系统元数据可靠性管理的需求;相比同类系统在整体性能上占优;调度算法在运行期间会对任务和系统进行动态调整,对故障或异常情况会及时执行恢复调度;调度算法降低了流计算任务对网络的资源需求量,对系统整体的吞吐量亦有所提升。
基于Spark框架的新闻推荐系统的设计与实现
这是一篇关于推荐系统,实时推荐,Spark,流计算的论文, 主要内容为随着智能手机和平板电脑的普及率在上升,每一个人都会亲身接触到一些互联网产品,在日常使用的过程中会直接产生大量的行为日志,互联网从业者和技术人员通过对这些行为日志信息分析可以得出一些用户的兴趣和偏好,从而大大提升了日志推荐效果,但是用户在互联网系统上的每一次操作中都会直接产生一行行为日志,导致行为日志在数据规模上增长太快,数据不能及时收集和处理,在早期的一种个性化推荐系统中,首先要通过离线方式收集到每一位用户的历史行为信息,再对数据定期进行处理和分析,根据清洗后的数据选择模型进行预测或者更新模型。这种方式的推荐具有延时性,从而无法及时跟踪用户的兴趣,导致用户在产品的留存率降低,甚至弃用该产品。本文经过分析对比各大数据处理框架优缺点,结合使用场景,最终选用Spark框架作为基础,设计并实现了一个实时推荐系统,本系统对用户产生的日志数据进行实时采集和分析,再结合离线部分训练出的结果,从而实时的进行推荐反馈。本推荐系统对新闻资讯中的文本进行推荐,针对所有推荐的物品特征,本文设计了一种将离线计算与实时数据计算相互巧妙地结合在一起的系统架构,离线计算部分主要是采用Spark框架的原生支持ALS算法和基于内容的推荐算法进行结合,同时对ALS算法在Spark框架上进行了改进,优化了 ALS算法梯度下降部分。实时计算部分使用Spark平台上的Spark Streaming流处理技术,处理日志收集框架Flume收集的日志信息,增量更新用户画像和热门内容。除推荐部分外,还实现了系统的常规功能需求,进行了界面设计,普通用户可以浏览新闻内容,对基础信息进行更改,添加了系统管理员角色,对用户和内容进行人工管理,使系统的体验更为良好。
基于分布式的网络爬虫系统的研究与实现
这是一篇关于分布式爬取,布隆过滤器,流计算,批处理,Storm框架的论文, 主要内容为随着大数据时代的到来,数据的价值越来越受到人们的重视。海量的网络新闻数据具有巨大的商业价值和研究价值,可以通过网络爬虫爬取网络新闻数据。传统的单机网络爬虫不能爬取每天新增的大量网络新闻。现有的爬虫框架大多数不支持分布式爬取,已有的分布式爬虫框架通常是为搜索引擎设计的,难以修改框架满足特定的需求。因此本文设计并实现了一个基于分布式的网络爬虫系统,用于爬取新闻网站上的新闻数据。本文的主要工作如下:(1)结合Storm流计算框架和Scrapy爬虫框架,设计并实现分布式网络爬虫系统。Scrapy爬虫框架不支持分布式爬取,本文在Storm分布式平台上运行Scrapy爬虫进程,实现网络爬虫的分布式爬取。Trident是对Storm的高级抽象,不仅支持以数据流的方式处理数据,而且支持以批处理的方式处理数据。本文采用Trident框架实现Storm分布式平台,以流处理和批处理的方式处理URL。(2)提出基于多布隆过滤器的URL去重算法。布隆过滤器是由一个很长的二进制位数组和一系列随机均匀分布的哈希函数组成,可以检测一个元素是否存在于集合中。布隆过滤器具有误识别率,将不属于集合的元素判定为属于。本文通过使用多个布隆过滤器降低误识别率,对URL进行去重处理。通过测试表明误识别率随着本算法使用的布隆过滤器个数的增加而下降。(3)提出基于优先级的广度优先爬行策略。广度优先爬行策略将新闻网站上的网页分为不同的层次,爬取完同一层的所有网页后,才爬取下一层的网页。该策略实现比较简单,主要采用一个先进先出(FIFO)结构的URL队列。本文将URL的类型分为三种,对不同类型的URL设定不同的优先级,设计一个同时具有优先级和先进先出性质的URL队列,实现基于优先级的广度优先爬行策略。(4)以递归爬取方式提取非结构化数据。提取非结构化数据的技术有三种:正则表达式,BeautifulSoup和Xpath表达式。爬取完整的评论数据通常需要发送若干个HTTP请求,本文以递归爬取方式爬取到完整的评论数据,将评论数据作为新闻数据的一个数组类型字段,最后将新闻数据以文档的形式保存到MongoDB数据库中。最后,本文对分布式网络爬虫系统进行了功能测试和性能测试,验证了通过增加爬虫数,可以提高网络爬虫的爬取速度。
大数据平台下推荐系统的研究与实现
这是一篇关于推荐系统,Spark,流计算,实时推荐的论文, 主要内容为如何从海量数据中快速、有效挖掘出用户感兴趣的信息或商品是推荐系统领域的研究范畴,随着大数据时代的到来,这一类需求更加强烈。尽管推荐系统在理论与应用上已经取得了一定成果,然而传统推荐算法面对大数据处理需耗费大量时间,无法满足在线实时推荐的应用需求。Spark内存计算平台的出现能够为提高推荐算法运行效率与实时性提供技术支撑。本文旨在利用Spark平台对推荐算法进行优化与并行化实现,并且利用流计算框架实现一个能够满足离线与在线推荐相结合的推荐系统。基于Spark平台与相关的大数据技术,本文的研究内容如下:(1)协同过滤推荐算法的优化与并行化实现。针对基于用户的推荐方法迭代计算效率低的问题,利用Spark实现基于聚类的方法来加快算法的运行效率,针对ALS方法忽略相似度信息的缺陷,使用与KNN结合的KNN-ALS模型方法。同时为改善用户相似度计算时出现的量纲差异使用修正的相似度度量方法。(2)基于Spark的推荐系统实现,在大数据技术的基础上,利用Spark搭建离线与在线结合的推荐系统,其中离线推荐重点对数据仓库与推荐引擎设计,在线推荐则主要通过Kafka与Spark Streaming框架结合实现实时推荐设计。在电影数据集上的实验结果表明,离线推荐上,改进后的并行化推荐算法在相关评测指标上均通过了测试,另外,系统搭建的数据仓库在读写性能与存储空间上相比传统存储方式都具有非常大的优势;在线推荐上,通过Kafka与Spark Streaming的结合,完成了数据的实时加载与模型的更新,能够在动态数据环境下完成在线推荐。
基于分布式的网络爬虫系统的研究与实现
这是一篇关于分布式爬取,布隆过滤器,流计算,批处理,Storm框架的论文, 主要内容为随着大数据时代的到来,数据的价值越来越受到人们的重视。海量的网络新闻数据具有巨大的商业价值和研究价值,可以通过网络爬虫爬取网络新闻数据。传统的单机网络爬虫不能爬取每天新增的大量网络新闻。现有的爬虫框架大多数不支持分布式爬取,已有的分布式爬虫框架通常是为搜索引擎设计的,难以修改框架满足特定的需求。因此本文设计并实现了一个基于分布式的网络爬虫系统,用于爬取新闻网站上的新闻数据。本文的主要工作如下:(1)结合Storm流计算框架和Scrapy爬虫框架,设计并实现分布式网络爬虫系统。Scrapy爬虫框架不支持分布式爬取,本文在Storm分布式平台上运行Scrapy爬虫进程,实现网络爬虫的分布式爬取。Trident是对Storm的高级抽象,不仅支持以数据流的方式处理数据,而且支持以批处理的方式处理数据。本文采用Trident框架实现Storm分布式平台,以流处理和批处理的方式处理URL。(2)提出基于多布隆过滤器的URL去重算法。布隆过滤器是由一个很长的二进制位数组和一系列随机均匀分布的哈希函数组成,可以检测一个元素是否存在于集合中。布隆过滤器具有误识别率,将不属于集合的元素判定为属于。本文通过使用多个布隆过滤器降低误识别率,对URL进行去重处理。通过测试表明误识别率随着本算法使用的布隆过滤器个数的增加而下降。(3)提出基于优先级的广度优先爬行策略。广度优先爬行策略将新闻网站上的网页分为不同的层次,爬取完同一层的所有网页后,才爬取下一层的网页。该策略实现比较简单,主要采用一个先进先出(FIFO)结构的URL队列。本文将URL的类型分为三种,对不同类型的URL设定不同的优先级,设计一个同时具有优先级和先进先出性质的URL队列,实现基于优先级的广度优先爬行策略。(4)以递归爬取方式提取非结构化数据。提取非结构化数据的技术有三种:正则表达式,BeautifulSoup和Xpath表达式。爬取完整的评论数据通常需要发送若干个HTTP请求,本文以递归爬取方式爬取到完整的评论数据,将评论数据作为新闻数据的一个数组类型字段,最后将新闻数据以文档的形式保存到MongoDB数据库中。最后,本文对分布式网络爬虫系统进行了功能测试和性能测试,验证了通过增加爬虫数,可以提高网络爬虫的爬取速度。
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码驿站 ,原文地址:https://m.bishedaima.com/lunwen/48823.html