资讯专栏INFORMATION COLUMN

基于Hadoop的大规模网络流量分析

zone / 1193人阅读

摘要:首先从各个数据源中提取数据,然后把各个数据源数据解析出来的可读数据上传云平台上。本文主要展示了如何利用和框架进行大规模的网络流的分析的方法,并列举了几个利用这种方法进行实际分析的实例以及和传统方法进行网络流分析的对比。

在网络流量的分析中,基于流的分析被大多数ISP所采用,分析系统一般部署在一台高配置的服务器中。如由CERT网络势态感知团队(CERT-NetSA)开发的用于大规模网络安全分析的网络交互分析工具集 SILK(the System for Internet-Level Knowledge),支持有效的收集、存储和分析网络流数据,SILK可以高效地查询历史大流量数据集,能用于分析大的企业或者中型ISP的骨干或边界网络流量。然而,随着互联网带宽的日益增加,单台系统会受到硬件等因素的限制使计算速度变得很缓慢,而且数据存放在单个服务器时的风险往往也很大,需要考虑使用分布式的方法。而分布式计算平台Hadoop以及依托在Hadoop平台下的MapReduce框架为解决这类问题提供了良好的支撑。Hadoop 是Apache的一个子项目主要由分布式文件系HDFS计算框架和资源管理器YARN组成,其中MapReduce是当中最着名的计算框架,也是大规模分析网络流量的基础。

Hadoop搭建的网络流量分析系统比之传统的分析手段有着以下的优点:1.更节省成本。只用少量的廉价机器就可以搭建起一个基于Hadoop的分布式计算平台;2.更具扩展性。使用分布式计算框架,每个节点都参与运算,计算效率随着节点数的增加线性增长;3. 更加可靠。分布式数据系统HDFS保证了备份数据的数量均匀分布在集群内部的各个节点上,数据更不易因机器的故障而丢失。本文基于Hadoop设计实现了适用于大规模网络流量的分析系统,使用了四个节点构成的分析集群,用来和一个单点SILK的数据流分析工具进行对比,结果表明该方法在大量数据的情况下相比于传统的流分析工具具有更好的效率、可靠性及可扩展性。

网络流分析

一条流由一个源主机与一个目的主机间的单方向传输的网络数据包组成,其中源和目的主机由各自的IP地址和端口号来标识。更明确的定义是,一条流由源IP地址、目的IP地址、源端口、目的端口、时间戳、服务类型、入逻辑接口标识符等关键字标识。

在过去的数十年间,有很多技术和工具被广泛地应用到网络流量的分析当中。Tcpdump是最常见的一种网络流分析工具,Wireshark则提供了用户友好的界面,以其简单易用性着称。CoralReef和Snort的相继出现为实时分析网络流量也做出了很大的贡献。随后又出现了如SILK等网络流分析工具。这些网络流分析工具在少量的数据下完全可以胜任网络流分析的工作。然而随着近几年来数据爆炸式的增长,传统的基于单点的网络流量分析的方法变得越来越不能满足需求。

Hadoop中的MapReduce计算框架以前主要被应用于大规模的网络文本分析、数据挖掘以及日志分析当中。在本次工作中,我们把MapReduce创新性的应用在了网络流分析当中,这样就可以使相应的网络流的统计不在拘泥于一个节点上,突破了单点网络流统计的局限性。同时使得网络流分析具有了更高的可扩展性,每当集群遇到计算瓶颈时,我们只需加入更多的节点,就可以使计算速度提升,而不是花费大量的金钱去购买更高配置的机器。

Hadoop网络流量分析

NetFlow产生大量的数据,但大多时候我们只需要这些数据的统计结果。用普通的串行方法可以在少量的数据集上进行统计,并且达到很理想的效果,但是一旦数据超过一定量级,便不能有效地进行处理,这时一些基于分布式的并行计算框架就有了用武之地。为了实现并行计算,已经有很多组织机构提出了多种方法,其中以Google提出的MapReduce框架更为着名。该框架已被广泛应用于文本搜索,海量数据挖掘等场合。

