摘要:海量采集数据的存储和高并发访问、节能减排计算业务的快速增长及计算逻辑的频繁变化,使得目前基于Windows技术的计算框架的处理能力和扩展性成为节能减排系统应用深化过程中的瓶颈。针对遇到的问题,设计了基于Linux系统、Hadoop大数据技术和Lua脚本驱动的分布式计算框架,将复杂的计算业务拆分成彼此独立的可重用计算组件,利用Lua脚本技术实现计算组件之间的关联关系和计算组件的计算逻辑。目前,利用这种计算框架建立了节能减排计算平台,为江苏全省所有统调燃煤机组环保电价考核业务提供高吞吐量、高扩展性和高效可靠的计算服务。
关键词:节能减排;分布式计算;脚本技术;Lua;Hadoop;HBase
江苏省自2006年开始建立了“燃煤机组烟气脱硫实时监控及信息管理系统”,经过多年的努力,先后建立起脱硫、脱硝、除尘等各类节能减排应用。随着应用的深化,采集数据由最初的3000测点扩展到目前的40万测点。数据量随之剧增。同时,计算业务也日趋复杂,算法逻辑频繁调整,目前的数据库服务器和计算服务器承受了巨大的资源压力。为了解决当前出现的问题,本文提出了一个基于大数据技术的节能减排分布式计算框架,要求能够适应多变的业务需求以及高并发的数据处理要求。节能减排分布式计算框架是一套基于Linux系统、Hadoop大数据平台,支持Lua脚本驱动的计算平台,它具有较高的扩展性和数据并发处理能力,支持海量数据存储,能够解决当前系统中遇到的各类问题。
1计算框架需求分析
节能减排分布式计算框架的建立是为节能减排系统服务的,数据计算模型与节能减排具体应用密切相关。目前主要考虑三种业务的计算模型。脱硫业务:对脱硫相关设备的测点数据进行处理和统计,对统计结果进行深层次的分析。脱硝业务:对脱硝相关设备的测点数据进行处理和统计,对统计结果进行深层次的分析。除尘业务:对除尘相关设备的测点数据进行处理和统计,对统计结果进行深层次的分析。
2系统整体架构
节能减排分布式计算框架构建在Linux操作系统上,在实现上分为三层结构:数据库服务系统、公共服务系统、平台服务系统,结构如图1所示。
2.1数据库服务系统
由大数据系统(Hadoop)和关系型数据库系统(DB2)构成,其中大数据系统(Hadoop)是核心,关系型数据库系统用于辅助支撑。Hadoop主要用于存储历史数据、结果数据、档案数据、分布式计算框架管理数据。
2.2公共服务系统
公共服务系统是分布式计算框架的数据处理核心,负责数据访问驱动接口、脚本驱动引擎、安全处理、日志处理以及计算框架和应用的异常处理。根据分布式计算框架的特性,公共服务系统将会对外暴露出多个数据接口,用于上层应用的数据访问、数据处理、业务算法实现以及脚本驱动。
2.3平台服务系统
平台服务系统包括:脚本编辑系统、平台运行系统、辅助系统。脚本编辑系统具有业务算法配置、脚本编写和管理功能;平台运行系统具有任务调度、执行功能,脚本编辑系统编写的脚本将通过运行系统驱动;辅助系统包括外部历史数据、档案数据的导入和存储。
3节能减排大数据中心
节能减排分布式计算框架将数据分成四类,分别是:现场实时采集数据、计算结果、档案数据、分布式计算框架管理数据。数据的存储基于Hadoop系统的HBase数据库。Hadoop的核心是HDFS和MapReduce,HDFS为海量数据提供存储,MapReduce为海量数据提供检索计算[1]。HBase是一个分布式的、面向列的开源数据库,它在Hadoop之上提供了非结构化的数据存储能力[2]。
3.1现场实时采集数据
在分布式计算框架中,现场实时采集的数据存储于历史数据表中。节能减排分布式计算框架中最大测点数约40万,大部分测点数据的采集周期为每10秒,数据量巨大。考虑到节能减排数据的规模以及大数据检索性能,历史数据表按年分表存储。历史数据存储以测点编码、小时时间为行检索关键字,存储对应小时的历史数据,该测点的一个小时数据按四个列族方式存储,每个列族存储15分钟数据。
3.2结果数据
结果数据包括节能减排相关计算业务的处理结果,包括脱硫、脱硝、除尘小时排放数据、考核数据和事件统计数据等。每种应用数据都是基于特定的计算单元(应用相关的具有内在逻辑关系的一组测点)的多个测点数据按照一定的逻辑关系计算所得,因而计算结果数据在Hadoop中的存储以计算单元编码、时间为检索关键字,按照应用要求建立列族存储结果数据。
3.3档案数据
节能减排分布式计算框架的建立是为节能减排的各种应用服务,目前应用相关档案数据主要是与电厂、设备、采集关系比较紧密的一些配置信息数据。各种档案表中以档案的编码为检索关键字,根据具体的档案信息建立列族存储数据。
3.4分布式计算框架管理数据
分布式计算框架内除了需要处理的历史数据外,还包括支撑系统运行的.框架管理数据,如:账户数据、脚本信息数据、日志数据等。帐号数据是分布式计算框架中的登录用户信息,帐号信息作用于脚本任务执行的全过程。脚本信息数据是由脚本编辑系统生成的脚本信息,计算框架依赖脚本信息进行任务调度和计算,并产生最终的结果数据。日志数据是计算框架根据规则产生的各种操作日志信息,方便数据回溯和跟踪。
4分布式计算框架
节能减排分布式计算框架是基于Linux上Hadoop系统的计算平台,是为了适应节能减排复杂多变的应用业务而开发的、支持脚本编程的计算平台,它以Lua脚本技术为支撑,融合了节能减排的计算业务特性。节能减排分布式计算框架的任务执行通过任务调度节点控制;任务调度节点将脚本发送给计算节点;计算节点调用底层的Lua脚本驱动引擎完成任务执行。任务调度节点与计算节点之间的关系如图2所示。图2任务调度节点与计算节点之间的关系计算节点具有线性扩展性,可以根据需要任意增加节点数量。计算节点会将任务的执行情况反馈给任务调度节点,由任务调度节点更新数据库中的任务状态。
4.1任务调度节点
根据脚本编辑系统生成的脚本信息以及快照表中的测点最新数据时标信息,生成可以执行的脚本任务,并将脚本任务分派给计算节点。
4.2计算节点
接收任务调度节点分派的脚本任务,启动任务执行序列运行任务。每个计算节点中可以有多个任务执行序列并发执行脚本任务。
4.3任务执行序列
任务执行序列是计算节点中的最小任务执行单元,它从全局任务队列中获取任务,并将任务脚本分解为多个脚本块,根据脚本块之间的串联关系依次调用Lua脚本驱动引擎执行脚本块。
4.4Lua脚本驱动引擎
Lua是一门扩展式程序设计语言,它作为一个强大、轻量的嵌入式脚本语言,可供任何需要的程序使用。其最大的特点是:可扩展、简单、高效率、跨平台[3]。在Lua脚本的基础上,结合节能减排分布式计算框架的特点,对Lua接口进行了扩充,使得脚本驱动引擎能够访问计算框架内的各种资源。扩充的接口包括:Hadoop访问接口、关系数据库访问接口、内存控制接口、任务调度接口、任务执行接口、安全控制接口、日志管理接口。在分布式计算框架中,为了方便Lua脚本的编写,以及实现多设备、多应用之间的脚本共享,使用了以下两种技术:1)脚本分块。支持将一个脚本分解为多个脚本块,每个脚本块完成单一的功能,通过计算框架内部的执行序列实现脚本块串联。2)脚本块共享。对于不同应用,可以将相同的计算功能定义为独立的脚本块,实现共享,减轻脚本编程工作量。
4.5Hadoop访问接口
Hadoop是一个能够对海量数据进行分布式处理的软件框架,它具有可靠、高效的特性,且易于扩展。在Hadoop的基础上,结合节能减排分布式计算框架的特性,对Hadoop的访问接口进行了规划,在节能减排大数据中心四类数据之间实现了统一的数据访问接口。
5结论
基于Linux系统和大数据Hadoop平台,以Lua脚本技术驱动的节能减排分布式计算框架,通过计算节点的线性扩展能力提高了数据吞吐量,通过脚本分块和共享技术提高了算法的兼容性和可扩展性,从而有效地解决了当前节能减排系统中海量数据并发操作和算法多变问题。
作者:王其祥 周春蕾 孙栓柱 单位:江苏方天电力技术有限公司
参考文献
[1]TomWhite.Hadoop权威指南(2版),周敏奇,王晓玲,等,译.2011.
[2]LarsGeorge.HBase权威指南.代志远,刘佳,等,译.2013.
[3]RobertoIerusalimschy.ProgramminginLua.2005.
【节能减排监控系统的计算框架研究论文】相关文章: