软件工程硕士论文

您当前的位置:学术堂 > 毕业论文 > 在职硕士论文 > 工程硕士论文 > 软件工程硕士论文 >

云检测平台的架构设计

来源:学术堂 作者:姚老师
发布于:2017-02-24 共2551字
  本篇论文快速导航:

展开更多

  第三章 云检测平台的架构设计

  3.1 引言。

  本章节从数据采集、存储、计算等三个方面进行了阐述,这三个方面都需要结合分布式计算框架。本章设计了异常流量云检测平台,在计算层中我们采用了 apache spark 分布式计算框架,使用该框架来检测网络异常流量。本章节着重讨论平台设计思想和体系结构, 并介绍如何利用 Spark 集群对 darknet 数据集进行分类的方法。平台检测异常流量所采用Naivebayes 和 Cart 决策树算法将在第四章讨论。

  本章节具体内容安排如下:本章分别从采集层,计算层,存储层详细介绍了所采用的相关技术。

  3.2 云平台安全分析架构设计。

  基于大数据异常流量检测平台架构图如图 3.1 所示,其中包括数据采集层,数据存储层和数据计算层,计算层采用的 spark 框架。

  本系统采用了 Flume 作为数据采集层工具,flume 可以将分散在系统中节点产生的许多日志信息与流量信息数据,通过 flume 数据收集器进行采集并且推送到 HDFS 分布式存储当中去,或者也可以对抓取的原始数据进行简单的处理,用以产生能够适合计算层运算的输入数据,最终存储到 HDFS 分布式文件系统当中去。Spark 分布式框架的计算引擎通过调用 textFile方法从 HDFS 上读取数据,将 darknet 攻击数据到集群内存中,同时将 darknet 数据格式转换成 HadoopRDD 的格式。然后就可以调用 RDD 上的如 map、filter、reduce、join 等编程接口,同时使用机器学习算法对数据进行分析。每次对 RDD 的操作会由于 RDD 的只读特性,都会生成新的 RDD,整个 rdd 变换过程便形成了 "管道"[32].在计算过程中也可以根据具体的需求对任意 RDD 通过调用 persist 方法将该 RDD 的值缓存在集群内存中,以便后续基于该 RDD的分析效率更高。对于不再需要的 RDD 则可以通过调用 unpersist 方法即可将该 RDD 从集群内存中清除,释放该 RDD 占用的内存空间。当分析完成之后,对保存数据集的 RDD 调用saveAsTextFile 方法,便可将结果 RDD 中的数据持久化地存储到 HDFS 上。

  3.2.1 数据采集层。

  该系统的采集层使用的 flume 框架。使用该框架以 darknet data 数据文本为 source,以内存为 channel,将 darknet 数据集 sink 至 HDFS 中,供 spark 机器学习算法使用并进行数据分类。Flume 被称为是一个分布式、可靠和可用性高的海量日志采集、聚合和传输的系统。flume支持在日志系统中,来定制各类数据发送方,同时也用于收集数据;同时,Flume 提供对数据进行简单的处理,并写到各种数据接受方(比如文本、HDFS、Hbase 等)的能力。

  flume 的数据流由事件(Event)贯穿始终。Flume 的基本数据单位是事件,它不仅携带日志数据(字节数组形式)并且携带有头信息,这些 Event 由 Agent 外部的 Source 生成,当 Source捕获事件后会进行特定的格式化,然后 Source 会把事件推入(单个或多个)Channel 中。Channel可以被看作是一个缓冲区,它将会一直保存事件直到 Sink 处理将事件处理完为止。Sink 负责持久化日志或者把事件推向另一个 Source.

  3.2.2 数据存储层。

  (1)HDFS 在本系统中的作用。

  本文使用 HDFS 分布式文件系统对收集到的安全日志,异常流量数据进行存储,从Flume 采集的异常流量数据集当中提取出计算层所需要的特定的数据格式。 存储在 HDFS中的数据供 spark 机器学习库使用。

  HDFS 作为一种分布式文件系统,它和现有的分布式文件系统有很多共同点。比如,Hadoop 文件系统管理的物理存储资源上是通过计算机网络与节点相连而不一定直接连接在本地节点[33].对于 Client 端而言,HDFS 就像一个传统的分级文件系统,可以创建、删除、移动或重命名文件等等。与此同时,HDFS 与其他的分布式文件系统的区别也是显而易见的。

  首先,HDFS 其中的设计目标之一,就是能够在在通用硬件(commodity hardware)上进行部署的分布式文件系统。因为 HDFS 分布式文件系统是面向于成百上千的服务器集群,因此每台服务器上只存储着文件系统的部分数据,并且这些机器的价格都很低廉。这就意味着总是有一部分硬件因各种原因而无法工作。因此,HDFS 最核心的架构目标是错误检测和快速、自动的恢复。从这个角度说,HDFS 具有高度的容错性。

  第二,HDFS 的另一个设计目标是支持大文件存储。这就意味着 HDFS 应该能提供比较高的数据传输带宽与数据访问吞吐量。相应的,HDFS 开放了一些 POSIX 的必须接口,容许流式访问文件系统的数据。

  第三,HDFS 还要解决的一个问题是高数据吞吐量。HDFS 采用的是"一次性写,多次读"这种简单的数据一致性模型。网络爬虫程序就很适合使用这样的模型。

  第四,移动计算环境比移动数据划算。HDFS 提供了 API,以便把计算环境移动到数据存储的地方,而不是把数据传输到计算环境运行的地方。对于数据量比较庞大的文件,这不但可以有效减少网络的拥塞,同时还能提高系统的吞吐量[34].

  (2)HDFS 的体系结构与工作流程。

  下面简单看一下 HDFS 的结构。图 3.3 所示为 HDFS 的体系结构图。HDFS 采用的是Master/Slave 架构[35].

  NameNode 节点可以当作 Master 服务器,有三个部分功能。第一:对来自客户端的文件进行处理访问。第二:管理文件系统的命名空间操作,如'打开'、'关闭'、'重命名'等操作。第三:负责数据块到数据节点之间的映射。从这个意义上说,它扮演中心服务器的角色[36].

  DataNode 节点作为 Slave 服务器,同样有三部分功能。第一:对挂载在节点上的存储设备进行管理。第二:对客户端的读写请求进行响应。第三:每个大文件都被切分成一个或多个数据块,用以分散放到一组 DataNode 中,在 Namenode 的统一调度下进行数据块的创建、删除和复制。

  3.2.3 数据计算层。

  该模块是安全分析平台数据计算量最大的模块,利用 Spark 平台[37].采用 Naivebayes 和Cart 决策树等数据挖掘的算法对暗网络中的数据进行离线分析[38].该模块的作用是对攻击行为进行分析分类Spark 比 Hadoop 的传统处理方式 MapReduce 有着很大的差别,spark 计算效率至少提高 100 倍以上。

  Spark 可以分为四大模块:SparkSQL-RDD(其中 RDD 是数据执行的基本单元)、Graphx(图计算),MLlib(机器学习),Spark Streaming(实时处理)。RDD 是他们处理数据的基本单元。所以整个框架,就形成了大数据用来处理各种应用场景编程的一致性。
  
  3.2.4 本章小结。

  本章节主要介绍了大数据分析平台的架构设计和各个模块描述,本文分别对数据采集、存储、数据存储方案进行了介绍。

返回本篇论文导航
相关内容推荐
相关标签:
返回:软件工程硕士论文