一种海量文件的数据收集处理方法及系统.pdf

上传人:sha****007 文档编号:6105311 上传时间:2019-04-12 格式:PDF 页数:14 大小:979.06KB
返回 下载 相关 举报
摘要
申请专利号:

CN201610969828.7

申请日:

2016.10.28

公开号:

CN106570151A

公开日:

2017.04.19

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/30申请日:20161028|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

上海斐讯数据通信技术有限公司

发明人:

欧阳涛

地址:

201616 上海市松江区思贤路3666号

优先权:

专利代理机构:

上海硕力知识产权代理事务所 31251

代理人:

郭桂峰

PDF下载: PDF下载
内容摘要

本发明公开了一种海量文件的数据收集处理方法,包括以下步骤:S10、利用数据收集系统分布式收集海量文件中的子文本数据;S20、内容分发网络将子文本数据发送给分布式web服务器;S30、当子文本数据为非解析类时,利用分布式web服务器,将子文本数据上传至hadoop的开源数据库;S40、当子文本数据为解析类时,利用分布式web服务器,将解析后的子文本数据收集到本地文件池;S60、利用本地分布式文件系统将本地文件池内累加得到的文本数据上传至hadoop的云端分布式文件系统。本发明利用内容分发网络向web服务器发送子文本数据;及时对收集到的子文本数据进行疏通处理,以防止收集端出现堵塞。

权利要求书

1.一种海量文件的数据收集处理方法,其特征在于,包括以下步骤:
S10、利用数据收集系统flume分布式收集海量文件中的子文本数据;
S20、内容分发网络CDN将所述子文本数据发送给分布式web服务器;
S30、当所述子文本数据的解析类型为非解析类时,利用分布式web服务器,将所述子文
本数据上传至hadoop的开源数据库HBASE;
S40、当所述子文本数据的解析类型为解析类时,利用分布式web服务器,将解析后的子
文本数据收集到本地文件池;
S60、利用本地分布式文件系统hdfs2将所述本地文件池内累加得到的文本数据上传至
hadoop的云端分布式文件系统hdfs1。
2.如权利要求1所述的海量文件的数据收集处理方法,其特征在于,所述步骤S20进一
步包括:
S21、所述内容分发网络CDN通过反向代理服务器Nginx将所述子文本数据发送给所述
分布式web服务器;多个反向代理服务器用于平衡各分布式Web服务器间的网络负载。
3.如权利要求1所述的海量文件的数据收集处理方法,其特征在于,在所述步骤S60之
前还包括:
S50、对所述本地文件池内的子文本数据进行提取、清洗;
S51、按照所述云端分布式文件系统hdfs1的块的大小,对所述子文本数据进行累加合
并成文本数据。
4.如权利要求3所述的海量文件的数据收集处理方法,其特征在于,所述步骤S50进一
步包括:
S501、提取所述子文本数据的文件名中的路由器MAC和时间戳;
S502、识别出所述路由器MAC和时间戳是否遇到乱码;
S503、当所述路由器MAC和时间戳遇到乱码时,对所述乱码进行清洗后,跳转至步骤
S51;否则,直接跳转至步骤S51。
5.如权利要求1所述的海量文件的数据收集处理方法,其特征在于,还包括以下步骤:
S70、所述数据仓库工具hive向开源计算框架TEZ发送计算请求;
S71、所述开源计算框架TEZ对所述文本数据进行压缩编码处理成压缩文本数据,并存
储在所述云端分布式文件系统hdfs1的数据库中。
6.如权利要求1~5中任意一项所述的海量文件的数据收集处理方法,其特征在于,在
所述步骤S10之前还包括:
S01、搭建Hadoop的集群环境,并配置所述数据仓库工具hive、云端分布式文件系统
hdfs1、本地分布式文件系统hdfs2;
S02、在所述集群环境中各节点处搭建web服务器分布式集群,并添加负载均衡;
S03、实现所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统
hdfs2的建表关联。
7.如权利要求6所述的海量文件的数据收集处理方法,其特征在于,在所述步骤S01进
一步包括:
S011、在Hadoop上搭建第一预设个数的主节点master、第二预设个数的从节点slave;
各个主节点master之间相互连接,每个主节点master分别与各个从节点slave相连。
8.如权利要求7所述的海量文件的数据收集处理方法,其特征在于,所述步骤S01进一
步还包括:
S012、每个主节点master上组建有元数据服务组件metastore、关系数据库mysql。
9.一种应用在如权利要求1~8中任意一项所述的海量文件的数据收集处理方法的系
统,其特征在于,包括:
数据收集系统flume,利用数据收集系统flume分布式收集海量文件中的子文本数据;
内容分发网络CDN,内容分发网络CDN将所述子文本数据发送给分布式web服务器;
分布式web服务器,当所述子文本数据的解析类型为非解析类时,利用分布式web服务
器,将所述子文本数据上传至hadoop的开源数据库HBASE;
分布式web服务器,当所述子文本数据的解析类型为解析类时,利用分布式web服务器,
将解析后的子文本数据收集到本地文件池;
本地分布式文件系统hdfs2,利用本地分布式文件系统hdfs2将所述本地文件池内累加
得到的文本数据上传至hadoop的云端分布式文件系统hdfs1。
10.如权利要求9所述的海量文件的数据收集处理系统,其特征在于,还包括:
反向代理服务器Nginx,所述内容分发网络CDN通过反向代理服务器Nginx将所述子文
本数据发送给所述分布式web服务器;多个反向代理服务器用于平衡各分布式Web服务器间
的网络负载。

