基于移动互联网海量信息的流式预处理系统及其方法技术领域
本发明属于大数据领域,具体涉及基于移动互联网海量信息的流式预处理系统及
其方法。
背景技术
近年来,移动运营商网络已成为了天然的大数据贮存和流动的载体。移动互联网
拥有的数据源丰富多样,包括上网行为数据、位置数据、信令数据、微博数据、即时通信数
据、网页、音频数据、视频文件和图片等,且这些数据会不断产生。为了能从这些流式数据中
实时地提取有用的信息,过滤掉无用的信息,往往需要对其进行快速处理,接着再以规范化
的形式存入数据中心,用以提供高效的查询服务。
这类大数据服务对比一般的数据服务,有其自身的特点:首先,业务数据为大数
据,新到来的流式数据规模小,结构简单;其次,数据流持续到达,业务数据持续增长,定期
更新;最后,需在大数据之上对流式数据作出快速处理。
目前,比较流行的数据处理技术方案是使用Hadoop的MapReduce编程模型,
MapReduce不仅能并行处理大规模数据,而且扩展性很好,每增加一台服务器,其就能将差
不多的计算能力接入到集群中。然而,MapReduce仅支持离线数据计算,即数据要处理,必须
先存储,因此它并不适合海量流式信息的预处理这种对实时性要求很高的应用。
在流式数据处理方面,S4是一个受MapReduce启发的分布式流式数据处理系统,但
是它主要用于解决搜索,错误探测,网络交友等现实应用,并不适合移动互联网海量信息的
提取、过滤操作。
发明内容
本发明的目的在于克服现有技术存在的缺点和不足,提供一种基于移动互联网海
量信息的流式预处理系统及其方法,用以解决当前技术无法实时、可靠地处理流式数据的
问题。
实现本发明目的的技术方案是:
一、基于移动互联网海量信息的流式预处理系统(简称系统)
本系统包括移动互联网,设置有接口机、Kafka集群、Spark集群和Hadoop集群;
移动互联网、接口机、Kafka集群、Spark集群和Hadoop集群依次连通。
二、基于移动互联网海量信息的流式预处理方法(简称方法)
本方法包括以下步骤:
①移动互联网海量数据以文件的形式通过FTP的方式上传到接口机指定目录;
②接口机文件轮询模块定时扫描接口机指定目录,获取目录中的文件列表,发送至文
件解析模块;
③文件解析模块解析文件并格式化其内容,将其发送至流数据缓存模块;
④流数据缓存模块通过Zookeeper连接Kafka集群,将数据批量写入Kafka集群;
⑤Spark主节点中的SparkStreaming控制模块通过Zookeeper连接Kafka集群,读取
Kafka集群中缓存的数据,存入HDFS日志存储目录,生成预处理任务分发至各个Spark工作
节点,并周期性地设置检查点,如果任务执行失败,可以通过读取HDFS存储的日志重新执行
任务;
⑥预处理模块按照指定的处理流程处理数据,最终写入HBase数据库。
本发明具有下列优点和积极效果:
①弥补了MapReduce不支持流式数据处理的不足;
②处理速度快,且具有容错性;
③通过整合分布式消息系统、分布式流式处理框架、hadoop分布式文件系统三种大数
据领域的技术,为其它大数据技术之间的模块化整合提供了参考。
总之,本发明能够对所有移动互联网的海量信息进行实时处理,可以为运营商的
实时业务提供技术支持。
附图说明
图1是本系统的结构方框图;
图2是SparkStreaming控制模块3A1读取Kafka集群200中缓存的数据并生成预处理任
务的流程图;
图3是预处理模块311按照指定流程处理数据的流程图
其中:
000—移动互联网;
100—接口机,
110—第1接口机,
120—第2接口机……
1M0—第M接口机,
M是自然数,1≤M≤5;
101—文件轮询模块,102—文件解析模块,103—流数据缓存模块;
200—Kafka集群,
210—第1Kafka节点,
220—第2Kafka节点……
2N0—第NKafka节点,
N为自然数,1≤N≤10;
300—Spark集群,
3A0—Spark主节点,
3A1—SparkStreaming控制模块;
310—第1Spark工作节点,
320—第2Spark工作节点……
3O0—第OSpark工作节点,O为自然数,1≤O≤10;
311—预处理模块;
400—Hadoop集群,
410—第1Hadoop节点,
420—第2Hadoop节点,……
4P0—第PHadoop节点,P为自然数,1≤P≤10,
401—HDFS日志存储目录,402—HBase数据库。
英译汉
FTP:FileTransferProtocol,文件传输协议;
Zookeeper:是一个分布式的,开放源码的分布式应用程序协调服务,它是一个为分布
式应用提供一致性服务的软件;
Linux:一种操作系统
Kafka:一种高吞吐量的分布式发布订阅消息系统;
Spark:一种快速的大数据分布式处理引擎;
SparkStreaming:建立在Spark上的实时计算框架,用于大规模流式数据处理;
Hadoop:一个能够对大量数据进行分布式处理的软件框架;
HDFS:Hadoop的分布式文件系统;
MapReduce:MapReduce是一种编程模型,用于大规模数据集的并行运算;
HBase:一个分布式的,面向列的Hadoop数据库;
RDD:ResilientDistributed,DataSet弹性分布式数据集,Spark核心的数据结构;
DStream:SparkStreaming特有的数据结构,连续的RDDs。
具体实施方式
以下结合附图和实施例详细说明:
一、系统
1、总体
如图1,本系统包括移动互联网000,设置有接口机100、Kafka集群200、Spark集群300和
Hadoop集群400;
依次连通的移动互联网000、接口机100、Kafka集群200、Spark集群300和Hadoop集群
400。
2、功能部件
0)移动互联网000
移动互联网000指互联网的技术、平台、商业模式和应用与移动通信技术结合并实践的
活动的总称。
1)接口机100
接口机100包括第1接口机110、第2接口机120……第M接口机1M0;
每个接口机包括依次交互的文件轮询模块101、文件解析模块102和数据缓存模块103。
(1)文件轮询模块101是一种定时扫描ftp目录、获取文件列表的模块,它将文件列
表发送至文件解析模块102;
(2)文件解析模块102是一种解析文件内容并将其格式化的模块,它将内容发送至数据
缓存模块103;
(3)数据缓存模块103是一种通过Zookeeper连接Kafka集群200,将数据批量写入集群
中缓存的模块。
2)Kafka集群200
Kafka集群200包括第1Kafka节点210、第2Kafka节点220……第NKafka节点2N0;
每个Kafka节点是一种内嵌有Kafka开源消息系统的Linux服务器,各节点之间使用
Zookeeper协调管理。
3)Spark集群300
Spark集群300包括Spark主节点3A0和分别与其(Spark主节点3A0)连接的第1Spark工
作节点310、第2Spark工作节点320……第OSpark工作节点3O0;
每个节点是一种内嵌有Spark开源消息系统的Linux服务器,各节点之间使用
Zookeeper协调管理。
(1)Spark主节点3A0内嵌有SparkStreaming控制模块3A1;
SparkStreaming控制模块3A1读取Kafka集群中的数据,生成预处理任务分发给工作
节点,自动控制预处理日志,写入HDFS日志存储目录401;
(2)每个工作节点内嵌有数据预处理模块311;
数据预处理模块311按照指定的流程处理数据,最终写入HBase数据库402。
4)Hadoop集群400
Hadoop集群400包括第1Hadoop节点410、第2Hadoop节点420……第NHadoop节点4P0;
每个节点是一种Hadoop开源软件的Linux服务器,内嵌有预处理的HDFS日志存储目录
401和HBase数据库402。
3、工作机理
接口机100接收到移动互联网000的数据文件之后,将其解析并格式化存入到Kafka集
群200进行缓存,同时,Spark集群300中的主节点在SparkStreaming控制模块的控制下从
kafka缓存中读取数据,自动写入HDFS日志存储目录,生成预处理任务,分发给工作节点处
理,并自动地周期性地设置检查点,保证零数据丢失,预处理完成之后,数据存入Hadoop集
群40中的HBase数据库。
二、方法
*步骤⑤
如图2,SparkStreaming控制模块3A1读取Kafka集群200中缓存的数据并生成预处理
任务的工作流程如下:
A、SparkStreaming初始化,设置预处理日志存储目录-51;
B、连接Kafka集群Zookeeper,获取Kafka集群的连接-52;
C、SparkStreaming循环读取Kafka中的数据-53;
D、判断是否有数据-54,是则进入步骤E,否则暂停60s-58后跳转到步骤C;
E、将数据转换成DStream-55;
F、将DStream重新分区-56;
G、将重新分区的DStream以分区为单位转换成一个新的DStream,分发任务给Spark工
作节点-57。
*步骤⑥
如图3,预处理模块处理数据的工作流程如下:
a、数据解析-61;
b、根据提取规则提取业务数据-62;
c、判断是否有异常-63,是则跳转到步骤b,否则进入步骤d;
d、根据过滤规则过滤海量数据-64;
e、判断是否有异常-65,是则跳转到步骤b,否则进入步骤f;
f、将业务数据和海量原始数据入库-66;
g、判断是否有异常-67,是则跳转到步骤b,否则流程结束;
h、流程结束-68。