基于Hadoop云平台的矿井指纹定位算法研究

2013-06-26 05:55高广飞
金属矿山 2013年12期
关键词:开发人员离线指纹

高广飞 姚 军

(西安科技大学通信与信息工程学院)

精确的位置定位服务可以为矿井的安全生产和管理提供权威的数据参考。由于煤矿井下巷道狭长壁表面的岩石和煤层结构[1],使得井下电波传播环境存在多径效应、驻波、非视距传播等问题。正是由于井下电磁环境的特殊性和复杂性,井下人员定位方法一直是人们研究的热点。而传统的定位方法因使用环境的局限性,很难移植应用到井下环境。电波信号的多径传播对环境具有依赖性,每个位置上信道的多径结构是唯一的,场景指纹匹配定位算法可以巧妙地结合利用井下每个位置的多径结构,采集实际环境中不同位置的信号强度,构建实际位置和信号强度之间的映射匹配关系获取位置信息。

精确的指纹匹配定位算法需要建立庞大的离线数据库,而传统的指纹匹配定位算法因计算匹配的性能低而不得不采用粗粒度的测量栅格和网络密度,成为定位精度提高的瓶颈。Hadoop是专为离线处理和大规模数据分析而设计的,非常适合于一次写入,多次读取的数据存储需求。因此,本研究以矿井为应用场景说明基于Hadoop云平台的指纹匹配定位算法的应用优势。

1 相关技术介绍

1.1 云计算

云计算[2](cloud computing)是以数据为中心,依托并行数据处理技术、编程模式和虚拟化等技术,基于互联网向个人或企业用户提供按需即取的计算。其基本原理是将存储和计算服务分布在大量分布式计算机上,可将分布式计算机的数据处理资源和数据存储资源整合在一起协同工作。按照提供服务的不同,云计算一般认为包含以下几个层次的服务:①Software as a Service,软件即服务,简称SaaS,这层的作用是将应用作为服务提供给客户。②Platform as a Service,平台即服务,简称PaaS,这层的作用是将一个开发平台作为服务提供给用户。③Infrastructure as a Service,基础设施即服务,简称IaaS,这层的作用是提供虚拟机或者其他资源作为服务提供给用户。

1.2 Hadoop

Hadoop[3]是一个用于运行应用程序在大型集群的廉价硬件设备上的软件框架,Hadoop实现了类似于GFS(Google file system,Google文件系统)的分布式文件系统HDFS(Hadoop Distributed File System)。用户可以在不了解分布式底层细节的情况下,开发分布式程序。Hadoop MapReduce实现了Google MapReduce的基本功能,其工作原理是把大的数据集分发到Hadoop集群上的每一个Datanode上实现数据的可靠性,每个Datanode会周期性的返回自己完成的工作状态报告。HDFS、MapReduce、Hadoop Common是Hadoop的核心技术。

1.3 指纹匹配定位算法

图1 指纹匹配定位算法

指纹匹配定位算法分为以下2个阶段。

(1)场强离线数据库建立阶段[5]。离线阶段的主要工作是在定位场景内按照一定的方法选取一些重要的位置建立该位置的场景指纹信息,对于该位置的确定,可以将定位场景划分成一定的网格,按比例选取划定好的网格坐标位置采集周围ZigBee协调器信号强度值,将采集的数据根据相应ZigBee协调器的MAC地址作为采集指纹数据库的“指纹数据”存入相应的位置数据库。该数据库记录了与该点所在位置有关的无线环境信息。将采集到的场景指纹信息存入指纹数据库中,待在线定位阶段使用。

(2)在线定位阶段。这个阶段的待定位人员的位置是未知的,且是移动的,因此得到的场景指纹信息也是实时的,该组指纹信息将用于与建库阶段的场强数据库中的各组指纹数据按照一定的匹配算法进行匹配,得到待定位人员的位置信息,完成定位过程。

