加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何使用大数据技术实现日志存储和查询

发布时间:2022-11-26 17:32:30 所属栏目:大数据 来源:未知
导读: 1、背景
为低成本高效的存储来自网络日志数据,重庆移动每天的日志日均有**百亿条,需要留存60天,采用传统的数据库技术显然无法处理。在2013年的时候,hadoop及hbase技术尚不知名,当时我

1、背景

为低成本高效的存储来自网络日志数据,重庆移动每天的日志日均有**百亿条,需要留存60天,采用传统的数据库技术显然无法处理。在2013年的时候,hadoop及hbase技术尚不知名,当时我们引入天云的技术,搭建了上网日志留存系统,虽然硬件比较撇,但是神奇的存活到现在。在日志留存平台上,我么踩过hadoop和hbase的各种各样的坑,也为后来我们大数据平台的建设积累了宝贵的经验,比如nfs故障、机器误删文件、hbase的region空洞等问题。背景过长了,还是赶紧来介绍我们的技术方案吧,由于已经构建3年多,因此很多东西比较过时了。

2、相关技术方案

日志留存首先得有日志的采集设备,我们采用现网分组域增加数据采集设备、数据接口机及相关软件,实现分组域Gn口部署数据采集功能;日志存储查询系统包含采集模块、存储模块、查询模块构成,实现前台业务人员快速的查询功能。总体方案如下图示:

大数据存储技术_数据科学与大数据技术专业认知_星图数据致力于大数据技术在消费领域的行业应用1

2.1集模块从采集日志;

数据采集子系统主要负责用户所有上网数据报文的采集,对所采集的数据进行信令和业务解析,生成记录后并上传到数据入库子系统中。在采集的时候,必须确保数据采集的准确性和完整性,同时保证不影响现网网络的稳定性和安全性。数据监听模块负责将Gn链路的数据(信令数据、业务数据)全部复制并输出到信令解析模块和业务解析模块,并且不影响原链路业务传输。该模块要求能够支持分光方式进行Gn接口数据的采集,分光采集方式应达到线速的数据采集,同时保证数据采集证准确性和完整性。分光接入方式的采集,需要在被监测网络的光纤链路中串接分光器,需保证不增加被监测网络的交换机负荷,保证对被监测网络不造成任何不良影响。

2.2留存模块接收来自采集模块提供的数据,对数据采用gz的方式压缩后加载到hadoop的hdfs分布式文件集群上面,保留60天;集群搭建为双NameNode的结构,解决了NameNode的单点问题。如下图:

星图数据致力于大数据技术在消费领域的行业应用1_大数据存储技术_数据科学与大数据技术专业认知

hadoop后续的版本对元数据的管理和保护进行了升级,采用journalnode的方式来进行主背节点的数据同步,当时我们nfs也出过几次问题。2013年当时是主流的架构,有以下的考虑:

a、集群搭建为双NameNode的结构,解决了NameNode的单点问题。

b、把元数据信息存在第三方地点

c、只需保存fsimage和edits

星图数据致力于大数据技术在消费领域的行业应用1_数据科学与大数据技术专业认知_大数据存储技术

d、Active NN和Standby NN通过开源组件ZooKeeper来决定主从

e、Standby NN从第三方地点实时读取edits

f、当Active NN失败,切换到Standby NN时,Standby NN需要确保读取完所有edits之后才能对外提供服务

g、如果Active Namenode失效,客户端可以自动的将操作发往Standby节点

3、hbase查询模块

查询项目的查询需求是:开始时间、结束时间,查询时间段至少支持60天;接入APN(cmwap、cmnet);查询号码(仅显示,不能修改,系统自动取验证后的号码)。我们采用hbase进行数据的存储和查询服务,hbase的表设计如下:

rowkey= 手机号+APN+连接时间

这样设计的原因为:以手机号为主要标示,这样如果确定了手机号,就可以在Hbase中定位到以手机号开始的rowkey的数据的大致位置,之后再根据APN+接入时间范围确定需要查找数据的具体位置,以达到快速查询的目的。

在数据库的表设计方面,考虑到数据的有效期为60天,因此在设计方面设置了表的数据有效期为60天。即,在数据存储于Hbase的时候记录一个系统时间戳,Hbase会自动检查数据的有效期,当数据存在于Hbase的时间大于60天的时候系统会自动将其删除。后面我们进行了优化,一天一个表,增加系统的稳定性;在建表初期,进行Hbase的region的预分大数据存储技术,这样可以增加Hbase入库的并发量。在这次的项目中,由于是以“手机号”为开始的rowkey,因此采用的region预分规则为重庆市移动号码码段。

数据科学与大数据技术专业认知_星图数据致力于大数据技术在消费领域的行业应用1_大数据存储技术

入库处理模块的设计:

a、数据加载到接口机

b、接口机数据加载到hdfs

c、通过mapreduce程序加载到hbase,这个性能是很高的,每秒峰值可以达到200万条每秒

4、设计前台查询模块的时候采用soa的集成方式,上网日志系统开发相关的查询服务。

日志查询系统提供菜单ID和调用URL地址对应关系给CRM。CRM通过鉴权后,向云平台发起HTTP请求,请求参数包含手机号码、操作员工号、TOKEN验证码、菜单ID给云平台。GPRS上网查询系统验证操作员工号合法性后,调用CRM提供的TOKEN验证接口,回传TOKEN。CRM对TOKEN验证通过后,打开菜单ID对应的URL地址。

该接口主要作为嵌套页面调用时的认证方式使用。CRM调用云平台HTTP嵌套页面URL时附加一个唯一的“凭证”,即TOKEN码,GPRS上网查询系统接受凭证并调用CRM提供的WebServices接口,对凭证有效性进行验证;要求GPRS上网查询系统传入接收的“凭证”参数,CRM系统提供校验接口,对凭证的有效性进行校验,校验通过则展现需要嵌套的页面,否则,提示失败。

3、效果分析

日处理日志数据百亿条;

入库时间:20分钟完成一小时日志数据入库;

查询相应时间:5s以下;

4、经验总结:

hbase用来存储量大的简单数据结构是一种非常好的解决方案。

合理的管理hbase表的大小是一招非常有效的技巧

核心系统存在宕机时间较长的问题,需要考虑多个集群提供服务;

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!