概述

图1展示了我们进行流分析时的机器拓扑结构。其中Hadoop云平台提供了分布式文件系统HDFS和云计算功能。

首先从各个数据源中提取数据,然后把各个数据源数据解析出来的可读数据上传云平台上。云平台的计算由一个主节点组织,若干从节点协同。主节点用来存储元数据、分配资源和任务调度。我们可以对其进行相应的系数配置如缓冲区大小、数据分片大小、处理线程的多少等因素,以更好地达到实验效果。从节点则接受主节点的调度,主要参与运算,同时也会定时反馈自己所在节点的状况。每个从节点上会根据HDFS的配置有若干份,在进行分布式计算时,从节点计算时通过Hadoop自带的RPC协议来进行通信。具体的计算过程则是由MapReduce框架完成。

MapReduce下的Flow分析

MapReduce计算框架下,任何数据都可以被看做是一对键值的组合。Map函数和Reduce函数是 Map-Reduce的两大组成部分。Map函数用来对原始数据进行过滤,然后产生中间结果(也是键-值的形式)该中间结果作为Reduce函数的输入。之后,Hadoop会把具有相同键的值归为一个列表,然后再遍历列表进行数据的统计。Reduce过后,通常中间数据集都会缩小,因为Reduce过程中仅提取了该部分的有效信息。为了能使用MapReduce框架进行不同流字段的分析,应当设计自己Map和Reduce函数,如果要做某时间段的流量检测,那么Map函数要设计成带有可以提取某时间段所有流量的功能。如果我们要查看是否有潜在的DDos攻击,那么Map函数被设计成可以提取知名端口字段,其他的功能与此类似。

图2详细地介绍了统计某时间段流量的MapRed-uce的工作流程。图中有一个上文没有提到combiner的过程,该过程主要用于再从节点进行部分归并,以提高程序的运行效率。

1.输入文件

首先,我们把提取的原始NetFlow字段利用SILK自带的工具rwfilter解析成Hadoop可以读出的数据字段,即文本字段。接着把这些解析出来的字段由Hadoop客户端上传到HDFS中,由于解析出来的文本字段远远大于原来的二进制形式的文件,所以需要把这部分输入规模变小一些。SILK本身并不提供解析二进制文件的接口,所以采取了把源数据进行压缩的方法,采取的压缩格式较好是能支持 Hadoop的LZO,通过实验也证明了这种压缩方式确实有较好效率。

2.Mapper

Mapper首先读入存在在HDFS中的文件作为自己的输入,它的读入以行为单位。然后再用文本处理工具对这些行字段进行提取,提取的字段和要进行的操作有关。以统计某时段的某IP的流入流量为例,Mapper输入中会有IP、端口、协议、时间戳等字段。由于是进行某时间段流量的统计,我们把该时间段内的IP字段提取出来作为键,把该时间段内的流量提取出来作为值,这样就构成了一个Mapper。

3.Reducer

Reducer把Mapper的输出作为输入,同样以统计某IP地址某时间段流入流量为例。Mapper中得到了IP-Bytes键值对,Reducer中把相同的键所对应的值归并在一个列表L中这样,键值对就变成(IP,L),这样就可以遍历L并把所有的流量相加,就得到了我们想要的结果。

实验及结果对比

为了进行实验,我们搭建了1个主节点以及4个从节点的Hadoop-2.4.1版本的集群,集群的每个从节点带有2.83GHz的12核CPU,内存大小为48G,硬盘大小为40TB,集群的主节点带有一个12核2.83GHz的CPU和64G内存。为了提高效率,主从节点均在同一个机架上,连在同一个交换机上。SILK的对比试验则是在单节点上进行,配置相同。

