管道完整性云服务平台分布式实时数据采集计算系统的设计与实现

来源 :油气·石油与天然气科学 | 被引量 : 0次 | 上传用户:sflljlove
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘  要: 本文对基于管道完整性云服务平台分布式实时数据采集计算系统的设计方案、技术选型、关键技术等做了详细的研究,最终实现了基于ApacheZookeeper、ApacheKafka、ApacheStorm以及Redis的实时数据采集系统,解决了管道完整性云服务平台在面对海量数据并发以及复杂业务计算等场景下的吞吐量瓶颈,为基于大数据的管道完整性业务的深度数据挖掘、离线/在线数据分析提供了可靠的数据处理框架。
  关键词:管道完整性 云服务平台 实时数据 Zookeeper Kafka Storm Redis
  【中图分类号】TP       【文献标识码】A
  1 引言
  管道完整性管理是一个系统的、综合性的管理体系,是通过一定技术和管理体系对可能存在的对管道安全造成影响的危险点进行识别、预防及改进,从而避免事故的发生,始终保持管道在整个生命周期内处于完整、安全、良好的状态[2]。
  云GIS,是指以云计算为架构的网络化、虚拟化、分布式、按需获取的地理信息系统。实质是将GIS的平台、软件和数据方便、快捷、高效地部署到云基础设施之上,能够以弹性的、按需获取的方式提供最广泛的WebGIS服务。云GIS连接智能移动终端,用户可在任意位置获取超大规模的GIS功能。云GIS将并行计算与GIS结合,引入并行数据库,组成集群系统,利用并行存储、查询、检索,处理等技术,有效提升传统GIS对海量空间数据的高效存储与处理。专业级云GIS平台建设内容包含硬件支撑环境搭建、系列标准建设、云资源池建设、数据服务体系建设、系列软件研发、应用系统建设[1]。
  由于管道完整性管理的海量数据及空间可视化的需求,地理信息系统技术在管道完整性管理中的作用越来越大[4]。将云GIS引入管道完整性管理中,利用云服务高并发、分布式计算、分布式存储等特点实现对海量业务数据的高效处理,以此为基础实现对海量数据的深度挖掘,获取管道完整性管理中重要的数据和指标,使得在管道生命周期内每时每刻产生的业务数据能够真正为决策者提供有价值的情报。
  2 关键技术
  管道完整性云服务平台的分布式实时数据采集平台旨在解决海量的高并发数据流,实现低延迟响应处理,保证数据流的强时序性,实现复杂空间计算,并且分布式系统需要与集中式系统完全不同的系统架构。因网络会损失信息,所以需要软件进行恢复。当网络出现过载时,也必须容错恢复[5]。
  2.1 高吞吐量消息引擎
  管道完整性云服务平台面向长输管道完整性管理的各个环节,包括:管道巡检、管道应急、施工期管理、移动办公等多个领域,各个业务板块产生大量的实时数据,因此如何响应并处理这些海量数据成为云服务平台急需解决的问题。
  Apache Kafka是一个开源消息系统项目,由Scala写成。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。它通过一种独一无二的设计提供了一个消息系统的功能, 解决了大规模分布式应用中数据传递的高效与稳定的问题,解决了从集中式向分布式采集架构过渡的难题[6]。
  2.2 分布式流数据计算
  地理空间数据的处理结果需要及时反馈给用户,例如对每次移动智能终端上传的巡检点数据,系统需要及时计算其与管道的距离,当超过某一阈值时,移动终端将及时收到服务器端的警报信息。面对海量的数据计算需求,传统的单一服务器、单一计算节点的方式无法保证计算的低延时及强时序性,因此如何实现实时地理数据的预处理成为云服务平台的重要问题。批量计算和流式计算适用于不同的场景,对于数据实时性要求不高,且数据越多,计算结果越准确的场合批量计算更合适,但对于实时性要求高,只需对最近部分进行处理分析的场合,流式计算有着明显优势[7]。
  Storm是一个分布式的,可靠的,容错的数据流处理框架。Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt, bolt要么把数据保存到某种存储器,要么把数据传递给其它的bolt。一个Storm集群就是在一连串的bolt之间转换spout传过来的数据。
  2.3 分布式数据缓存
  经过流式计算框架处理的地理空间数据可以持久化到各种物理存储单元中,比如传统的关系型数据库(Oracle、Sql Server等)以及NoSql数据库(MongoDB、Apache Hbase等),但是由于云服务平台的海量数据并发造成对其的预处理结果也具有高并发的特点,因此对其的持久化操作不应该直接访问数据库造成大量的IO读写开销。针对这一问题,需要设计一个分布式基于内存的数据缓存框架。Key-Value存储以其高扩展性和强一致性在如今热门的大数据时代中扮演着重要角色。而实现其扩展性重要的关键技术在于数据迁移机制的完善,数据迁移机制同时直接影响集群节点的负载均衡。
  3 分布式实时数据采集平台设计
  图1所示,分布式实时数据采集平台由客户端、服务协调组件集群、消息队列集群、流计算集群、消息缓存集群和数据库集群6个部分组成。
  3.1 客户端
  客户端作为业务数据的生产者主要由手持端设备和web系统组成,其产生的实时位置数据、报警数据、SCADA监控数据通过网络传输至分布式数据平台,在传输过程中,使用数字签名等技术对传输内容进行加密,保证传输安全。
  3.2 服务协调组件
  由于分布式数据采集平台由多台服务器组成,为保证各服务节点之前的高可用(HA),平台采用Zookeeper作为分布式协调组件,记錄各服务节点的元数据,实现服务节点间的心跳检测,确保整个平台在生产环境下的健壮性,防止由于网络抖动、服务器宕机造成平台无法正常对外提供服务。   3.3 消息队列集群
  消息队列集群负责接收客户端产生的多种业务数据,平台采用Apache Kafka作为消息总线,Kafka是一个吞吐量极高的分布式消息系统,其整体设计是典型的发布与订阅模式系统。由于kafka的高吞吐量,可以确保来自客户端的每条数据被正确处理。由于业务数据的多样化,平台针对不同种类的业务数据建立不同的topic分类,并采用自定义分区策略(时间热度分区算法、哈希散列值分区等)将数据写入topic的不同partition中,同时为保证数据的安全性对每一个topic的partition建立多个副本,存储结构如下图所示:
  3.4 流计算集群
  实时流计算主要应用于两个场景:持续计算,一旦任务启动除非人为终止否则会一直处理到达数据;支持分布式计算,对大数据采用并行计算以降低单个处理器任务量[9]。由客户端写入kafka的业务数据,需要被实时高效、低延迟地处理并及时反馈给客户端,为满足这一要求,平台采用Apache Strom作为流式计算服务,以管道完整性云服务平台的智能管道巡检系统为例,Strom对不同巡检人员上传的巡检点位置数据进行快速处理,计算其超时/超速/超距等报警信息,其处理流程如下图所示:
  1)KafkaSpout作为消费者订阅Kafka Topic,从Broker的partition中拉取消息。
  2)GlobeBolt对原始数据进行预处理,并采用Shuffle Grouping作为数据分组策略,以保证Strom的并发处理效率,消除数据倾斜。
  3)预处理后的数据同时发射至SocketBolt和GroupCalcuateBolt进行处理,SocketBolt负责将处理后的数据推送至Socket服务器保证客户端随时可以接收到实时数据,GroupCalcuateBolt负责对数据进行分组和业务计算,计算结果同样推至至Socket服务器,该节点采用FieldsGrouping策略,以保证具有相同key值的数据总是被同一bolt实例处理,实现数据的连续处理。
  4)RedisBolt工作节点负责将GroupCalcuateBolt的计算结果写入Redis缓存,并在时间窗口内将结果进行持久化操作。
  3.5 消息缓存集群
  由于Strom时刻都在处理业务数据,因此采用直接将计算结果做持久化处理将造成大量的数据库IO操作,增加服务器开销,因此平台将计算结果以键值对的形式写入Redis内存数据库,再使用定时器任务批量将Strom计算结果写入MongoDB物理数据库。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB旨在为Web应用提供可扩展的高性能数据存储解决方案[10]。
  为保证Redis的高可用性,需要在发生主节点服务器故障时能够迅速做到主从切换,将slave节点的角色变更为master,因此在集群主节点所在的服务器中开启Redis哨兵进程,以监控主节点状态。
  4 系统在管道完整性云服务平台中的应用
  基于Kafka/Storm的分布式实时数据采集计算系统实现了巡检轨迹数据采集、巡检三超报警(超速、超时、超距)计算、SCADA监控数据采集以及系统日志采集等功能,实现了海量业务数据的并发请求处理,结合ACK技术,保证了每一条业务数据在数据流中能够被正确及时地处理,由于系统实时地将热点数据存入Redis数据库,用户对热点数据的请求经过Web容器的拦截全部发往Redis,命中后返回给客户端,极大地提升了请求响应地速度。热点数据过期后自动持久化到MongoDB數据库,为进一步的离线分析生产基础数据。
  系统目前已经计入全面测试阶段,下一步将在各油气储运单位推广应用。分布式实时数据采集计算系统将解决单线程阻塞式地处理方式造成的野外巡检轨迹点上传后不定时地丢失、SCADA监测数据高频率发送造成的web容器崩溃以及用户关心的热点数据由于数据量过大造成的前端页面响应时间长等问题,将极大的提升管道完整性云服务平台的健壮性和数据吞吐量,发挥大数据技术在管道安全方面的巨大作用。
  5 总结与展望
  5.1 系统特点
  1)采用RestfulAPI结合Apache Kafka消息总线技术实现对客户端上传的海量数据采集功能,保证了各业务数据的完整性,并通过设置kafka的相关配置实现了集群的高可用。
  2)采用Apache Strom做为流式计算框架,使得原本高延迟的地理空间数据计算可以在极短的时间窗口内完成,并且在计算工作节点中采用滑动窗口算法,保证了数据完整性和准确性。
  3)系统采用Redis集群做为缓存解决方案,保证了内存数据的可靠性,减少了Storm直接访问数据库造成的额外网络传输开销和内存读写消耗。
  4)系统采用HBase做为海量实时数据的存储解决方案,基于HBase的列式存储方案,极大的减少了IO操作,同时由于HBase是运行在Hadoop上的分布式可扩展的NoSql大数据仓库,因此为后期基于MapReduce的离线分析提供了便利的数据存储方式。
  5.2 展望
  管道完整性云服务平台分布式实时数据采集系统基于Apache Kafka、Strom、Redis等流行开源技术实现了海量业务数据的收集、计算、存储功能,该系统在长输管道、城市燃气、智慧城市等方面都具有广泛的应用前景。在下一步的工作中,将针对管道巡检关键点到达判定、人员车辆实时位置结合地理围栏技术的监控等业务做进一步的研究和开发,同时对管道完整性的智能化进行深入研究,为日常管道安全管理工作的开展提供了完整、准确、及时的技术和决策支持。
  参考文献:
  [1] 陶旸,刘昱君.面向行业深度耦合的专业级云GIS服务平台设计[J] .测绘与空间地理信息,2018:15-16.   [2] 帅义,帅健,冯灿.基于B/S架构的管道完整性管理系统[J] .油气储运,2017,36 (04) :388.
  [3] 王宇宁.基于Android的长输管道巡线系统的研发[D].西安:西安石油大学,2015:5-11.
  [4] 徐杰,曾晟 刘亮等.基于APDM的管道完整性数据管理研究[J].天然气与石油,2016,34(05):76.
  [5]陈天伟,彭凌西 基于ZooKeeper的一种分布式系统架构设计与实现[J].通信技术,2018,51 (01):87-90.
  [6] 金双喜,李永 基于Kafka消息队列的新一代分布式电量采集方法研究[J].电网分析与研究,2018,46 (02):78.
  [7] 周明阳 闫超 郭良浩等基于Storm的分布式实时信号处理系统[J].计算机应用,2017,37 (z1):69.
  [8]  韦立,陈姗姗 基于Redis单位最大效益自适应迁移策略研究[J].计算机技术与发展, 2018,28 (10) :54-58.
  [9]  李一辰,李绪志,阎镇 实时流计算在航天地面數据处理系统中的应用[J].微电子学与计算机, 2014,31(09) :15-19.
  [10]  戴传飞,马明栋 MongoDB分页技术优化研究[J].计算机技术与发展,2018,28 (06) :98-101.
  [11]孙大为,张广艳,郑纬民 大数据流式计算: 关键技术及系统实例[J].软件学报,2014,25( 4) : 839-862.
  补充说明:本文没有基金项目资助。
  作者简介:毛爱芹(1983 — ),女,安徽省淮北市,高级工程师,硕士学历(2008年毕业于中国矿业大学 地图制图学与地理信息工程专业)。主要从事地理信息系统建设、测绘、管道完整性管理应用等工作。
  地址:陕西省西安市长安区 韦曲街道 神舟四路216号中煤航测遥感集团 邮编:710199
  电话:029-89692117  15802980764
  E-Mail:94209732@qq.com
  创新点名称:管道完整性云服务平台分布式实时数据采集计算系统
  创新点内容:基于分布式系统架构,结合高效的消息队列引擎和高吞吐量的流式数据计算引擎实现了地理实时数据的在线计算处理,处理结果使用Redis缓存集群,采用AppendOnly持久化方案,确保处理结果的完整性。系统能够实现各种实时数据(巡检轨迹点、SCADA监控数据、人员/车辆/设备位置等)的收集,并结合完整性业务场景对海量数据进行低延迟计算。该系统充分结合管道巡检、管道应急、数据监控管理的需求,适合国内管道完整性数据采集的推广,有较强的应用价值。
