基于Hadoop分布式网络爬虫系统的优化研究
这是一篇关于Hadoop,网络爬虫,任务调度,URL去重的论文, 主要内容为近些年互联网上的网页成指数级爆增,在这样一个大数据时代的背景下,由于单机爬虫自身有限的计算和存储的能力已经远远不能满足对数据的抓取,随着分布式技术平台的崛起,为这一棘手的难题带来了福音。将网络爬虫系统与分布式平台融为一体可以完美的解决大规模网页的抓取与存储等一系列困难。所以在大数据时代的背景下,对于Hadoop平台与爬虫系统结合的分布式爬虫系统的研究非常有价值。这里对分布式爬虫领域里非常关键的算法(任务调度算法与URL去重算法)深入分析,发现它们的缺陷,然后在分布式平台中对其完善和优化。任务调度算法是分布式爬虫中一个很关键的算法,假如任务分配不当,会严重的降低集群的爬取效率。第三章对比较优秀的基于加权轮转的任务调度算法做了深入分析,提出了一种带反馈的动态的加权轮转任务调度算法,在充分发挥加权轮转任务调度优点的基础上克服了其固定权重所带来的负面影响,是系统达到一个很好的负载均衡。URL去重算法是严重制约爬取效率的一个算法,如果去重算法设计的不好,就会出现连续爬相同的网页,还有可能陷入死循环。基于Bloom Filter的去重采用的不是存储元素本身,节约了大量的存储空间,这在大数据的今天尤为重要,并且其插入和查询元素复杂度非常低,且其里面的位数组数据结构也非常容易实现。但有一点它存在误判率问题。第四章对其深入分析,找出误判率的本质所在,结合爬取的URL的特点对标准Bloom Filter进行了改进,提出了MBF过滤器,并将其运用于Hadoop分布式爬虫系统里,在充分发挥了Bloom Filter的优点的同时有效的降低了Bloom Filter带来的误判率问题。最后基于第三章第四章改进的两个关键算法对分布式网络爬虫系统进行了设计与实现。通过需求分析、流程分析、系统的概要设计(包括物理框架设计和逻辑框架设计)、模块设计、数据存储结构的设计,对分布式爬虫系统进行了详细的实现,最后对分布式爬虫系统进行了一些测试。
RocksDB数据引擎合并压缩加速技术研究
这是一篇关于NoSQL,RocksDB,FPGA,硬件加速,数据合并压缩,任务调度的论文, 主要内容为随着互联网的迅速普及,各类互联网应用对数据库的要求越来越高,新的应用要求数据库不仅具有良好的ACID属性,在保持查询效率的前提下还要支持数据高速写入和更新,此外还必须具有良好的分布式可扩展性。在此背景下,新一代的NoSQL数据库应运而生。目前流行的NoSQL数据库包括Google的Spanner/F1、阿里的Ocean Base、Cockroach DB、Ti DB等,它们底层存储引擎都采用了LSM-Tree架构。基于LSM-Tree的数据库可以将用户的随机写转化为顺序写来提高写性能。与基于B+Tree的数据库相比,LSM-Tree架构数据库的读性能相对较差,但通过增加索引、缓存、布隆过滤器等优化方式,其读性能在实际应用中基本不会下降太多。此外,LSM-Tree架构数据库还必须运行多个后台线程,定期对磁盘中的数据文件进行合并压缩,以保持LSM-Tree的优化形状,减少读放大和空间放大。该多线程的合并压缩操作会消耗较多CPU计算资源,数据查询和事务处理等前台操作会与这些后台线程发生资源争用,造成数据库系统处理普通在线事务逻辑的效率下降。在读写混合的工作负载下,这种资源争用给数据库性能带来的影响更为明显。根据阿里X-Engine数据库的实验,随着SSD、NVM等新型存储器技术的飞速发展,数据I/O带宽取得了非常大的进步,此时LSM-Tree架构数据库中制约数据吞吐量的瓶颈已经转移到CPU的计算能力上,其中LSM-Tree的数据合并压缩是造成瓶颈的主要原因。针对上述问题,本文以开源的、基于LSM-Tree的RocksDB数据库作为研究对象,着重研究如何把数据合并压缩操作的主要计算任务卸载给FPGA。本文利用FPGA来创建用于数据合并压缩处理的硬件逻辑运算单元,并基于RocksDB源码和Open CL编程模型等技术,设计并实现了一种基于FPGA的RocksDB数据合并压缩加速系统。该系统能够实现数据合并压缩计算任务的卸载,以降低主机CPU的计算负载,提高数据库系统处理普通数据访问事务的性能。为解决上述问题,实现基于FPGA的RocksDB数据合并压缩加速系统,本论文进行了如下主要工作:(1)研究RocksDB的项目架构和源码,分析其存在的缺点,给出问题的解决思路。(2)设计出基于FPGA的RocksDB数据合并压缩加速系统的整体架构,包括软件结构设计和FPGA硬件逻辑结构设计。(3)RocksDB数据合并压缩过程的FPGA硬件逻辑实现。通过利用FPGA的快速可重构性,快速实现系统的原型制作和版本迭代。本文计划采用Xilinx公司推出的Alveo U280 Data Center Accelerator Card型号的FPGA来进行硬件开发,并使用其配套的Vitis工具基于C/C++高级编程语言和Open CL编程模型来实现软件。(4)FPGA驱动程序的设计与实现,使之能够管理主机与FPGA之间的数据流动和任务调度。在论文的最后,针对基于FPGA的RocksDB数据合并压缩加速系统,本文主要使用RocksDB自带的性能测试工具db_bench、Vitis套件工具和一些测试程序进行实验和数据采集。实验数据表示,本系统在处理Key大小较小的KV数据集时,系统所消耗的总体CPU计算资源比原生RocksDB少10%左右,处理计算任务时的CPU最大使用率比原生RocksDB低50%左右。本系统基于FPGA进行数据合并压缩的吞吐量比原生RocksDB基于CPU进行数据合并压缩的吞吐量提升40%左右。实验结果证明,本系统具有更高的数据合并压缩效率和更低的CPU计算资源使用率,可以为RocksDB带来性能提升。
自定义分布式网络爬虫的设计与实现
这是一篇关于selenium框架,分布式网络爬虫,任务调度,QT框架,kafka消息队列的论文, 主要内容为随着互联网的飞速发展,大数据已经渗透到每个行业和业务功能领域,其价值也越来越显著。提取出有意义有价值的数据尤为重要。因此用于互联网信息采集的网络爬虫面临着巨大的机遇和挑战。目前国内外一些大型搜索引擎只给用户提供不可定制的搜索服务,单机网络爬虫又难当重任,已有的分布式网络爬虫虽然功能强、效率高,但普通用户难以理解和使用。本文设计并实现了一套基于分布式的自定义采集网络爬虫系统。能够精准批量识别各种网页元素并自动生成提取规则,支持不同网页结构的复杂网站采集,满足多种采集应用场景,高效爬取数据。用户利用系统,按照自身需求,可视化编辑爬虫任务脚本,自动完成对爬虫数据的采集。本文的主要工作如下:(1)通过对嵌入式Qt框架的研究,开发嵌入式浏览器并使其具有记录用户网页操作、获取元素定位信息、智能识别网页相似元素等功能,实现自定义爬虫系统的终端图形界面。方便用户可视化编辑爬虫任务,最终生成用户自定义的爬虫任务脚本。(2)借鉴当前scrapy-redis的分布式架构的思想,以redis作为存储任务的队列,实现基于主从式分布式架构的爬虫系统。针对各物理从节点的异构性导致所承载虚拟节点数不同的问题,提出一种自适应调整虚拟节点的算法。物理从节点可实时根据自身负载调整虚拟节点数,保证从节点自身最佳负载;针对中心节点中任务调度问题,提出一种受限负载均衡算法。主节点为并行任务选取负载较小的虚拟节点(集)的同时尽量保证节点集被分配在同一个物理节点上。方便对任务的管理,确保系统中各爬虫节点负载均衡。(3)采用python+selenium技术,设计并实现自定义爬虫。该爬虫通过对爬虫任务脚本进行解析,驱动浏览器按照脚本中的指令,完成对网页的操作,实现自定义采集。同时,为防止爬虫受到站点反爬虫策略的影响,设计并实现动态ip代理池。通过多站抓取、定时异步验证ip有效性、实时监控代理池中ip的数量与质量,为系统提供高质量的ip。
面向纵向业务开发平台的访问控制和安全审计系统研究与实现
这是一篇关于应用安全控制,访问控制,安全审计,任务调度,细粒度角色访问的论文, 主要内容为计算机技术快速的发展使各种应用系统在科学、社会、军事等领域得到了广泛的运用。应用安全共性问题,如身份验证、访问控制和安全审计等,是每个应用系统必不可少的核心模块。纵向业务开发平台是中国工程物理研究院构建其他应用系统的基础,它包括了绝大多数安全共性且为开发其他应用系统所复用。然而,随着研究院对安全共性需求的提高和计算机开发技术的发展,旧版本的纵向业务开发平台中相同安全功能模块的代码很少被复用或与业务模块呈现一种高度耦合的状态,导致每开发一个不同业务需求的应用系统,都需大量的改动现有代码,有的甚至需要重新设计。对现有纵向业务开发平台进行升级和改进,设计并实现一个与具体业务模块分离,提供一个包含大多数安全共性功能模块,使开发新的应用系统可以直接复用包含大量安全共性的纵向业务开发平台已经成为一个亟待解决的问题。针对上述问题,结合中国工程物理研究院和其下属计算机应用研究所的实际开发需求,分析了现有系统中安全控制实现方法的优缺点,抽取纵向业务开发平台中部分的安全共性,设计了为构建其他具有相同安全共性的中小型应用系统,具有良好的扩展性,并且达到和业务模块相对解耦的访问控制和安全审计系统。系统采用浏览器/服务器的设计架构,整合J2EE框架搭建开发平台,运用前端web框架MiniUI、开源Spring和Hibernate框架来实现系统。浏览器端是面向系统用户和管理员,它主要包括三大功能模块:访问控制、安全审计和任务调度管理。访问控制方面,提出一种细粒度角色访问模型(FG-RBAC),分别从用户、角色和权限结合实际需求进行改进,实现了更细致更完善的访问控制功能;安全审计方面,实时将用户对系统的操作进行信息记录,页面实现动态可配置,并能够对记录信息进行信息审计,根据审计的结果进行不同的事件响应;任务调度实现定时对系统兼职用户、临时角色和审计信息定时备份和清理管理。三个主要的功能模块都在最大程度上做到与实际业务模块分离,小范围改动现有代码和通过页面动态配置就能够适用不同业务需求的应用系统开发。服务器包括Web服务器和数据库服务器。Web服务器采用MVC模式,通过控制层的Servlet与客户端进行数据交互,数据库服务器采用安全系数较高的Oracle lOg进行管理。为了验证系统的有效性和正确性,利用系统良好的可扩展性添加三个业务模块,分别从访问控制、安全审计和任务调度进行测试和验证,验证结果表明系统具有良好的可扩展性和通用性,配置灵活性高,运行稳定。
面向纵向业务开发平台的访问控制和安全审计系统研究与实现
这是一篇关于应用安全控制,访问控制,安全审计,任务调度,细粒度角色访问的论文, 主要内容为计算机技术快速的发展使各种应用系统在科学、社会、军事等领域得到了广泛的运用。应用安全共性问题,如身份验证、访问控制和安全审计等,是每个应用系统必不可少的核心模块。纵向业务开发平台是中国工程物理研究院构建其他应用系统的基础,它包括了绝大多数安全共性且为开发其他应用系统所复用。然而,随着研究院对安全共性需求的提高和计算机开发技术的发展,旧版本的纵向业务开发平台中相同安全功能模块的代码很少被复用或与业务模块呈现一种高度耦合的状态,导致每开发一个不同业务需求的应用系统,都需大量的改动现有代码,有的甚至需要重新设计。对现有纵向业务开发平台进行升级和改进,设计并实现一个与具体业务模块分离,提供一个包含大多数安全共性功能模块,使开发新的应用系统可以直接复用包含大量安全共性的纵向业务开发平台已经成为一个亟待解决的问题。针对上述问题,结合中国工程物理研究院和其下属计算机应用研究所的实际开发需求,分析了现有系统中安全控制实现方法的优缺点,抽取纵向业务开发平台中部分的安全共性,设计了为构建其他具有相同安全共性的中小型应用系统,具有良好的扩展性,并且达到和业务模块相对解耦的访问控制和安全审计系统。系统采用浏览器/服务器的设计架构,整合J2EE框架搭建开发平台,运用前端web框架MiniUI、开源Spring和Hibernate框架来实现系统。浏览器端是面向系统用户和管理员,它主要包括三大功能模块:访问控制、安全审计和任务调度管理。访问控制方面,提出一种细粒度角色访问模型(FG-RBAC),分别从用户、角色和权限结合实际需求进行改进,实现了更细致更完善的访问控制功能;安全审计方面,实时将用户对系统的操作进行信息记录,页面实现动态可配置,并能够对记录信息进行信息审计,根据审计的结果进行不同的事件响应;任务调度实现定时对系统兼职用户、临时角色和审计信息定时备份和清理管理。三个主要的功能模块都在最大程度上做到与实际业务模块分离,小范围改动现有代码和通过页面动态配置就能够适用不同业务需求的应用系统开发。服务器包括Web服务器和数据库服务器。Web服务器采用MVC模式,通过控制层的Servlet与客户端进行数据交互,数据库服务器采用安全系数较高的Oracle lOg进行管理。为了验证系统的有效性和正确性,利用系统良好的可扩展性添加三个业务模块,分别从访问控制、安全审计和任务调度进行测试和验证,验证结果表明系统具有良好的可扩展性和通用性,配置灵活性高,运行稳定。
RPA云服务系统的设计与实现
这是一篇关于RPA,云服务,任务调度,粒子群算法的论文, 主要内容为办公自动化技术是当下企业降本增效中不可或缺的一部分,随着办公自动化的发展,该技术逐渐演变为RPA(Robotic Process Automation)技术。RPA是一种将繁琐且重复的用户操作自动化执行的软件,它可以模拟人工操作,有效帮助用户减少重复性工作。在Gartner预测报告中,RPA的市场占有率正在快速上升。伴随着RPA商业公司对云服务的不断完善,RPA与云服务的结合是必然趋势,本文将对RPA云服务系统与云任务调度两方面内容展开研究。针对RPA云服务系统的设计,本文在网页自动化场景下,利用Selenium引擎为RPA核心功能提供支撑,使用Kubernetes集群作为容器云技术设施,实现了一个RPA云服务系统。在RPA云服务系统基础上,本文对五大领域常见的工作流程设计了23个任务场景,并设计了一个Micro-Benchmark,通过实际测试,得出了RPA云任务负载不均衡的结论。因此,为了保证云服务的服务质量,本文使用一种改进粒子群SN-PSO(Based on Sliding Window and Non-Dominant Pareto PSO)算法对RPA任务进行调度优化,通过实际并发测试,验证了SN-PSO在并发环境下任务调度优化的有效性。本文的总体工作内容分为以下三点:(1)设计了一种基于网页自动化的RPA云服务系统,通过组合功能组件的方式实现用户自主按需设计任务流程,利用无人值守方案提供了用户任务以云端执行的模式。针对RPA在实际场景下的应用,本文针对制造业、财务、人力资源、物流及在线教育五大领域设计了共计23个任务集,在此任务集基础上,设计了一个Micro-Benchmark,为RPA任务调度优化提供数据支撑。(2)提出了一种基于滑动窗口与非支配解集的改进粒子群算法(Based on Sliding Window and Non-Dominant Pareto PSO,SN-PSO)。SN-PSO通过滑动窗口检测出陷入局部最优的粒子,并调整粒子位置中贡献较低的维度。该方案避免了随机变异导致的不确定性,减少了粒子的无效搜索行为。通过非支配解集的优化策略提高了种群的多样性,增强了粒子全局寻优能力。利用SN-PSO对RPA云任务调度作优化。(3)实现了RPA云服务系统并针对主要工作进行实验评估。针对RPA云服务系统的实现做了功能测试,且为了改善RPA任务负载不均衡问题,对RPA云服务系统中使用的改进粒子群算法进行了实验评估与分析,实验表明在实际使用场景下,SN-PSO能够有效地降低任务总执行时间,提高系统的运行效率。
基于无线网络(WiFi)的灯光后台控制系统的实现与研究
这是一篇关于灯光系统,WiFi技术,后台控制,任务调度,状态监测的论文, 主要内容为近年来,无线网络迅猛发展,特别是具有代表性的WiFi技术在各领域得到了广泛的应用,舞台灯光领域也不例外。人民生活水平日益提高,不断追求视觉享受,促使舞台灯光效果逐步复杂化,灯具品种与数量越来越多,传统有线控制费时费力,而基于无线传感网的控制传输速率低、可靠性差的难题日益凸显。本文提出将WiFi技术与灯控系统进行融合,它具有成本低、传输速率高、传输距离远、移动性和灵活性等优点,能够很好的解决上述问题。本文主要研究无线灯光后台控制系统,该系统具有如下功能:(1)能够按计划、有组织的实现对一台或多台灯光设备开关以及各种灯光效果的调度;(2)可以实现即插设备识别、定位,并且设备可以通过寻址方式被方便有效地协调、控制;(3)要实现对前台不同通信链路的设备进行准确有效的监测,定期查询设备详细状态;(4)能够实现故障告警,对故障做出及时有效的处理。本文的主要内容是对无线灯光后台控制系统进行了设计和开发,并展示和阐述了最后的成果。本文的主要工作有以下几点:(1)整理基于无线网络灯光控制系统的理论知识,分析无线灯光控制系统的功能架构、拓扑部署和通信方式,并对通信所用数据格式设计并进行分析。(2)对无线灯光后台控制系统进行设计,该系统包括后台用户界面模块设计、系统通信模块设计、功能服务模块设计和数据存储模块设计。(3)根据上述模块设计规划,利用程序开发工具实现灯光后台控制系统的部分功能,并根据功能代码的实现对后台开发思想进行阐释,最后对界面进行分析展示。
基于微服务架构的边缘智能平台的设计与实现
这是一篇关于边缘智能,微服务,容器,服务调度,任务调度的论文, 主要内容为近年来,为应对海量设备接入以及数据处理带来的挑战,边缘计算应运而生。边缘计算通过将计算资源部署在靠近设备的网络边缘,为接入设备提供低延迟、高效率的数据处理能力。同时,各种新兴业务层出不穷,使得物联网设备数据的智能化推理需求不断增加。因此,边缘智能成为边缘计算中重要的应用场景,而作为其实现的载体,边缘智能平台的相关研究便尤为关键。如何构建高扩展且服务灵活伸缩的平台,并且节点资源如何合理分配以提高服务的部署效率、各节点如何相互协作以降低数据推理任务的完成时延,对边缘智能平台的功能、架构设计来说是一个挑战。因此,本文对边缘智能平台的相关问题展开研究,主要贡献包含以下四个方面。一、深入分析了边缘智能平台的相关需求以及挑战。针对分布式边缘节点的资源管理、服务调度管理等需求,基于docker以及Kubernetes进行了平台的云边协同架构设计,实现了云边间的资源协同、服务编排协同以及数据协同;针对设备数据从采集筛选、边缘推理至云端导出的处理流程需求,提出了一种基于微服务架构的分层软件模型,使得平台兼具高可扩展与灵活部署的优点。同时,为应对平台中多类型边缘推理任务并发执行的挑战,进行了任务并发调度机制以及任务排队分发机制的设计,实现了多任务协同处理的能力。通过平台的相关设计,为后文服务调度、任务调度问题的研究奠定了基础。二、在服务部署方面,Kubernetes面向云计算场景提供了一种均衡节点资源利用率的服务调度策略。然而该策略忽略了服务间的调用关系以及节点间的网络拓扑,并且在异构资源分配以及镜像分发等方面的考虑有所欠缺。为解决上述问题,本文提出一种基于多准则决策的服务调度算法。算法中考虑了服务间的跨节点数据传输时延、服务请求资源与节点剩余资源的相似度以及节点的镜像层缓存,并对应地设计了三种优选函数对节点进行优先级打分。然后基于TOPSIS(Technique for the Order of Prioritization by Similarity to Ideal Solution)算法对上述打分结果进行均衡分析,最终返回多指标约束优化的服务部署节点。仿真结果表明,相比于Kubernetes默认调度策略以及加权归一化排序的服务调度策略,本文所提算法在数据传输时延、集群均衡度以及服务部署时延上,分别降低了 3 1%/15%,40%/5%,30%/24%。三、在平台响应推理任务方面,由于单节点资源受限,并且边缘侧的任务请求存在波动性,基于内容二算法实现的静态服务预部署方案难以满足任务的执行需求。因此,本文对服务伸缩与任务卸载调度的协同优化展开研究。首先对任务在容器中的排队执行过程进行建模分析,并设定了降低任务平均完成时延的优化问题。在问题求解过程中,将其分解为服务伸缩决策以及任务卸载决策两个子问题,分别提出了基于动态规划的伸缩决策算法以及启发式任务调度算法,实现对任务请求的自适应优化调度。仿真结果表明,相较于Kubernetes中默认的轮询负载均衡算法以及无服务伸缩的启发式任务调度算法,本文所提算法在平均完成时延方面减少了约41%和26%。同时,当任务类型动态变化时,本文所提算法依旧可以保持最优的执行性能。四、基于上述对平台的架构、软件模型以及服务调度算法、任务调度算法的设计与研究,进行了边缘智能平台的原型搭建。并通过人脸识别与行人检测业务,以UI前端的方式对平台的数据推理能力进行了展示。
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计客栈 ,原文地址:https://m.bishedaima.com/lunwen/45182.html