首页 > 专利 > 金华市智甄通信设备有限公司 > 一种手机号码的海量提取方法及系统专利详情

一种手机号码的海量提取方法及系统   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2016-10-28
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2017-05-17
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2020-12-22
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2036-10-28
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201610970408.0 申请日 2016-10-28
公开/公告号 CN106570152B 公开/公告日 2020-12-22
授权日 2020-12-22 预估到期日 2036-10-28
申请年 2016年 公开/公告年 2020年
缴费截止日 2022-11-29
分类号 G06F16/182G06F16/215G06F16/2458H04L29/08 主分类号 G06F16/182
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 8
权利要求数量 9 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2014.08.29xiaojun_0820.flume学习:flume将log4j日志数据写入到hdfs《.https://blog.csdn.net/xiao_jun_0820/article/details/38110323》.2014,chen476328361.tez控制输出的文件是否压缩并指定文件名《.https://blog.csdn.net/thinking2013/article/details/48133137》.2015,;
引用专利 KR101435789B 被引证专利
专利权维持 5 专利申请国编码 CN
专利事件 转让 事务标签 公开、实质审查、申请权转移、授权
申请人信息
申请人 第一申请人
专利权人 金华市智甄通信设备有限公司 当前专利权人 金华市智甄通信设备有限公司
发明人 欧阳涛 第一发明人 欧阳涛
地址 浙江省金华市金东区多湖街道万达广场4幢12B12-1 邮编 321015
申请人数量 1 发明人数量 1
申请人所在省 浙江省 申请人所在市 浙江省金华市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
浙江千克知识产权代理有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
裴金华
摘要
本发明公开了一种手机号码的海量提取方法,包括以下步骤:S10、利用分布式web服务器框架,分别将各URL中的子文本数据收集到本地文件池;S20、将所述本地文件池内累加得到的号码文本数据上传至hadoop的云端分布式文件系统hdfs1;S40、利用hadoop的数据仓库工具hive从所述云端分布式文件系统hdfs1内号码文本数据中分布式提取URL的手机号码。本发明在大数据应用场景下,将各子文本数据汇聚到本地文件池中后,将号码文本数据上传到云端分布式文件系统中,再利用hive进行分布式计算来进行分布式提取;从而实现高效提取海量手机号码,且具有消耗资源低等优点。
  • 摘要附图
    一种手机号码的海量提取方法及系统
  • 说明书附图:图1
    一种手机号码的海量提取方法及系统
  • 说明书附图:图2
    一种手机号码的海量提取方法及系统
  • 说明书附图:图3
    一种手机号码的海量提取方法及系统
  • 说明书附图:图4
    一种手机号码的海量提取方法及系统
  • 说明书附图:图5
    一种手机号码的海量提取方法及系统
  • 说明书附图:图6
    一种手机号码的海量提取方法及系统
  • 说明书附图:图7
    一种手机号码的海量提取方法及系统
  • 说明书附图:图8
    一种手机号码的海量提取方法及系统
  • 说明书附图:图9
    一种手机号码的海量提取方法及系统
  • 说明书附图:图10
    一种手机号码的海量提取方法及系统
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2020-12-22 授权
2 2020-12-15 专利申请权的转移 登记生效日: 2020.12.03 申请人由台州市吉吉知识产权运营有限公司变更为金华市智甄通信设备有限公司 地址由318015 浙江省台州市椒江区洪家街道东环大道2388号农港城A区2-3167号变更为321015 浙江省金华市金东区多湖街道万达广场4幢12B12-1
3 2017-05-17 实质审查的生效 IPC(主分类): G06F 17/30 专利申请号: 201610970408.0 申请日: 2016.10.28
4 2017-04-19 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种手机号码的海量提取方法,其特征在于,包括以下步骤:
S10、利用分布式web服务器框架,分别将各URL中的子文本数据收集到本地文件池;
S20、将所述本地文件池内累加得到的号码文本数据上传至hadoop的云端分布式文件系统hdfs1,所述S20进一步还包括:
S24、当所述文本数据中存在电话号码时,则对所述文本数据中的电话号码进行正则匹配处理;
S25、判断所述文本数据中的电话号码是否为新电话号码;
S26、当所述电话号码为新电话号码时,则按照所述云端分布式文件系统hdfs1的块的大小,对存在新电话号码的文本数据合并成号码文本数据;
S27、利用本地分布式文件系统hdfs2将所述号码文本数据上传至所述云端分布式文件系统hdfs1;
S40、利用hadoop的数据仓库工具hive从所述云端分布式文件系统hdfs1内号码文本数据中分布式提取URL的手机号码。

2.如权利要求1所述的手机号码的海量提取方法,其特征在于,所述步骤S20进一步包括:
S21、对所述本地文件池内的子文本数据进行提取、清洗后,累加合并成文本数据;
S22、判断所述文本数据中是否存在电话号码;
S23、当所述文本数据中不存在电话号码时,则对所述文本数据进行过滤检测并删除。

