1。4 本文组织结构
本文共分为六个章节:
第1章讨论了密集人群安全预警的研究背景,介绍了国内外的现状和本文的研究内容以及本文的主要结构。
第2章主要介绍了本系统使用到的相关技术。
第3章详细介绍了系统的总体设计思想、各个功能模块的设计以及功能设计和相关数据库的表设计。
第4章主要实现了Hadoop框架和MapReduce框架,然后介绍了密集人群安全预警和密集人群安全报警机制的实现。
第5章测试了密集人群安全预警机制的ARMA时间序列模型。
第6章总结了本文的具体工作,给出研究结论,并展望下一步工作。
第二章 相关技术
2。1 Hadoop体系结构
Hadoop生态系统包含很多组件,本系统只选用了Hadoop、HBase、Zookeeper三个组件,其中HDFS文件系统和MapReduce计算框架包含在了Hadoop中,HBase需要Zookeeper提供服务,也需要HDFS提供底层存储。
2。1。1 HDFS文件系统
HDFS:(Hadoop Distributed File System)Hadoop分布式文件系统,提供高吞吐量的应用程序数据访问,对外部客户机而言,HDFS 就像一个传统的分级文件系统[12]。可以创建、删除、移动或重命名文件,等等[16]。但是 HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的[15]。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于Hadoop1。x仅存在一个 NameNode,因此这是Hadoop1。x上HDFS 的一个缺点(单点失败),在Hadoop2。x上提供了2个NameNode,使得HDFS高可用。
存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定[7]。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。
本系统主要使用HDFS存储用户历史数据,HDFS提供了一个高可用、低冗余和多备份的文件系统,非常适合本系统的数据存储。
2。1。2 MapReduce计算框架
MapReduce是Hadoop的核心组件之一,Hadoop要分布式包括两部分,一是分布式文件系统HDFS,一部是分布式计算框,就是MapReduce,缺一不可,也就是说,可以通过MapReduce很容易在Hadoop平台上进行分布式的计算编程[18]。
MapReduce主要分为两个函数map和reduce,其中map函数对所划分的数据并行处理,从不同的输入数据产生不同的中间结果输出,reduce也各自并行计算,各自负责处理不同的中间结果数据集合进行reduce处理之前,必须等到所有的map函数做完,因此,在进入reduce前需要有一个同步障(barrier);这个阶段也负责对map的中间结果数据进行收集整理(aggregation & shuffle)处理,以便reduce更有效地计算最终结果,最终汇总所有reduce的输出结果即可获得最终结果。
本系统主要使用MapReduce编写安全预警并行算法,对不同区域的人群进行划分危险等级,并对其进行快速预警。
2。1。3 Zookeeper服务框架
Zookeeper 是由 Apache Hadoop 的 Zookeeper 子项目发展而来,现在已经成为了 Apache 的顶级项目[14]。Zookeeper 为分布式系统提供了高效可靠且易于使用的协同服务,它可以为分布式应用提供相当多的服务,诸如统一命名服务,配置管理,状态同步和组服务等。 Zookeeper 接口简单,开发人员不必过多地纠结在分布式系统编程难于处理的同步和一致性问题上,你可以使用 Zookeeper 提供的现成(off-the-shelf)服务来实现分布式系统的配置管理,组管理,Leader 选举等功能。
本系统使用zookeeper服务框架来管理HBase数据库,Zookeeper的事件处理确保整个HBase集群只有一个HMaster,察觉HRegionServer联机和宕机,存储访问控制列表等。