1.3.2离线索引流程
离线索引是指对分布式存储系统中的数据文件利用MapReduce并行处理技术创建索引,达到快速创建索引的目的。离线创建索引流程如图2所示。
离线创建索引会调用2次MapReduce过程:第一次利用MapReduce生成内存中的小索引,将内存中生成的小索引合并成分布式存储系统中的小索引;第二次利用MapReduce将分布式存储系统中的小索引合并成分布式存储系统中的最终的大索引。最后,将分布式存储系统中的索引数据同步到各个节点。
1.4服务器集群监测机制
在完成服务器集群和哈希位置的映射后,监测点根据映射将数据写入到对应的集群节点上,分布式存储的高可用机制(HighAvailability,HA)根据副本管理策略,为写入的数据创建多副本并保存到集群的多个节点。在运行过程中,映射需要根据数据库服务器节点的实际情况进行调整,包括服务器集群中节点的运行状态以及集群中节点的变更。
1.4.1服务器节点运行状态监测
服务器集群中节点状态监测采用主从式框架,首先选定2个节点作为监测服务主节点,其他服务节点在进入集群时先在某一台监测服务主节点上注册,完成注册后主节点和该节点建立通信。为保证主节点的可靠性,2个主节点互为备份,两者之间的数据同步由分布式资源协调的HA机制来完成。集群中各节点服务器与主节点之间通过心跳机制周期性地上传节点的负载情况和资源使用情况。服务器集群状态监测主节点将各节点的运行状态信息汇总,并通知动态索引服务,更新一致性哈希表和服务器节点的映射。集群节点状态监测服务结构示意如图3所示。
1.4.2动态索引更新管理
动态索引系统中节点监控服务对监测点索引和数据索引的动态更新过程进行记录。监测点动态索引变更信息包含监测点在一致性哈希表中的当前和历史位置以及该位置对应的数据库服务器节点的映射,查询历史信息的用户可通过历史纪录进行查询;数据动态索引变更信息包含各监测点中监测数据的当前和历史索引文件,用户根据历史节点映射定位到服务器节点后,通过历史数据索引文件快速获取所需的历史数据。
1.5动态索引查询
1.5.1实时读写
当智能电网的业务用户需要将状态监测数据实时写入搜索系统,并对写入的状态监测数据进行实时查询或分析时,动态索引框架通过监测点索引在一致性哈希表中定位到数据库集群的某一服务器节点,然后开始写入数据,当写入的数据要求立即读取时,系统将启动在线索引创建流程,通过并行处理技术(MapReduce)为写入的实时数据在内存中构造索引文件,同时将索引文件保存到分布式存储系统中。用户根据此信息、连接相应的快照服务或查询服务完成写入/订阅操作。数据实时读写流程如图4所示。
1.5.2历史数据查询
历史数据查询通过并行处理框架创建多个查询任务,每个任务首先向动态索引框架中的监测点索引获取监测数据所在的服务器节点,然后再检索数据索引,获取包含该任务时间段内数据的索引文件,然后根据索引文件从数据库服务集群中读取数据,最后通过将多个查询任务进行合并,返回历史数据查询结果。历史数据查询流程如图5所示。