说明书

一种海量文件的数据收集处理方法及系统

技术领域

本发明属于数据提取技术领域,尤其涉及海量文件的数据收集处理方法及系统。

背景技术

在互联网飞速发展的今天,对用户在使用网络资源时所表现出来的规律、个性化
的习惯进行分析(也称用户行为分析)后;提取并了解到用户的兴趣。一方面,可以对用户个
性化定制与推送,为网站访问者提供更加主动的、智能化的服务。另一方面,从用户行为的
不同表现,发现其兴趣和偏好,可以优化页面之间组织关系,完善网站系统架构,从而减轻
用户寻找信息的负担,使其操作更加简单,节约时间和精力。

在对用户行为进行分析时,一般在线用户数量庞大,其产生的实时行为和上下文
信息量巨大,尤其是海量小文件;小文件是指几K到几百K之间的文件,例如5K到600K之间的
文件。

然而,现有技术中,存在收集端不能对海量小文件中的文本数据进行及时处理等
缺陷;从而导致收集端出现拥堵,进而使得海量小文件的文本数据收集处理收到限制。

发明内容

本发明提供的技术方案如下:

本发明提供一种海量文件的数据收集处理方法,包括以下步骤:S10、利用数据收
集系统flume分布式收集海量文件中的子文本数据;S20、内容分发网络CDN将所述子文本数
据发送给分布式web服务器;S30、当所述子文本数据的解析类型为非解析类时,利用分布式
web服务器,将所述子文本数据上传至hadoop的开源数据库HBASE;S40、当所述子文本数据
的解析类型为解析类时,利用分布式web服务器,将解析后的子文本数据收集到本地文件
池;S60、利用本地分布式文件系统hdfs2将所述本地文件池内累加得到的文本数据上传至
hadoop的云端分布式文件系统hdfs1。

进一步,所述步骤S20进一步包括:S21、所述内容分发网络CDN通过反向代理服务
器Nginx将所述子文本数据发送给所述分布式web服务器;多个反向代理服务器用于平衡各
分布式Web服务器间的网络负载。

进一步,在所述步骤S60之前还包括:S50、对所述本地文件池内的子文本数据进行
提取、清洗;S51、按照所述云端分布式文件系统hdfs1的块的大小,对所述子文本数据进行
累加合并成文本数据。

进一步,所述步骤S50进一步包括:S501、提取所述子文本数据的文件名中的路由
器MAC和时间戳;S502、识别出所述路由器MAC和时间戳是否遇到乱码;S503、当所述路由器
MAC和时间戳遇到乱码时,对所述乱码进行清洗后,跳转至步骤S51;否则,直接跳转至步骤
S51。

进一步,还包括以下步骤:S70、所述数据仓库工具hive向开源计算框架TEZ发送计
算请求;S71、所述开源计算框架TEZ对所述文本数据进行压缩编码处理成压缩文本数据,并
存储在所述云端分布式文件系统hdfs1的数据库中。

进一步,在所述步骤S10之前还包括:S01、搭建Hadoop的集群环境,并配置所述数
据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2;S02、在所述集群
环境中各节点处搭建web服务器分布式集群,并添加负载均衡;S03、实现所述数据仓库工具
hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2的建表关联。

进一步,在所述步骤S01进一步包括:S011、在Hadoop上搭建第一预设个数的主节
点master、第二预设个数的从节点slave;各个主节点master之间相互连接,每个主节点
master分别与各个从节点slave相连。

进一步,所述步骤S01进一步还包括:S012、每个主节点master上组建有元数据服
务组件metastore、关系数据库mysql。

