COMPUTER
O
DOI:10.16707/j.cnki.fjpc.2018.05.059
基于hadoop框架的大数据处理与分析系统
陈龙\\黄丹芸u,3
(1泉州师范学院数学与计算机科学学院福建泉州362000;2福建省大数据管理新技术与知识工程重点实验室福建泉州
362000;
3智能计算与信息处理福建省高等学校重点实验室福建泉州362000)
【摘要】随着中国移动互联网以及电商物流的发展,企业每天都会产生大量的数据,需要对异常数据进行提取与分
析。本文主要运用hadoop生态技术对模拟出的数据进行异常数据的提取与分析,模拟出大数据实时计算的处理场景。
【关键词】hadoop;实时性;异常数据
随着互联网技术的不断发展,大数据技术也得到越来越广 泛的利用,而面对每天产生的EB级别的数据,怎么对异常的数 据进行提取与分析就显得尤为重要。本文主要运用hadoop与 storm这两个框架模拟出一个预警系统,该系统以五分钟为一 个时间段,提取在这个时间段内点击次数大于等于五次的用户 IP地址信息。将模拟产生的数据存入分布式文件系统,通过数 据提取程序提取出相应的数据。
1. Storm 简介(1) (2)
Storm的两个关键进程:Nimbus和Supervisor,它们之间 Topology(拓扑):在Storm中,Topology相当于一个集合,
图3 Topology内部Spout和Bolt之间的数据流关系
(6)Bolt:接收来自spout的数据,对其进行一系列的操作。2. Storm数据模型
数据源源不断从spout产生,数据流(Stream)流经Bolt处 理,最后存放在外部的分布式文件系统或者数据库当中。
由 Zookeeper 协调。
它包括了 Strom实时数据处理流的大部分必须的组件。包含 Spout跟Bolt。Topology的架构示意图(图1与图2)。
图4 storm进程相关图1
图5 storm进程相关图2
4.数据处理
(3)数据模型Tuple:是Storm的数据处理模型,可以对经过 序列化的数据进行处理。
(4)
节点看到worker进程,这其中运行着一到多个Topology。
(5) Spout (消息源):Spout是数据源。
(1)环境搭建要求 1)CentOS6.5操作系统3) Apache-Storm-1.6.04) Zookeeper-3.2.3
)Hadoop-2.5.2worker(进程):工作进程,当storm程序启动后就会在从 2
•116
*
福建电脑
20185
年第
期
=福建 电月亩
UJIAN COMPUTER
5) Flume6) Mysql5.0
7) Eclipse (linux 版本)(2)系统结构
用户访问系统的过程中会留下用户的访问信息,比如IP、 用户名、访问时长等等,这些数据会被存到HDFS上,利用大数 据梳理框架根据需求进行处理,将处理结果存到数据库,以供 分析,做出决策。
(3) 数据处理代码需求
模拟网页点击信息数据,对模拟的点击信息数据进行处 理,将每五分钟点击次数大于等于5次的信息存人mysql数据 库。分别设计数据生产类,数据采集类,数据处理类,数据库写 人类,序列化类,执行主类。其中数据生产类负责生产数据,主 要是产生模拟数据,每五分钟会生成一个存储文件。数据采集 类负责采集来自数据生产类的数据从而进行更加有效的数据 处理。数据处理类负责按照业务需求提取相关的数据,对数据 进行清洗提高数据的质量。数据库写人类用于将处理过的数据 存储到数据库。最后是程序的人口主执行类。
(4) 数据库库表设计
1)mysql数据库设计,表名abnormal
表 1 abnormal
uiddatetimeshourtag
用户
日期
频次
时间范围
ip
2)建表语句
CREATE TABLE abnormal(
'uid' varchar(20) DEFAULT NULL,'date' varchar(255) DEFAULT NULL,'times' int(11) DEFAULT NULL,'hour' int(40)
DEFAULT NULL,
'tag' varchar(255) DEFAULT NULL)ENGINE=InnoDB DEFAULT CHARSET=utf8;(5)详细代码设计1)
模拟数据生产类ProductData:模拟数据生产,产生的些数据存人HDFS文件,供给后边程序的提取使用。public class ProductData {
}
2) 数据序列化类AppConfiguration:先对数据进行序列化再进行传输。
@SuppressWarnings(MserialM)
public class AppConfiguration extends Configuration imple-
ments Serializable}
3)
数据采集类ParalleFileSpout:需要导人相应的包来实现
数据的采集功能。
public class ParalleFileSpout extends BaseRichSpout {}
4) 数据处理类
public class DetectionBolt extends BaseBasicBolt {}5)
数据写人类:向数据库中写人数据,可以通过数据库看
到所产生的数据,进而对这些数据进行进一步的分析。
public class CountBolt extends BaseBasicBolt{}
6) 执行主类 public class Main {(6)运行结果
运行结果保存到mysql数据中,结果如图7所示
uid
date
times
hour
tag>666352 2018-04-2^ 61 19 natIPJ666352 2018-04-2^ 61 1§ natJP)663520 2018-04-2^ 61 19 natIP>635233 201S-04-2^ 61 19 natIP>6356&6 2018-04-2^
61
19 natIP
图7 mysql数库存储的运行结果
5结果分析
由数据库的结果显示可知,在程序运行一段时间之后,数 据库存储的是同一 IP地址五分钟之内点击次数大于5次的用 户点击信息,由此我们可以看到natIP的的点击信息。利用这些 信息我们可以对用户的行为进行分析,判断用户是否为正常操 作,进而采取一些应对措施。
参考文献:
[1 ]王海,华东,刘喻,吕粤海译.Tom White.Hadoop权威指南:大数据 的存储与分析(第4版)[M]•北京:清华大学出版,2017,7.
[2] 董昭译.P.Taylor Goetz,Brian O'Neill.Storm 分布式实时计算模式 [M ].北京:机械工业出版社,2015.1.
[3] Ghemawat S,Gobloff H,Leung ST.The google file system [J] .ACM- SIGOPS Operating Systems Revlew,2003,37 ( 5 ) :29-43.
[4] Dean J,Ghemawat S.MapReduce:Simplified data processing on large clusters[J].Communications of the ACM,2005, 51(1):107-113.
这[5] Chang F,Dean J,Ghemawat S,Hsieh WC, Wallach DA,Burrows M,
Chandra T,Fikes A,Gruber RE.Bigtable : A distributed storage system for
structured data [J].ACM Trans. On Computer Systems,2008,26 (2): 1 -
26.作者简介:
陈龙(1993-),男,汉族,河北省保定市人,泉州师范学院14级信 息与计算科学专业学生,本科。
2018年第
5
期福建电脑
*117*
,
因篇幅问题不能全部显示,请点此查看更多更全内容