3.如权利要求2所述的手机号码的海量提取方法,其特征在于,所述步骤S21进一步包括:
S211、提取所述子文本数据的文件名中的路由器MAC和时间戳;
S212、识别出所述路由器MAC和时间戳是否遇到乱码;
S213、当所述路由器MAC和时间戳遇到乱码时,则对所述乱码进行清洗,累加合并成文本数据后,跳转至步骤S22;否则,直接跳转至步骤S22。

4.如权利要求1所述的手机号码的海量提取方法,其特征在于,还包括以下步骤:
S30、所述数据仓库工具hive向开源计算框架TEZ发送计算请求;
S31、所述开源计算框架TEZ对所述号码文本数据进行压缩编码处理成压缩文本数据,并存储在所述云端分布式文件系统hdfs1的数据库中。

5.如权利要求4所述的手机号码的海量提取方法,其特征在于,所述步骤S40进一步包括:
S41、利用所述数据仓库工具hive的UDF函数从所述压缩文本数据中提取URL的手机号码。

6.如权利要求1~5中任意一项所述的手机号码的海量提取方法,其特征在于,在所述步骤S10之前还包括:
S01、搭建Hadoop的集群环境,并配置所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2;
S02、在所述集群环境中各节点处搭建web服务器分布式集群,并添加负载均衡;
S03、实现所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2的建表关联;重构所述数据仓库工具hive的UDF函数。

7.如权利要求6所述的手机号码的海量提取方法,其特征在于,在所述步骤S01进一步包括:
S011、在Hadoop上搭建第一预设个数的主节点master、第二预设个数的从节点slave;
各个主节点master之间相互连接,每个主节点master分别与各个从节点slave相连。

8.如权利要求7所述的手机号码的海量提取方法,其特征在于,所述步骤S01进一步还包括:
S012、每个主节点master上组建有元数据服务组件metastore、关系数据库mysql。

9.一种应用在如权利要求1~8中任意一项所述的手机号码的海量提取方法的系统,其特征在于,包括:
分布式web服务器框架,利用分布式web服务器框架,分别将各URL中的子文本数据收集到本地文件池;
本地分布式文件系统hdfs2,将所述本地文件池内累加得到的号码文本数据上传至hadoop的云端分布式文件系统hdfs1;
数据仓库工具hive,利用hadoop的数据仓库工具hive从所述云端分布式文件系统hdfs1内号码文本数据中分布式提取URL的手机号码。
说明书

技术领域

[0001] 本发明属于数据提取技术领域,尤其涉及手机号码的海量提取方法及系统。

背景技术

[0002] 在互联网飞速发展的今天,对用户在使用网络资源时所表现出来的规律、个性化的习惯进行分析(也称用户行为分析)后;提取并了解到用户的兴趣。一方面,可以对用户个性化定制与推送,为网站访问者提供更加主动的、智能化的服务。另一方面,从用户行为的不同表现,发现其兴趣和偏好,可以优化页面之间组织关系,完善网站系统架构,从而减轻用户寻找信息的负担,使其操作更加简单,节约时间和精力。
[0003] 然而,在向用户进行个性化定制与推送时,需要提前知道用户终端的身份信息(手机号码)后,才能向该用户终端推送相关信息。目前,是在用户终端上网时,从URL中提取用户终端的手机号码。
[0004] 由于在线用户数量庞大,直接利用本地关系数据库技术、以及传统的提取方法,会消耗大量资源和内存,并且效率低下,不能很好满足手机号码的海量提取。

发明内容