本发明还提供一种海量文件的数据收集处理系统,包括:数据收集系统flume,利
用数据收集系统flume分布式收集海量文件中的子文本数据;内容分发网络CDN,内容分发
网络CDN将所述子文本数据发送给分布式web服务器;分布式web服务器,当所述子文本数据
的解析类型为非解析类时,利用分布式web服务器,将所述子文本数据上传至hadoop的开源
数据库HBASE;分布式web服务器,当所述子文本数据的解析类型为解析类时,利用分布式
web服务器,将解析后的子文本数据收集到本地文件池;本地分布式文件系统hdfs2,利用本
地分布式文件系统hdfs2将所述本地文件池内累加得到的文本数据上传至hadoop的云端分
布式文件系统hdfs1。

进一步,还包括:反向代理服务器Nginx,所述内容分发网络CDN通过反向代理服务
器Nginx将所述子文本数据发送给所述分布式web服务器;多个反向代理服务器用于平衡各
分布式Web服务器间的网络负载。

与现有技术相比,本发明提供的海量文件的数据收集处理方法及系统,具有以下
有益效果:

1)本发明中在大数据应用场景下,收集海量子文本数据,利用内容分发网络向web
服务器发送子文本数据;若需要对子文本数据进行解析,利用web服务器将解析后的子文本
数据收集到本地文件池中后,上传至云端分布式文件系统中;若无需对子文本数据进行解
析,将子文本数据传输至开源数据库中;及时对收集到的子文本数据进行疏通处理,以防止
收集端出现堵塞。

2)本发明中通过反向代理服务器传输子文本数据,有助于高速缓存子文本数据;
可以平衡各web服务器间的网络负载;从而防止因某个web服务器上子文本数据过多而导致
web服务器崩溃。

3)本发明中按照云端分布式文件系统的块的大小,将子文本数据合并成文本数据
后上传;不仅可以减少占用空间,还能防止文本数据过大,给分布式文件系统造成堵塞。

4)本发明中对文本数据进行压缩编码处理,压缩后的文本数据可以减小占用空
间,有效地解决了本地关系数据库的资源消耗问题和内存问题;编码后的文本数据有利于
提高数据的读取或提取效率。

5)本发明中在文本数据的文件名中提取进行路由器MAC和时间戳,当遇到乱码时,
对其进行清洗;防止文本数据在收集处理过程中发生错乱。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将说明本发明的
具体实施方式。显而易见地,下面描述中的仅仅是本发明的一些实施例,对于本领域普通技
术人员来讲,在不付出创造性劳动的前提下,还可以获得其他的实施方式。

根据本发明的一个实施例,一种海量文件的数据收集处理方法,包括以下步骤:
S10、利用数据收集系统flume分布式收集海量文件中的子文本数据;海量文件包括海量小
文件;

S20、根据每个分布web服务器上的网络负载,内容分发网络CDN将所述子文本数据
发送给分布式web服务器;

优选的,S21、所述内容分发网络CDN通过反向代理服务器Nginx将所述子文本数据
发送给所述分布式web服务器;多个反向代理服务器用于平衡各分布式Web服务器间的网络
负载。

S30、当所述子文本数据的解析类型为非解析类时,也即无需对子文本数据进行处
理,利用分布式web服务器,或者,分布式web服务器将子文本数据发送至本地分布式文件系
统,再利用本地分布式文件系统;将所述子文本数据上传至hadoop的开源数据库HBASE;
hadoop是分布式系统基础构架。

S40、当所述子文本数据的解析类型为解析类时,也即需要对子文本数据进行进一
步处理,例如从子文本数据中提取关键词等,从而分析出用户访问的数据类型及频率;利用
分布式web服务器,将解析后的子文本数据收集到本地文件池;

S60、利用本地分布式文件系统hdfs2,将所述本地文件池内累加得到的文本数据
上传至hadoop的云端分布式文件系统hdfs1。

具体的,Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采
集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据。同
时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

内容发布网络CDN是一个经策略性部署的整体系统,包括分布式存储、负载均衡、
网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理Traffic
Management是CDN的核心所在。

反向代理Reverse Proxy方式是指以代理服务器来接受Internet上的连接请求,
然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请
求连接的客户端,此时代理服务器对外就表现为一个服务器。

反向代理服务器通常有两种模型,它可以作为内容服务器的替身,也可以作为内
容服务器集群的负载均衡器。可以在一个组织内使用多个代理服务器来平衡各Web服务器
间的网络负载。在此模型中,可以利用代理服务器的高速缓存特性,创建一个用于负载平衡
的服务器池。此时,代理服务器可以位于防火墙的任意一侧。如果Web服务器每天都会接收
大量的请求,则可以使用代理服务器分担Web服务器的负载并提高网络访问效率。

HBase是一个分布式的、面向列的开源数据库。HBase是Apache的Hadoop项目的子
项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一
个不同的是HBase基于列的而不是基于行的模式。