其他文献
摘 要:随着我国技术大跨步的迈进,物联网技术已经在各行各业的应用中有着不错的成绩,大型数据机房在运行过程中难免会出现问题,进而影响使用甚至产生安全隐患,因此大型数据机房强化设备设施维护和加强日常管理等基础性工作至关重要。通过物联网技术,可以帮助更加智能更加准确的完成大型数据机房管理和维护。首先,本文对物联网技术进行介绍。然后,本文对大型数据机房环境的日常管理与维护存在的问题进行逐一分析。最后,本文
内容摘要:有人员被困的火灾扑救中,搜救被困人员是第一要务。本文从搜救准备、搜救程序、搜救方法三个方面就如何科学开展建筑火灾内部人员进行了详细的讲解。对消防救援人员开展内部人员搜救有指导意义。  关键词:搜救 撤离路线   建筑火灾人员搜救一直是国内外消防领域研究的一项重要课题,是消防救援队伍贯彻“以人为本,生命至上”的理念需要解决的重要问题。消防救援人员如何在保障自身安全的前提下,及时将建筑物内部
摘要:随着我国社会经济的快速发展,各行各业之间的竞争越来越激烈,在新时期背景下,企业的会计财务管理工作一直是企业管理工作中的核心内容,对企业的发展以及企业经济效益的提高有着非常重要的作用,然而目前我国企业会计财务管理工作仍然存在着很多不足。因此需要采取相应的改进措施进行提高,才能够真正提高企业在市场经营中的经濟效益和社会效益。  关键词:新时期;企业会计;财务管理  随着我国市场经济体制的转型和升
患者女,29岁.以右腕部包块1年,近期干重活后微痛,来我院行超声检查.超声检查:右腕部尺侧见一大小约 55 mm×33 mm 无回声区,边界清楚,呈"哑铃状",无回声区内见条状分隔及数十个游离的类圆形团状中等回声,表面光滑,内部回声均匀,大小约 10 mm ×8 mm.团状回声在无回声区内随握拳运动来回滚动(图1,2),彩色多普勒未测及血流信号.超声诊断:右腕部囊实性包块.手术所见:于右腕部尺侧,
期刊
摘要:采用电感耦合等离子体质谱技术,研究测定植物样品中的碘和溴的测定方法,研究确定最佳温度以及提取时长测定样品的最佳介质,以及干扰元素的校正方法,结果令人满意。方法检出限为0.007ug/g和0.027ug/g,方法快速简便,结果准确。可以用于批量测定。  关键词:电感耦合等离子体质谱法;植物样品;碘;溴  近几年以来,电感耦合等离子体质谱法(ICP-MS)的应用日益广泛,涉及的行业也是越来越多,
摘要:随着经济的发展,科技水平的不断提高,这对加油站信息化建设具有重要意义。信息技术在人们生活的各个领域的使用更加频繁,效果更加显著,加油站信息化建设可提高加油站的管理水平。  关键词:加油站;信息化建设;对策  只有加强加油站信息化建设,石油企业才能在动荡的市场中提高市场竞争力。然而,加油站信息化建设还有很大的改进空间,体现在实施制度的发展不完善,相关管理人员专业知识的缺乏。目前,物联网技术的快
摘要:钼精矿是提炼钼的重要矿物原料,高杂钼精矿的净化能够清除一些有害杂质,提升钼精矿质量。本文介绍了氯盐净化技术,用于解决钼精矿铜超标问题,又介绍了钼精矿降铅的方法。  关键字:高杂钼精矿;净化技术  前言:大多数钼精矿都要转为工业氧化钼,之后用于炼制合金钢。由于钼精矿中含有许多杂质,且对环境产生较大污染,在炼钢温度下,氧化钼中铅会转化为有毒气体,对人体与环境产生较大影响。所以,钼精矿净化处理是必
摘要:基层党建政工工作是企业党组织建设的核心环节,会直接影响到党组织建设的发展,直接关系到企业未来改革发展的方向。目前我国运输企业的发展受到国内外市场的激烈竞争,加强基层党建政工工作是提高运输企业发展的重要基础。为了能够有效实现运输企业的可持续化发展,做好运输企业基层党建工作的创新尤为重要,分析运输企业基层党建政工工作,在实际工作过程中所出现的问题,并提出相应的改进措施从而提高运输企业基层党建政工
摘要:当前我国工业自动化程度不断加深最直接的表现就是气动执行器,该仪器系统在工业流程中具有重要的作用。本文首先研究了气动执行器系统的常见故障,接着重点研究了气动执行器系统的故障诊断方法,旨在保证气动执行器系统的运行安全,进而为自动化流程工业的运转提供一个稳定的环境。  关键词:气动执行器系统;故障;诊断  引言:当前我国工业飞速发展,各种先进技术得到了充分应用。气动技术具有无污染、成本低、操作简单
摘要:地热能是一种绿色低碳、能够持续利用的可再生能源,具有储量大、分布广、清洁环保、稳定可靠等特点,是一种现实可行且具有竞争力的清洁能源。地热能利用分为地热发电和地热直接利用(以热的形式利用)两大类。从发展趋势看,深部地热能的开发以及低温地热能的利用前景广阔。  关键词:地热,新能源,研究进展,发展展望   煤炭、石油等傳统能源在给人类创造财富的同时,也给环境造成了巨大的污染,寻找环保型替代能源势