[0005] 本发明提供的技术方案如下:
[0006] 本发明提供一种手机号码的海量提取方法,包括以下步骤:S10、利用分布式web服务器框架,分别将各URL中的子文本数据收集到本地文件池;S20、将所述本地文件池内累加得到的号码文本数据上传至hadoop的云端分布式文件系统hdfs1;S40、利用hadoop的数据仓库工具hive从所述云端分布式文件系统hdfs1内号码文本数据中分布式提取URL的手机号码。
[0007] 进一步,所述步骤S20进一步包括:S21、对所述本地文件池内的子文本数据进行提取、清洗后,累加合并成文本数据;S22、判断所述文本数据中是否存在电话号码;S23、当所述文本数据中不存在电话号码时,则对所述文本数据进行过滤检测并删除。
[0008] 进一步,所述步骤S20进一步还包括:S24、当所述文本数据中存在电话号码时,则对所述文本数据中的电话号码进行正则匹配处理;S25、判断所述文本数据中的电话号码是否为新电话号码;S26、当所述电话号码为新电话号码时,则按照所述云端分布式文件系统hdfs1的块的大小,对存在新电话号码的文本数据合并成号码文本数据;S27、利用本地分布式文件系统hdfs2将所述号码文本数据上传至所述云端分布式文件系统hdfs1。
[0009] 进一步,所述步骤S21进一步包括:S211、提取所述子文本数据的文件名中的路由器MAC和时间戳;S212、识别出所述路由器MAC和时间戳是否遇到乱码;S213、当所述路由器MAC和时间戳遇到乱码时,则对所述乱码进行清洗,累加合并成文本数据后,跳转至步骤S22;否则,直接跳转至步骤S22。
[0010] 进一步,还包括以下步骤:S30、所述数据仓库工具hive向开源计算框架TEZ发送计算请求;S31、所述开源计算框架TEZ对所述号码文本数据进行压缩编码处理成压缩文本数据,并存储在所述云端分布式文件系统hdfs1的数据库中。
[0011] 进一步,所述步骤S40进一步包括:S41、利用所述数据仓库工具hive的UDF函数从所述压缩文本数据中提取URL的手机号码。
[0012] 进一步,在所述步骤S10之前还包括:S01、搭建Hadoop的集群环境,并配置所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2;S02、在所述集群环境中各节点处搭建web服务器分布式集群,并添加负载均衡;S03、实现所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2的建表关联;重构所述数据仓库工具hive的UDF函数。
[0013] 进一步,在所述步骤S01进一步包括:S011、在Hadoop上搭建第一预设个数的主节点master、第二预设个数的从节点slave;各个主节点master之间相互连接,每个主节点master分别与各个从节点slave相连。
[0014] 进一步,所述步骤S01进一步还包括:S012、每个主节点master上组建有元数据服务组件metastore、关系数据库mysql。
[0015] 本发明还提供一种手机号码的海量提取系统,包括:分布式web服务器框架,利用分布式web服务器框架,分别将各URL中的子文本数据收集到本地文件池;本地分布式文件系统hdfs2,将所述本地文件池内累加得到的号码文本数据上传至hadoop的云端分布式文件系统hdfs1;数据仓库工具hive,利用hadoop的数据仓库工具hive从所述云端分布式文件系统hdfs1内号码文本数据中分布式提取URL的手机号码。
[0016] 与现有技术相比,本发明提供的手机号码的海量提取方法及系统,具有以下有益效果:
[0017] 1)本发明中在大数据应用场景下,将各子文本数据汇聚到本地文件池中后,将号码文本数据上传到云端分布式文件系统中,再利用hive进行分布式计算来进行分布式提取;从而实现高效提取海量手机号码,且具有消耗资源低等优点。
[0018] 2)本发明中对文本数据进行累加合并成文本数据后;再判断文本数据中是否有电话号码;当文本数据中没有电话号码时,删除文本数据;可防止无效文本书数据过多,降低手机号码提取效率,给分布式文件系统造成堵塞。
[0019] 3)本发明中当文本数据中存在手机号码时,按照云端分布式文件系统的块的大小,将该文本数据合并成号码文本数据后上传;从而保证上传到云端分布式系统中的号码文本数据是有效的,不仅可以减少占用空间,还能提升手机号码的提取效率。
[0020] 4)本发明中对号码文本数据进行压缩编码处理,压缩后的号码文本数据可以减小占用空间,有效地解决了本地关系数据库的资源消耗问题和内存问题;编码后的号码文本数据可以使得有序提取手机号码,保证提取过程能够顺畅运行。
[0021] 5)本发明中在文本数据的文件名中提取进行路由器MAC和时间戳,当遇到乱码时,对其进行清洗;为顺利提取手机号码提供保障。

实施方案