兴起的云计算技术以其强大的处理能力、存储能力以及廉价的硬件需求在IT领域
引发了一场技术革命,作为一种新兴的共享基础架构的方法,云计算以公开标准和服务为
基础,提供了安全、快速、便捷的海量数据存储和高效、弹性化的计算能力。廉价可靠的海量
分布式存储服务以及数据管理技术,为大规模用户行为数据的实时采集、管理与存储降低
了处理成本,提高了效率。虚拟化技术,实现了集中管理和动态使用物理资源、自主分配和
调度计算资源的目的,为数据分析提供了可伸缩的计算能力并屏蔽了各种数据平台的异构
性。

根据本发明的另一个实施例,一种海量文件的数据收集处理方法,包括以下步骤:
S10、利用数据收集系统flume分布式收集海量文件中的子文本数据;

S20、内容分发网络CDN将所述子文本数据发送给分布式web服务器;

优选的,S21、所述内容分发网络CDN通过反向代理服务器Nginx将所述子文本数据
发送给所述分布式web服务器;多个反向代理服务器用于平衡各分布式Web服务器间的网络
负载。

S30、当所述子文本数据的解析类型为非解析类时,利用分布式web服务器,或者,
分布式web服务器将子文本数据发送至本地分布式文件系统,再利用本地分布式文件系统;
将所述子文本数据上传至hadoop的开源数据库HBASE;hadoop是分布式系统基础构架。

S40、当所述子文本数据的解析类型为解析类时,利用分布式web服务器,将解析后
的子文本数据收集到本地文件池;

S50、对所述本地文件池内的子文本数据进行提取、清洗;

所述步骤S51进一步包括:S501、提取所述子文本数据的文件名中的路由器MAC和
时间戳;

S502、识别出所述路由器MAC和时间戳是否遇到乱码;

S503、当所述路由器MAC和时间戳遇到乱码时,对所述乱码进行Python清洗后,跳
转至步骤S51;否则,直接跳转至步骤S51。Python是一种面向对象、直译式计算机程序设计
语言。

S51、按照所述云端分布式文件系统hdfs1的块的大小,对所述子文本数据进行累
加合并成文本数据;

S60、利用本地分布式文件系统hdfs2,将所述本地文件池内累加得到的文本数据
上传至hadoop的云端分布式文件系统hdfs1。

具体的,hadoop和mapreduce是hive架构的根基。Hive架构包括如下组件:CLI
(command line interface)、JDBC/ODBC、Thrift Server、WEB GUI、metastore和Driver
(Complier、Optimizer和Executor),这些组件可以分为两大类:服务端组件和客户端组件。

服务端组件:1、Driver组件:该组件包括Complier、Optimizer和Executor,它的作
用是将我们写的HiveQL(类SQL)语句进行解析、编译优化,生成执行计划,然后调用底层的
mapreduce计算框架。

2、Metastore组件:元数据服务组件,这个组件存储hive的元数据,hive的元数据
存储在关系数据库里,hive支持的关系数据库有derby、mysql。元数据对于hive十分重要,
因此hive支持把metastore服务独立出来,安装到远程的服务器集群里,从而解耦hive服务
和metastore服务,保证hive运行的健壮性。

3、Thrift服务:thrift是facebook开发的一个软件框架,它用来进行可扩展且跨
语言的服务的开发,hive集成了该服务,能让不同的编程语言调用hive的接口。

客户端组件:1、CLI:command line interface,命令行接口。

2、Thrift客户端:上面的架构图里没有写上Thrift客户端,但是hive架构的许多
客户端接口是建立在thrift客户端之上,包括JDBC和ODBC接口。

3、WEBGUI:hive客户端提供了一种通过网页的方式访问hive所提供的服务。这个
接口对应hive的hwi组件(hive web interface),使用前要启动hwi服务。

根据本发明的再一个实施例,一种海量文件的数据收集处理方法,包括以下步骤:
S10、利用数据收集系统flume分布式收集海量文件中的子文本数据;

S20、内容分发网络CDN将所述子文本数据发送给分布式web服务器;

优选的,S21、所述内容分发网络CDN通过反向代理服务器Nginx将所述子文本数据
发送给所述分布式web服务器;多个反向代理服务器用于平衡各分布式Web服务器间的网络
负载。

S30、当所述子文本数据的解析类型为非解析类时,利用分布式web 服务器,或者,
分布式web服务器将子文本数据发送至本地分布式文件系统,再利用本地分布式文件系统;
将所述子文本数据上传至hadoop的开源数据库HBASE;hadoop是分布式系统基础构架。