2 基于Hadoop云平台的矿井人员定位系统设计

基于Hadoop云平台的矿井人员定位系统分为井下数据采集定位和井上数据处理中心2部分。以下内容对2部分分别做设计说明。

对于井下的定位[6]阶段,当待定位人员(ZigBee终端器)进入井下由无线传感器网络组成的ZigBee网络时,ZigBee终端器将实时接收到的RSS值及相应ZigBee协调器的MAC地址以无线信道的方式通过ZigBee路由器传送给ZigBee协调器,最后ZigBee协调器通过串行接口或者工业以太网与井上数据中心连接,由井上数据中心的Hadoop云平台对接收到的位置信息与离线阶段建立的离线数据库按照一定的匹配算法处理,实现井下人员的定位。如图2所示。

图2 井下定位部分

基于Hadoop云平台的矿井人员定位就是利用云计算的技术和理念构建井上数据中心的基础设施和服务,根据井下人员定位的服务要求,采用Hadoop开源软件构建一个基于云计算的矿井人员定位系统的离线数据处理中心模型,如图3所示。

图3 井上数据中心模型

客户端是矿山管理人员利用web浏览器或应用软件来浏览或操作需定位人员的界面。Web服务器主要作用是用来响应来自客户端的HTTP请求,通过请求/响应协议,将Hadoop云平台处理后的定位信息通过Web服务器以网页的形式直观的返回给客户端。应用服务器的主要作用是用户管理、资源管理、安全管理等。Hadoop集群是由1个master和多个slave组成的集群环境,其主要作用是将离线阶段建立的离线场强数据库实体虚拟成一个文件系统,提供数据的分布式存储。

Hadoop集群的搭建过程:配置/etc/hosts文件、安装JDK及环境变量设置、设置ssh无密码登陆、安装Hadoop及Hadoop环境变量设置、masters和slaves文件设置、新建Hadoop用户及目录。

基于Hadoop的MapReduce编程模型写出来的应用程序可以以容错的方式运行在大型集群上,并行地处理海量的数据集。MapReduce采用“分而治之”的思想,把对大规模数据集的操作分发给1个主节点管理下的各分节点共同完成。然后通过整合各分节点的中间结果,得到最终结果。

在MapReduce计算模型[7]中,实现基于MapReduce的关键是开发人员自定义的map函数和reduce函数。其中map负责待计算任务的分解,reduce负责汇总各子任务处理后的结果。而对于在计算过程中的分布式存储、容错处理、工作调度、网络通信与安全等复杂问题,均由MapReduce框架调负责。在map阶段,MapReduce模型将任务的输入数据分割成固定大小的片段(splits),随后将每个split进一步分解成一批键值对(key,value)。Hadoop为每一个split创建一个map任务用于执行开发人员自定义的map函数。在reduce阶段,reduce把从不同map任务接收来的数据整合在一起并行进行排序,然后调用开发人员自定义的reduce函数,对输入的map结果进行处理,并将处理结果输出到HDFS上。在整个处理过程中,对于开发人员来说,只用设计map函数和reduce函数的实现即可,将并行程序均需关注的设计细节抽象成公共模块并交由系统实现,简化了开发人员的编程工作,使开发人员解放出来去专注于应用程序的逻辑实现。如图4所示。

图4 Map Reduce模型

根据以上的模型,对Hadoop云计算平台和指纹匹配定位算法的结合做了初步的分析与设计,利用Hadoop分布式开源软件框架,将离线数据库资源存储在HDFS分布式框架内,MapReduce处理定位阶段的匹配处理,实现井下人员快速准确的定位服务。