[0033] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
[0034] 为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
[0035] 如图1所示,根据本发明的一个实施例,一种手机号码的海量提取方法,包括以下步骤:S10、利用Flume采集、聚合成子文本数据,并对子文本数据进行传输;再利用分布式web服务器框架,分别将各URL中的子文本数据收集到本地文件池;
[0036] S20、将所述本地文件池内累加得到的号码文本数据上传至hadoop的云端分布式文件系统hdfs1;hadoop是分布式系统基础构架。
[0037] S40、利用hadoop的数据仓库工具hive从所述云端分布式文件系统hdfs1内号码文本数据中分布式提取URL的手机号码。
[0038] 具体的,Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据。同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
[0039] hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。hive使用的是hadoop的HDFS(hadoop的分布式文件系统),hive使用的计算模型是mapreduce。
[0040] 如图1、图2、图3所示,根据本发明的另一个实施例,一种手机号码的海量提取方法,包括以下步骤:S10、利用Flume采集、聚合成子文本数据,并对子文本数据进行传输;再利用分布式web服务器框架,分别将各URL中的子文本数据收集到本地文件池;
[0041] S21、对所述本地文件池内的子文本数据进行提取、Python的清洗后,累加合并成文本数据;Python是一种面向对象、直译式计算机程序设计语言。
[0042] 优选的,所述步骤S21进一步包括:S211、提取所述子文本数据的文件名中的路由器MAC和时间戳;
[0043] S212、识别出所述路由器MAC和时间戳是否遇到乱码;
[0044] S213、当所述路由器MAC和时间戳遇到乱码时,对所述乱码进行清洗,累加合并成文本数据后,跳转至步骤S22;否则,直接跳转至步骤S22。
[0045] S22、判断所述文本数据中是否存在电话号码;
[0046] S23、当所述文本数据中不存在电话号码时,对所述文本数据进行过滤检测并删除。
[0047] S24、当所述文本数据中存在电话号码时,则对所述文本数据中的电话号码进行正则匹配处理;
[0048] S25、判断所述文本数据中的电话号码是否为新电话号码;
[0049] S26、当所述电话号码为新电话号码时,则按照所述云端分布式文件系统hdfs1的块的大小,对存在新电话号码的文本数据合并成号码文本数据;否则,将存在电话号码的文本数据合成另一号码文本数据,或者将文本数据进行过滤检测并删除。
[0050] S27、利用本地分布式文件系统hdfs2将所述号码文本数据上传至hadoop的云端分布式文件系统hdfs1;hadoop是分布式系统基础构架。
[0051] S40、利用hadoop的数据仓库工具hive从所述云端分布式文件系统hdfs1内号码文本数据中分布式提取URL的手机号码。
[0052] 具体的,hadoop和mapreduce是hive架构的根基。Hive架构包括如下组件:CLI(command line interface)、JDBC/ODBC、Thrift Server、WEB GUI、metastore和Driver(Complier、Optimizer和Executor),这些组件可以分为两大类:服务端组件和客户端组件。
[0053] 服务端组件:1、Driver组件:该组件包括Complier、Optimizer和Executor,它的作用是将我们写的HiveQL(类SQL)语句进行解析、编译优化,生成执行计划,然后调用底层的mapreduce计算框架。
[0054] 2、Metastore组件:元数据服务组件,这个组件存储hive的元数据,hive的元数据存储在关系数据库里,hive支持的关系数据库有derby、mysql。元数据对于hive十分重要,因此hive支持把metastore服务独立出来,安装到远程的服务器集群里,从而解耦hive服务和metastore服务,保证hive运行的健壮性。
[0055] 3、Thrift服务:thrift是facebook开发的一个软件框架,它用来进行可扩展且跨语言的服务的开发,hive集成了该服务,能让不同的编程语言调用hive的接口。
[0056] 客户端组件:1、CLI:command line interface,命令行接口。
[0057] 2、Thrift客户端:上面的架构图里没有写上Thrift客户端,但是hive架构的许多客户端接口是建立在thrift客户端之上,包括JDBC和ODBC接口。
[0058] 3、WEBGUI:hive客户端提供了一种通过网页的方式访问hive所提供的服务。这个接口对应hive的hwi组件(hive web interface),使用前要启动hwi服务。
[0059] 如图1~图4所示,根据本发明的再一个实施例,一种手机号码的海量提取方法,包括以下步骤:S10、利用Flume采集、聚合成子文本数据,并对子文本数据进行传输;再利用分布式web服务器框架,分别将各URL中的子文本数据收集到本地文件池;
[0060] S21、对所述本地文件池内的子文本数据进行提取、Python的清洗后,累加合并成文本数据;Python是一种面向对象、直译式计算机程序设计语言。
[0061] 优选的,所述步骤S21进一步包括:S211、提取所述子文本数据的文件名中的路由器MAC和时间戳;
[0062] S212、识别出所述路由器MAC和时间戳是否遇到乱码;
[0063] S213、当所述路由器MAC和时间戳遇到乱码时,对所述乱码进行清洗,累加合并成文本数据后,跳转至步骤S22;否则,直接跳转至步骤S22。
[0064] S22、判断所述文本数据中是否存在电话号码;
[0065] S23、当所述文本数据中不存在电话号码时,对所述文本数据进行过滤检测并删除。
[0066] S24、当所述文本数据中存在电话号码时,则对所述文本数据中的电话号码进行正则匹配处理;
[0067] S25、判断所述文本数据中的电话号码是否为新电话号码;
[0068] S26、当所述电话号码为新电话号码时,则按照所述云端分布式文件系统hdfs1的块的大小,对存在新电话号码的文本数据合并成号码文本数据;否则,将存在电话号码的文本数据合成另一号码文本数据,或者将文本数据进行过滤检测并删除。
[0069] S27、利用本地分布式文件系统hdfs2将所述号码文本数据上传至hadoop的云端分布式文件系统hdfs1;hadoop是分布式系统基础构架。
[0070] S30、所述数据仓库工具hive向开源计算框架TEZ发送计算请求;
[0071] S31、所述开源计算框架TEZ对所述号码文本数据进行压缩编码处理成压缩文本数据,并存储在所述云端分布式文件系统hdfs1的数据库中。其中,压缩为ORC压缩;文件存储格式为ORC。
[0072] S41、利用所述数据仓库工具hive的UDF函数以正则匹配和处理方式从所述压缩文本数据中提取URL的手机号码。
[0073] 具体的,Tez是Apache最新的支持DAG作业的开源计算框架。Tez并不直接面向最终用户——事实上它允许开发者为最终用户构建性能更快、扩展性更好的应用程序。Tez项目的目标是支持高度定制化,这样它就能够满足各种用例的需要,让人们不必借助其他的外部方式就能完成自己的工作,如果Hive和Pig这样的项目使用Tez而不是MapReduce作为其数据处理的骨干,那么将会显著提升它们的响应时间。Tez构建在YARN之上,后者是Hadoop所使用的新资源管理框架。
[0074] hive文件存储格式:1.textfile为默认格式,存储方式:行存储,磁盘开销大,数据解析开销大;压缩的text文件hive无法进行合并和拆分。2.sequencefile,二进制文件,以的形式序列化到文件中;储方式:行存储,可分割,压缩;一般选择block压缩,优势是文件和Hadoop api中的mapfile是相互兼容的。3.rcfile,存储方式:数据按行分块,每块按照列存储;压缩快,快速列存取;读记录尽量涉及到的block最少;读取需要的列只需要读取每个row group的头部定义。读取全量数据的操作性能可能比sequencefile没有明显的优势。4.orc,存储方式:数据按行分块,每块按照列存储;压缩快,快速列存取;效率比rcfile高,是rcfile的改良版本。5.自定义格式。用户可以通过实现inputformat和outputformat来自定义输入输出格式。
[0075] 其中,textfile存储空间消耗比较大,并且压缩的text无法分割和合并;查询的效率最低,可以直接存储,加载数据的速度最高。sequencefile存储空间消耗最大,压缩的文件可以分割和合并,查询效率高,需要通过text文件转化来加载。rcfile存储空间最小,查询的效率最高,需要通过text文件转化来加载,加载的速度最低。
[0076] 如图1~图5所示,根据本发明的又一个实施例,一种手机号码的海量提取方法,包括以下步骤:S01、搭建Hadoop的集群环境,并配置所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2;对Namenode HA和ResourceManager HA进行设置。
[0077] S02、在所述集群环境中各节点处搭建web服务器分布式集群,并添加负载均衡;负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
[0078] S03、实现所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2的建表关联;重构所述数据仓库工具hive的UDF函数。
[0079] S10、利用Flume采集、聚合成子文本数据,并对子文本数据进行传输;再利用分布式web服务器框架,分别将各URL中的子文本数据收集到本地文件池;
[0080] S21、对所述本地文件池内的子文本数据进行提取、Python的清洗后,累加合并成文本数据;Python是一种面向对象、直译式计算机程序设计语言。
[0081] 优选的,所述步骤S21进一步包括:S211、提取所述子文本数据的文件名中的路由器MAC和时间戳;
[0082] S212、识别出所述路由器MAC和时间戳是否遇到乱码;
[0083] S213、当所述路由器MAC和时间戳遇到乱码时,对所述乱码进行清洗,累加合并成文本数据后,跳转至步骤S22;否则,直接跳转至步骤S22。
[0084] S22、判断所述文本数据中是否存在电话号码;
[0085] S23、当所述文本数据中不存在电话号码时,对所述文本数据进行过滤检测并删除。
[0086] S24、当所述文本数据中存在电话号码时,则对所述文本数据中的电话号码进行正则匹配处理;
[0087] S25、判断所述文本数据中的电话号码是否为新电话号码;
[0088] S26、当所述电话号码为新电话号码时,则按照所述云端分布式文件系统hdfs1的块的大小,对存在新电话号码的文本数据合并成号码文本数据;否则,将存在电话号码的文本数据合成另一号码文本数据,或者将文本数据进行过滤检测并删除。
[0089] S27、利用本地分布式文件系统hdfs2将所述号码文本数据上传至hadoop的云端分布式文件系统hdfs1;hadoop是分布式系统基础构架。
[0090] S30、所述数据仓库工具hive向开源计算框架TEZ发送计算请求;
[0091] S31、所述开源计算框架TEZ对所述号码文本数据进行压缩编码处理成压缩文本数据,并存储在所述云端分布式文件系统hdfs1的数据库中。其中,压缩为ORC压缩;文件存储格式为ORC。
[0092] S41、利用所述数据仓库工具hive的UDF函数以正则匹配和处理方式从所述压缩文本数据中提取URL的手机号码。
[0093] 具体的,负载均衡英文缩写SLB,它的主要算法如下:加权轮询(WRR)算法:为每台分配一个权重,权重表示相对于其他服务器,自身能处理连接的能力。权重为n表示SLB为下一服务器分配流量之前,要为这台服务器分配n条新连接。
[0094] 加权最小连接(WLC)算法:SLB会将新连接分配给活动连接数最少的真实服务器。为每台真实服务器分配权重m,服务器处理活动连接的能力等于m除以所有服务器权重之和。SLB会将新连接分配给活动连接数远少于其能力范围的真实服务器。
[0095] 使用加权最小连接(WLC)算法时,SLB使用一种慢启动的方式来控制对新加真实服务器的访问。“慢启动”限制了新连接的建立频率并允许逐渐增加,以此来防范服务器的的过载。
[0096] Namenode HA的配置,具体如下:
[0097] 1.1将hadoop-2.3.0-cdh5.0.0.tar.gz解压到/opt/boh/下,并重命名为hadoop,修改etc/hadoop/core-site.xml。
[0098] 1.2修改hdfs-site.xml。
[0099] 1.3编辑/etc/hadoop/slaves;添加hadoop3,hadoop4。
[0100] 1.4编辑/etc/profile;添加HADOOP_HOME=/opt/boh/hadoop;PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH;将以上配置复制到所有节点。
[0101] 1.5启动各项服务;
[0102] 1.5.1启动journalnode;在hadoop0、hadoop1、hadoop2上执行sbin/hadoop-daemon.sh start journalnode;
[0103] 1.5.2格式化zookeeper;在hadoop1上执行bin/hdfs zkfc-formatZK;
[0104] 1.5.3对hadoop1节点进行格式化和启动;bin/hdfs namenode-format;sbin/hadoop-daemon.sh start namenode;
[0105] 1.5.4对hadoop2节点进行格式化和启动;bin/hdfs  namenode-bootstrapStandby;sbin/hadoop-daemon.sh start namenode;
[0106] 1.5.5在hadoop1和hadoop2上启动zkfc服务;sbin/hadoop-daemon.sh start zkfc;此时hadoop1和hadoop2就会有一个节点变为active状态;
[0107] 1.5.6启动datanode;在hadoop1上执行命令sbin/hadoop-daemons.sh start datanode;
[0108] 1.5.7验证是否成功;打开浏览器,访问hadoop1:50070以及hadoop2:50070,两个namenode一个是active而另一个是standby。然后kill掉其中active的namenode进程,另一个standby的naemnode将会自动转换为active状态。
[0109] ResourceManager HA的配置,具体如下:
[0110] 2.1修改mapred-site.xml。
[0111] 2.2修改yarn-site.xml。
[0112] 2.3将配置文件分发至各节点。
[0113] 2.4修改hadoop2上的yarn-site.xml。
[0114] 2.5创建目录并赋予权限:
[0115] 2.5.1创建本地目录;
[0116] 2.5.2启动hdfs后,执行下列命令;创建log目录;创建hdfs下的/tmp;如果不创建/tmp按照指定的权限,那么CDH的其他组件将会有问题。尤其是,如果不创建的话,其他进程会以严格的权限自动创建这个目录,这样就会影响到其他程序适用。hadoop fs-mkdir/tmp;hadoop fs-chmod-R 777/tmp。
[0117] 2.6启动yarn和jobhistory server;
[0118] 2.6.1在hadoop1上启动:sbin/start-yarn.sh;此脚本将会启动hadoop1上的resourcemanager及所有的nodemanager。
[0119] 2.6.2在hadoop2上启动resourcemanager:yarn-daemon.sh start resourcemanager;
[0120] 2.6.3在hadoop2上启动jobhistory server;sbin/mr-jobhistory-daemon.shstart historyserver。
[0121] 2.7验证是否配置成功。打开浏览器,访问hadoop1:23188或者hadoop2:23188。
[0122] 如图1~图6所示,根据本发明的又又一个实施例,一种手机号码的海量提取方法,包括以下步骤:S01、搭建Hadoop的集群环境,并配置所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2;对Namenode HA和ResourceManager HA进行设置。
[0123] 所述步骤S01进一步包括:S011、在Hadoop上搭建第一预设个数(例如第一预设个数为4)的主节点master、第二预设个数(例如第二预设个数为7)的从节点slave;各个主节点master之间相互连接,每个主节点master分别与各个从节点slave相连。
[0124] S012、每个主节点master上组建有元数据服务组件metastore、关系数据库mysql、HiveServer2。通过HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,连这个和都允许远程客户端使用多种编程语言如java,python等向hive提交请求,取回结果。HiveServer2都是基于Thrift的,HiveServer2支持多客户端的并发和认证,为开放API客户端如JDBC、ODBC提供更好的支持。
[0125] S02、在所述集群环境中各节点处搭建web服务器分布式集群,并添加负载均衡;负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
[0126] S03、实现所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2的建表关联;重构所述数据仓库工具hive的UDF函数。
[0127] S10、利用Flume采集、聚合成子文本数据,并对子文本数据进行传输;再利用分布式web服务器框架,分别将各URL中的子文本数据收集到本地文件池;
[0128] S21、对所述本地文件池内的子文本数据进行提取、Python的清洗后,累加合并成文本数据;Python是一种面向对象、直译式计算机程序设计语言。
[0129] 优选的,所述步骤S21进一步包括:S211、提取所述子文本数据的文件名中的路由器MAC和时间戳;
[0130] S212、识别出所述路由器MAC和时间戳是否遇到乱码;
[0131] S213、当所述路由器MAC和时间戳遇到乱码时,对所述乱码进行清洗,累加合并成文本数据后,跳转至步骤S22;否则,直接跳转至步骤S22。
[0132] S22、判断所述文本数据中是否存在电话号码;
[0133] S23、当所述文本数据中不存在电话号码时,对所述文本数据进行过滤检测并删除。
[0134] S24、当所述文本数据中存在电话号码时,则对所述文本数据中的电话号码进行正则匹配处理;
[0135] S25、判断所述文本数据中的电话号码是否为新电话号码;
[0136] S26、当所述电话号码为新电话号码时,则按照所述云端分布式文件系统hdfs1的块的大小,对存在新电话号码的文本数据合并成号码文本数据;否则,将存在电话号码的文本数据合成另一号码文本数据,或者将文本数据进行过滤检测并删除。
[0137] S27、利用本地分布式文件系统hdfs2将所述号码文本数据上传至hadoop的云端分布式文件系统hdfs1;hadoop是分布式系统基础构架。
[0138] S30、所述数据仓库工具hive向开源计算框架TEZ发送计算请求;
[0139] S31、所述开源计算框架TEZ对所述号码文本数据进行压缩编码处理成压缩文本数据,并存储在所述云端分布式文件系统hdfs1的数据库中。其中,压缩为ORC压缩;文件存储格式为ORC。
[0140] S41、利用所述数据仓库工具hive的UDF函数以正则匹配和处理方式从所述压缩文本数据中提取URL的手机号码。
[0141] 具体的,Master/Slave相当于Server和agent的概念。Master提供web接口让用户来管理job和slave,job可以运行在master本机或者被分配到slave上运行。一个master可以关联多个slave用来为不同的job或相同的job的不同配置来服务。
[0142] Hive的metastore组件是hive元数据集中存放地。Metastore组件包括两个部分:metastore服务和后台数据的存储。后台数据存储的介质就是关系数据库,例如hive默认的嵌入式磁盘数据库derby,还有mysql数据库。Metastore服务是建立在后台数据存储介质之上,并且可以和hive服务进行交互的服务组件,默认情况下,metastore服务和hive服务是安装在一起的,运行在同一个进程当中。也可以把metastore服务从hive服务里剥离出来,metastore独立安装在一个集群里,hive远程调用metastore服务,可以把元数据这一层放到防火墙之后,客户端访问hive服务,就可以连接到元数据这一层,从而提供了更好的管理性和安全保障。使用远程的metastore服务,可以让metastore服务和hive服务运行在不同的进程里,这样也保证了hive的稳定性,提升了hive服务的效率。
[0143] 如图7所示,根据本发明的一个实施例,一种手机号码的海量提取系统,包括:搭建Hadoop的集群环境,并配置所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2;对Namenode HA和ResourceManager HA进行设置。
[0144] 在Hadoop上搭建第一预设个数(例如第一预设个数为4)的主节点master、第二预设个数(例如第二预设个数为7)的从节点slave;各个主节点master之间相互连接,每个主节点master分别与各个从节点slave相连。
[0145] 每个主节点master上组建有元数据服务组件metastore、关系数据库mysql、HiveServer2。通过HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,连这个和都允许远程客户端使用多种编程语言如java,python等向hive提交请求,取回结果。HiveServer2都是基于Thrift的,HiveServer2支持多客户端的并发和认证,为开放API客户端如JDBC、ODBC提供更好的支持。
[0146] 在所述集群环境中各节点处搭建web服务器分布式集群,并添加负载均衡;负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
[0147] 实现所述数据仓库工具hive、云端分布式文件系统hdfs1、本地分布式文件系统hdfs2的建表关联;重构所述数据仓库工具hive的UDF函数。
[0148] 分布式web服务器框架,利用Flume采集、聚合成子文本数据,并对子文本数据进行传输;再利用分布式web服务器框架,分别将各URL中的子文本数据收集到本地文件池;
[0149] 分布式web服务器框架,对所述本地文件池内的子文本数据进行提取、Python的清洗后,累加合并成文本数据;Python是一种面向对象、直译式计算机程序设计语言。
[0150] 优选的,分布式web服务器框架,提取所述子文本数据的文件名中的路由器MAC和时间戳;识别出所述路由器MAC和时间戳是否遇到乱码;当所述路由器MAC和时间戳遇到乱码时,对所述乱码进行清洗,累加合并成文本数据。判断所述文本数据中是否存在电话号码;当所述文本数据中不存在电话号码时,对所述文本数据进行过滤检测并删除。当所述文本数据中存在电话号码时,则对所述文本数据中的电话号码进行正则匹配处理;判断所述文本数据中的电话号码是否为新电话号码;当所述电话号码为新电话号码时,则按照所述云端分布式文件系统hdfs1的块的大小,对存在新电话号码的文本数据合并成号码文本数据;否则,将存在电话号码的文本数据合成另一号码文本数据,或者将文本数据进行过滤检测并删除。
[0151] 本地分布式文件系统hdfs2,利用本地分布式文件系统hdfs2将所述号码文本数据上传至hadoop的云端分布式文件系统hdfs1;hadoop是分布式系统基础构架。
[0152] 数据仓库工具hive,所述数据仓库工具hive向开源计算框架TEZ发送计算请求;
[0153] 开源计算框架TEZ,所述开源计算框架TEZ对所述号码文本数据进行压缩编码处理成压缩文本数据,并存储在所述云端分布式文件系统hdfs1的数据库中。其中,压缩为ORC压缩;文件存储格式为ORC。
[0154] 所述数据仓库工具hive,利用所述数据仓库工具hive的UDF函数以正则匹配和处理方式从所述压缩文本数据中提取URL的手机号码。
[0155] 如图8、图9、图10所示,根据本发明的再一个实施例,一种海量URL的数据提取方法,包括:搭建Hadoop2.7.1的集群环境(部署4个master,7个slave),并配置好HIVE、HDFS等环境与配置(Hive Metastore、mysql、hiveserver2等组建在一台master上)。并设置好Namenode HA和ResourceManager HA,使分布式系统满足高可用性!
[0156] 各节点搭建tomcat分布式集群,添加负载均衡。
[0157] 实现hive、hdfs的建表关联,开发相对应的hive的UDF函数,并且测试提取功能正常。
[0158] 完成基于hive的电话号码匹配的正则表达式程序,通过UDF函数编译完成功能结合。
[0159] 通过分布式的web服务器框架,将文本数据收集到本地文件池;通过对文件池里的文件进行清洗、提取、合并;按照HDFS的块的大小进行累加合并,合并完利用local HDFS完成数据的高效上传;再通过自己开发的Hive的UDF函数getNUM来完成对数据中的URL的电话号码进行正则匹配和处理,完成URL海量数据的高效提取。
[0160] 相同的用户电话号码,对应四个不同的终端MAC,和四个不同的家庭路由器MAC,并计算出用户电话在不同路由器下的不同终端的出现次数,这样通过高效的分布式计算,能从海量的用户数据里得到用户真正的终端访问情况,并以此精准到用户的使用终端,为用户带来更优质的服务。
[0161] 运行清洗、合并、上传、高压缩编码、分布式提取的程序。
[0162] 将结果输出和进一步深入分析。
[0163] hive:是apache开源的技术,数据仓库软件提供对存储在分布式中的大型数据集的查询和管理,它本身是建立在Apache Hadoop之上。Hive SQL代表的是以传统基于Mapreduce为核心的SQL语言。
[0164] 在大数据应用场景下,随着数据海量增加,直接利用本地计算对原始数据的进行提取,会消耗大量资源和内存,并且效率低下,但利用hive调用Hadoop进行分布式计算来进行正则匹配手机号码,效率高且消耗资源低。本发明主要是在通过hive的UDF自适应开发功能与Python的清洗、合并、上传及hive的ORC压缩结合,形成了一个高性能的手机号码提取方法。
[0165] 应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

附图说明

[0022] 下面将以明确易懂的方式,结合附图说明优选实施方式,对一种手机号码的海量提取方法及系统的上述特性、技术特征、优点及其实现方式予以进一步说明。
[0023] 图1是本发明一种手机号码的海量提取方法的流程示意图;
[0024] 图2是本发明中步骤S20的流程示意图;
[0025] 图3是本发明中步骤S21的流程示意图;
[0026] 图4是本发明另一种手机号码的海量提取方法的部分流程示意图;
[0027] 图5是本发明又一种手机号码的海量提取方法的部分流程示意图;
[0028] 图6是本发明中步骤S01的流程示意图;
[0029] 图7是本发明一种手机号码的海量提取系统的结构示意图;
[0030] 图8是本发明再一种手机号码的海量提取方法的示意图;
[0031] 图9是本发明再一种手机号码的海量提取方法的组成结构示意图;
[0032] 图10是本发明提取出手机号码的效果示意图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号