S40、当所述子文本数据的解析类型为解析类时,利用分布式web服务器,将解析后
的子文本数据收集到本地文件池;

S50、对所述本地文件池内的子文本数据进行提取、清洗;

所述步骤S50进一步包括:S501、提取所述子文本数据的文件名中的路由器MAC和
时间戳;

S502、识别出所述路由器MAC和时间戳是否遇到乱码;

S503、当所述路由器MAC和时间戳遇到乱码时,对所述乱码进行Python清洗后,跳
转至步骤S51;否则,直接跳转至步骤S51。Python是一种面向对象、直译式计算机程序设计
语言。

S51、按照所述云端分布式文件系统hdfs1的块的大小,对所述子文本数据进行累
加合并成文本数据;

S60、利用本地分布式文件系统hdfs2将所述本地文件池内累加得到的文本数据上
传至hadoop的云端分布式文件系统hdfs1。

S70、所述数据仓库工具hive向开源计算框架TEZ发送计算请求;

S71、所述开源计算框架TEZ对所述文本数据进行压缩编码处理成压缩文本数据,
并存储在所述云端分布式文件系统hdfs1的数据库中。其中,压缩为ORC压缩;文件存储格式
为ORC。

具体的,hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射
为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运
行。hive使用的是hadoop的HDFS(hadoop的分布式文件系统),hive使用的计算模型是
mapreduce。

Tez是Apache最新的支持DAG作业的开源计算框架。Tez并不直接面向最终用
户——事实上它允许开发者为最终用户构建性能更快、扩展性更好的应用程序。Tez项目的
目标是支持高度定制化,这样它就能够满足各种用例的需要,让人们不必借助其他的外部
方式就能完成自己的工作,如果Hive和Pig这样的项目使用Tez而不是MapReduce作为其数
据处理的骨干,那么将会显著提升它们的响应时间。Tez构建在YARN之上,后者是Hadoop所
使用的新资源管理框架。

hive文件存储格式:1.textfile为默认格式,存储方式:行存储,磁盘开销大,数据
解析开销大;压缩的text文件hive无法进行合并和拆分。2.sequencefile,二进制文件,以<
key,value>的形式序列化到文件中;储方式:行存储,可分割,压缩;一般选择block压缩,优
势是文件和Hadoop api中的mapfile是相互兼容的。3.rcfile,存储方式:数据按行分块,每
块按照列存储;压缩快,快速列存取;读记录尽量涉及到的block最少;读取需要的列只需要
读取每个row group的头部定义。读取全量数据的操作性能可能比sequencefile没有明显
的优势。4.orc,存储方式:数据按行分块,每块按照列存储;压缩快,快速列存取;效率比
rcfile高,是rcfile的改良版本。5.自定义格式。用户可以通过实现inputformat和
outputformat来自定义输入输出格式。

其中,textfile存储空间消耗比较大,并且压缩的text无法分割和合并;查询的效
率最低,可以直接存储,加载数据的速度最高。sequencefile存储空间消耗最大,压缩的文
件可以分割和合并,查询效率高,需要通过text文件转化来加载。rcfile存储空间最小,查
询的效率最高,需要通过text文件转化来加载,加载的速度最低。

根据本发明的又一个实施例,一种海量文件的数据收集处理方法,包括以下步骤:
S01、搭建Hadoop的集群环境,并配置所述数据仓库工具hive、云端分布式文件系统hdfs1、
本地分布式文件系统hdfs2;对Namenode HA和ResourceManager HA进行设置。

S02、在所述集群环境中各节点处搭建web服务器分布式集群,并添加负载均衡;负
载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务
器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

S03、实现所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系
统hdfs2的建表关联。步骤S01~S03为海量文件的数据收集处理搭建一个集群环境;构建大
数据平台。

S10、利用数据收集系统flume分布式收集海量文件中的子文本数据;

S20、内容分发网络CDN将所述子文本数据发送给分布式web服务器;

优选的,S21、所述内容分发网络CDN通过反向代理服务器Nginx将所述子文本数据
发送给所述分布式web服务器;多个反向代理服务器用于平衡各分布式Web服务器间的网络
负载。

S30、当所述子文本数据的解析类型为非解析类时,利用分布式web服务器,或者,
分布式web服务器将子文本数据发送至本地分布式文件系统,再利用本地分布式文件系统;
将所述子文本数据上传至hadoop的开源数据库HBASE;hadoop是分布式系统基础构架。

S40、当所述子文本数据的解析类型为解析类时,利用分布式web服务器,将解析后
的子文本数据收集到本地文件池;

S50、对所述本地文件池内的子文本数据进行提取、清洗;

所述步骤S50进一步包括:S501、提取所述子文本数据的文件名中的路由器MAC和
时间戳;