可以看到当数据量不大时,SILK往往具有更快的速度,这是因为Hadoop在进行计算前,要做一些集群间的通信及初始化工作,在小数据集上并不占优势。然而当我们把实验数据逐渐加大时,发现Hadoop会在某个点超越SILK的分析速度,当数据集再逐渐扩大时,Hadoop的优势变得更加明显,如图3所示。

本文主要展示了如何利用Hadoop和MapReduce框架进行大规模的网络流的分析的方法,并列举了几个利用这种方法进行实际分析的实例以及和传统方法进行网络流分析的对比。实践中,该方法在大量数据的情况下相比于传统的流分析工具具有更高的效率。另外它在可靠性、可扩展性方面也有着突出的表现,随着Hadoop更高版本的推出,现在的单点故障问题以及分布式系统安全方面也有了显着的提升,使得该方法的应用更成为了可能。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/3908.html

相关文章

  • Hadoop在电信大数据业务系统中应用

    摘要:电信大数据业务的源起联通研究院移动互联网产品开发事业部主任王志军王主任主要从四个方面介绍了大数据的应用第一方面源起,第二电信运营商有哪些大数据,第三中国联通建成的正在投入使用的大数据业务系统,第四大数据应用的展望举几个简单的例子。        2013年11月22-23日,作为国内专注于Hadoop技术与应用分享的大规模行业盛会,2013 Hadoop中国技术峰会(China Hadoo...

    TANKING 评论0 收藏0
  • Hadoop掀起大数据革命 三巨头齐发力

    摘要:大数据革命正以为中心如火如荼的进行着。这个价格对于关系数据库部署每至美元来说极具竞争优势。三巨头大数据领域齐发力在上月美国拉斯维加斯举行年度大会上院士总架构师宣布将在明年推出内置技术的旗舰级数据库管理系统。 开源的数据处理平台凭借其低成本、高扩展性和灵活性的优势已经赢得了多数网络巨头的认可。现在Hadoop将进入更多企业。IBM将在明年推出内置NoSQL技术的DB2旗舰级数据库管理系统。上个...

    doodlewind 评论0 收藏0
  • 九头蛇与大象之争,Hydra或将取代Hadoop

    摘要:仍然是一个储存大量数据的优秀平台,但很多公司面临着另一个问题,我们将数据存储到之后如何去分析数据,无论是还是都需要方便地访问中的数据,才能从中获得的价值。 Hydra(九头蛇),分布式任务处理系统,由社交标签服务提供商AddThis六年前开发,现在已得到Apache的开源许可,就像Hadoop 一样,只是还没有Hadoop那样的知名度和声势。Hydra的创造者称,该多头平台非常擅长处理一些大...

    YFan 评论0 收藏0
  • 解密Apache HAWQ —功能强大SQL-on-Hadoop引擎

    摘要:我们缓存资源的主要原因是减少与全局资源管理器之间的交互代价。资源管理器同时需要保证查询不使用超过分配给该查询的资源,否则查询之间会相互影响,可能导致系统整体不可用。主要向其他组件提供元数据的存储及查询服务。对外的接口为元数据查询语言。 作者简介:常雷,博士,Pivotal中国研发中心研发总监,HAWQ并行Hadoop SQL引擎创始人,Pivotal HAWQ团队负责人,曾任EMC高级研究员...

    willin 评论0 收藏0
  • 解码2017双11:全球狂欢新记录背后阿里云存储

    摘要:摘要天猫双再次刷新纪录,这背后是大数据的支撑和阿里云计算的能力的体现。阿里云存储支撑双新记录天猫双全球狂欢节,全天成交额再次刷新纪录达到亿元,全天支付总笔数达到亿,全天物流订单达亿,全球个国家和地区的消费者参加。 摘要: 2017天猫双11再次刷新纪录,这背后是大数据的支撑和阿里云计算的能力的体现。手淘、天猫APP主站的所有图片和视频都存储在阿里云对象存储OSS之上,全球数以亿计的消费...

    lidashuang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<