基于Hadoop云平台的矿井人员定位系统运行在一个包括1个主节点master与多个子节点slave的集群环境中。其中master作为控制节点,用来管理文件系统的命名空间,将所有的文件和文件夹的元数据保存在一个文件系统树中,并使用事物日志(EditLog)负责记录文件是如何分割成数据块的,以及这些数据块分别存储到哪些slave上。鉴于主节点master的重要性,在实际应用中,通过选择性能较好的服务器作为master节点,可以最大限度地避免主节点master失效。也可以用另一台机器作为secondary namenode用作备份节点。slave节点负责子任务的分布式计算和数据资源的存储,对其性能不作要求。

首先将需要将离线阶段的数据库作为待定位信息存储到hadoop集群的分布式文件系统HDFS中,开发人员编写的MapReduce程序通过客户端操作Web服务器提交到master主节点端,在各个slave节点端,各自的Map Task先将各自维护的离线数据库迭代解析为一个个(key,value)对,生成定位文件并存储到hadoop集群的分布式文件系统HDFS中。

定位文件被分布式存储到HDFS中以后,开发人员设计用于匹配定位的Map/Reduce函数,并行的进行匹配定位处理。当客户端发起矿井人员定位请求时,主节点接到请求,JobTracker接收定位数据(需定位人员佩带的ZigBee节点所接收到的RSS值及对应的ZigBee协调器的MAC地址),JobTracker接收完定位数据以后,分发开发人员编写的map函数到各个slave节点。在各个slave节点上运行每个map函数后返回这个定位节点所发射出的所有定位信息,并返回一系列〈RSS值及MAC地址,坐标值〉的键值对作为临时结果存放到本地磁盘上,由MapReduce系统运行时负责收集这些键值对。按照key对(key,value)对进行排序,并存放到〈key,value list〉中,调用用户编写的Reduce函数处理匹配阶段,并将最终匹配结果存放到HDFS中,完成匹配过程,得到定位信息并反馈给客户端。如图5所示。

图5 定位流程

3 结语

本研究设计并开发了基于Hadoop的矿井人员定位平台,采用Hadoop集群方案,主要以HDFS分布式文件系统,MapReduce并行计算模型作为处理离线数据库的主要方法,在大量的廉价普通计算机上搭建该平台,达到高精度和快速的人员定位。目前该定位平台还在开发中,系统的各个模块实现的结果表明,此系统具有良好的扩展性和易维护性,采用的技术路线和设计方法是有效和可行的。在下一步的研究中,将致力于进一步提升定位系统性能,同时研究对矿井安全数据(温度、湿度、瓦斯浓度、矿尘等)的处理,给矿山安全生产提供技术支撑。

[1] 刘晓文,王振华,王淑涵.基于RSSI算法的矿井无线定位技术研究[J].煤矿机械,2009,30(3):59-60.

[2] 翟岩龙,罗 壮,杨 凯,等.基于Hadoop的高性能海量数据处理平台研究[J].计算机科学,2013(3):100-103.

[3] 刘树仁,宋亚奇,朱永利,等.基于Hadoop的智能电网状态监测数据存储研究[J].计算机科学,2013(1):81-84.

[4] 胡长俊,李 鑫.基于RSSI的井下定位技术研究[J].煤矿机械,2010,30(10):71-73.

[5] 唐 炜,郑小林,干红华,等.基于运动估计的ZigBee无线网络定位方法[J].计算机工程,2010(10):256-261.

[6] 刘晓文,张秀均,郝丽娜,等.基于WI-FI的井下定位算法研究[J].传感技术学报,2012(6):854-857.

[7] 杨 喆,陈 锋.使用MapReduce编程模型进行大规模FCD并行处理[J].电子技术,2010(9):17-19.

猜你喜欢
开发人员离线指纹
异步电机离线参数辨识方法
呼吸阀离线检验工艺与评定探讨
像侦探一样提取指纹
为什么每个人的指纹都不一样
浅谈ATC离线基础数据的准备
Semtech发布LoRa Basics 以加速物联网应用
离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素
基于自适应稀疏变换的指纹图像压缩
可疑的指纹
后悔了?教你隐藏开发人员选项