S502、识别出所述路由器MAC和时间戳是否遇到乱码;

S503、当所述路由器MAC和时间戳遇到乱码时,对所述乱码进行Python清洗后,跳
转至步骤S51;否则,直接跳转至步骤S51。Python是一种面向对象、直译式计算机程序设计
语言。

S51、按照所述云端分布式文件系统hdfs1的块的大小,对所述子文本数据进行累
加合并成文本数据;

S60、利用本地分布式文件系统hdfs2将所述本地文件池内累加得到的文本数据上
传至hadoop的云端分布式文件系统hdfs1。

S70、所述数据仓库工具hive向开源计算框架TEZ发送计算请求;

S71、所述开源计算框架TEZ对所述文本数据进行压缩编码处理成压缩文本数据,
并存储在所述云端分布式文件系统hdfs1的数据库中。其中,压缩为ORC压缩;文件存储格式
为ORC。

具体的,负载均衡英文缩写SLB,它的主要算法如下:加权轮询(WRR)算法:为每台
分配一个权重,权重表示相对于其他服务器,自身能处理连接的能力。权重为n表示SLB为下
一服务器分配流量之前,要为这台服务器分配n条新连接。

加权最小连接(WLC)算法:SLB会将新连接分配给活动连接数最少的真实服务器。
为每台真实服务器分配权重m,服务器处理活动连接的能力等于m除以所有服务器权重之
和。SLB会将新连接分配给活动连接数远少于其能力范围的真实服务器。

使用加权最小连接(WLC)算法时,SLB使用一种慢启动的方式来控制对新加真实服
务器的访问。“慢启动”限制了新连接的建立频率并允许逐渐增加,以此来防范服务器的的
过载。

Namenode HA的配置,具体如下:

1.1将hadoop-2.3.0-cdh5.0.0.tar.gz解压到/opt/boh/下,并重命名为hadoop,
修改etc/hadoop/core-site.xml。

1.2修改hdfs-site.xml。

1.3编辑/etc/hadoop/slaves;添加hadoop3,hadoop4。

1.4编辑/etc/profile;添加HADOOP_HOME=/opt/boh/hadoop;PATH=$HADOOP_
HOME/bin:$HADOOP_HOME/sbin:$PATH;将以上配置复制到所有节点。

1.5启动各项服务;

1.5.1启动journalnode;在hadoop0、hadoop1、hadoop2上执行sbin/hadoop-
daemon.sh start journalnode;

1.5.2格式化zookeeper;在hadoop1上执行bin/hdfs zkfc-formatZK;

1.5.3对hadoop1节点进行格式化和启动;bin/hdfs namenode-format;sbin/
hadoop-daemon.sh start namenode;

1.5.4对hadoop2节点进行格式化和启动;bin/hdfs namenode-
bootstrapStandby;sbin/hadoop-daemon.sh start namenode;

1.5.5在hadoop1和hadoop2上启动zkfc服务;sbin/hadoop-daemon.sh start
zkfc;此时hadoop1和hadoop2就会有一个节点变为active状态;

1.5.6启动datanode;在hadoop1上执行命令sbin/hadoop-daemons.sh start
datanode;

1.5.7验证是否成功;打开浏览器,访问hadoop1:50070以及hadoop2:50070,两个
namenode一个是active而另一个是standby。然后kill掉其中active的namenode进程,另一
个standby的naemnode将会自动转换为active状态。

ResourceManager HA的配置,具体如下:

2.1修改mapred-site.xml。

2.2修改yarn-site.xml。

2.3将配置文件分发至各节点。

2.4修改hadoop2上的yarn-site.xml。

2.5创建目录并赋予权限:

2.5.1创建本地目录;

2.5.2启动hdfs后,执行下列命令;创建log目录;创建hdfs下的/tmp;如果不创建/
tmp按照指定的权限,那么CDH的其他组件将会有问题。尤其是,如果不创建的话,其他进程
会以严格的权限自动创建这个目录,这样就会影响到其他程序适用。hadoop fs-mkdir/
tmp;hadoop fs-chmod-R777/tmp。

2.6启动yarn和jobhistory server;

2.6.1在hadoop1上启动:sbin/start-yarn.sh;此脚本将会启动hadoop1上的
resourcemanager及所有的nodemanager。

2.6.2在hadoop2上启动resourcemanager:yarn-daemon.sh start
resourcemanager;

2.6.3在hadoop2上启动jobhistory server;sbin/mr-jobhistory-
daemon.shstart historyserver。

2.7验证是否配置成功。打开浏览器,访问hadoop1:23188或者hadoop2:23188。

根据本发明的又又一个实施例,一种海量文件的数据收集处理方法,包括以下步
骤:S01、搭建Hadoop的集群环境,并配置所述数据仓库工具hive、云端分布式文件系统
hdfs1、本地分布式文件系统hdfs2;对Namenode HA和ResourceManager HA进行设置。

S011、在Hadoop上搭建第一预设个数(例如第一预设个数为4)的主节点master、第
二预设个数(例如第二预设个数为7)的从节点slave;各个主节点master之间相互连接,每
个主节点master分别与各个从节点slave相连。

S012、每个主节点master上组建有元数据服务组件metastore、关系数据库mysql、
HiveServer2。通过HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操
作,连这个和都允许远程客户端使用多种编程语言如java,python等向hive提交请求,取回
结果。HiveServer2都是基于Thrift的,HiveServer2支持多客户端的并发和认证,为开放
API客户端如JDBC、ODBC提供更好的支持。

S02、在所述集群环境中各节点处搭建web服务器分布式集群,并添加负载均衡;负
载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务
器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

S03、实现所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系
统hdfs2的建表关联。

S10、利用数据收集系统flume分布式收集海量文件中的子文本数据;

S20、内容分发网络CDN将所述子文本数据发送给分布式web服务器;

优选的,S21、所述内容分发网络CDN通过反向代理服务器Nginx将所述子文本数据
发送给所述分布式web服务器;多个反向代理服务器用于平衡各分布式Web服务器间的网络
负载。

S30、当所述子文本数据的解析类型为非解析类时,利用分布式web 服务器,或者,
分布式web服务器将子文本数据发送至本地分布式文件系统,再利用本地分布式文件系统;
将所述子文本数据上传至hadoop的开源数据库HBASE;hadoop是分布式系统基础构架。

S40、当所述子文本数据的解析类型为解析类时,利用分布式web服务器,将解析后
的子文本数据收集到本地文件池;

S50、对所述本地文件池内的子文本数据进行提取、清洗;

所述步骤S50进一步包括:S501、提取所述子文本数据的文件名中的路由器MAC和
时间戳;

S502、识别出所述路由器MAC和时间戳是否遇到乱码;

S503、当所述路由器MAC和时间戳遇到乱码时,对所述乱码进行Python清洗后,跳
转至步骤S51;否则,直接跳转至步骤S51。Python是一种面向对象、直译式计算机程序设计
语言。

S51、按照所述云端分布式文件系统hdfs1的块的大小,对所述子文本数据进行累
加合并成文本数据;

S60、利用本地分布式文件系统hdfs2将所述本地文件池内累加得到的文本数据上
传至hadoop的云端分布式文件系统hdfs1。

S70、所述数据仓库工具hive向开源计算框架TEZ发送计算请求;

S71、所述开源计算框架TEZ对所述文本数据进行压缩编码处理成压缩文本数据,
并存储在所述云端分布式文件系统hdfs1的数据库中。其中,压缩为ORC压缩;文件存储格式
为ORC。

具体的,Master/Slave相当于Server和agent的概念。Master提供web接口让用户
来管理job和slave,job可以运行在master本机或者被分配到slave上运行。一个master可
以关联多个slave用来为不同的job或相同的job的不同配置来服务。

Hive的metastore组件是hive元数据集中存放地。Metastore组件包括两个部分:
metastore服务和后台数据的存储。后台数据存储的介质就是关系数据库,例如hive默认的
嵌入式磁盘数据库derby,还有mysql数据库。Metastore服务是建立在后台数据存储介质之
上,并且可以和hive 服务进行交互的服务组件,默认情况下,metastore服务和hive服务是
安装在一起的,运行在同一个进程当中。也可以把metastore服务从hive服务里剥离出来,
metastore独立安装在一个集群里,hive远程调用metastore服务,可以把元数据这一层放
到防火墙之后,客户端访问hive服务,就可以连接到元数据这一层,从而提供了更好的管理
性和安全保障。使用远程的metastore服务,可以让metastore服务和hive服务运行在不同
的进程里,这样也保证了hive的稳定性,提升了hive服务的效率。

根据本发明的一个实施例,一种海量文件的数据收集处理系统,包括:搭建Hadoop
的集群环境,并配置所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件
系统hdfs2;对Namenode HA和ResourceManager HA进行设置。

在Hadoop上搭建第一预设个数(例如第一预设个数为4)的主节点master、第二预
设个数(例如第二预设个数为7)的从节点slave;各个主节点master之间相互连接,每个主
节点master分别与各个从节点slave相连。

每个主节点master上组建有元数据服务组件metastore、关系数据库mysql、
HiveServer2。通过HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操
作,连这个和都允许远程客户端使用多种编程语言如java,python等向hive提交请求,取回
结果。HiveServer2都是基于Thrift的,HiveServer2支持多客户端的并发和认证,为开放
API客户端如JDBC、ODBC提供更好的支持。

在所述集群环境中各节点处搭建web服务器分布式集群,并添加负载均衡;负载均
衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的
带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

实现所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统
hdfs2的建表关联。

数据收集系统flume,利用数据收集系统flume分布式收集海量文件中的子文本数
据;

内容分发网络CDN,内容分发网络CDN将所述子文本数据发送给分布式web服务器;

优选的,反向代理服务器Nginx,所述内容分发网络CDN通过反向代理服务器Nginx
将所述子文本数据发送给所述分布式web服务器;多个反向代理服务器用于平衡各分布式
Web服务器间的网络负载。

分布式web服务器,当所述子文本数据的解析类型为非解析类时,利用分布式web
服务器,或者,分布式web服务器将子文本数据发送至本地分布式文件系统,再利用本地分
布式文件系统;将所述子文本数据上传至hadoop的开源数据库HBASE;hadoop是分布式系统
基础构架。

分布式web服务器,当所述子文本数据的解析类型为解析类时,利用分布式web服
务器,将解析后的子文本数据收集到本地文件池;

分布式web服务器,对所述本地文件池内的子文本数据进行提取、清洗;提取所述
子文本数据的文件名中的路由器MAC和时间戳;识别出所述路由器MAC和时间戳是否遇到乱
码;当所述路由器MAC和时间戳遇到乱码时,对所述乱码进行Python清洗后,Python是一种
面向对象、直译式计算机程序设计语言。按照所述云端分布式文件系统hdfs1的块的大小,
对所述子文本数据进行累加合并成文本数据;

本地分布式文件系统hdfs2,利用本地分布式文件系统hdfs2将所述文本数据上传
至所述云端分布式文件系统hdfs1。

数据仓库工具hive,所述数据仓库工具hive向开源计算框架TEZ发送计算请求;

开源计算框架TEZ,所述开源计算框架TEZ对所述文本数据进行压缩编码处理成压
缩文本数据,并存储在所述云端分布式文件系统hdfs1的数据库中。其中,压缩为ORC压缩;
文件存储格式为ORC。

根据本发明的再一个实施例,一种海量URL的数据提取方法,包括:搭建
Hadoop2.7.1的集群环境(部署4个master,7个slave),并配置好HIVE、HDFS等环境与配置
(Hive Metastore、mysql、hiveserver2等组建在一台master上)。并设置好Namenode HA和
ResourceManager HA,使分布式系统满足高可用性!

各节点搭建tomcat分布式集群,添加负载均衡。

实现hive、hdfs的建表关联。hive:是apache开源的技术,数据仓库软件提供对存
储在分布式中的大型数据集的查询和管理,它本身是建立在Apache Hadoop之上。Hive SQL
代表的是以传统基于Mapreduce为核心的SQL语言。

建立小文件收集的文件池。通过建立文件池,和对处理文件池的数据的预处理,衔
接了数据收集到hive的高性能存储和查询。达到hive对小文件的存储和查询上带来快捷和
高效。

文件池的数据进行预处理程序的部署和调试。

本方案通过分布式的web服务器框架,将文本数据收集到本地文件池,通过对文件
池里的文件进行预处理,主要包括清洗、合并和上传至HDFS并与hive关联,完成对文件池文
件的流通和及时处理。

在大数据应用场景下,随着数据收集方案的发展,大数据的由于大数据领域flume
的实时收集方案对小文件的处理性能不好,导致海量小文件的收集处理很受限制。一个是
文件的收集端处理不够及时,导致flume管道拥堵。还有一个原因是小文件在HDFS的存储性
能也非常低,需要合并。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选
实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提
下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

一种海量文件的数据收集处理方法及系统.pdf_第1页
第1页 / 共14页
一种海量文件的数据收集处理方法及系统.pdf_第2页
第2页 / 共14页
一种海量文件的数据收集处理方法及系统.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种海量文件的数据收集处理方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种海量文件的数据收集处理方法及系统.pdf(14页珍藏版)》请在专利查询网上搜索。

本发明公开了一种海量文件的数据收集处理方法,包括以下步骤:S10、利用数据收集系统分布式收集海量文件中的子文本数据;S20、内容分发网络将子文本数据发送给分布式web服务器;S30、当子文本数据为非解析类时,利用分布式web服务器,将子文本数据上传至hadoop的开源数据库;S40、当子文本数据为解析类时,利用分布式web服务器,将解析后的子文本数据收集到本地文件池;S60、利用本地分布式文件系统。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1