一种基于Hive的网络告警信息0LAP方法【专利摘要】本发明提供了一种基于Hive的网络告警信息0LAP方法。主要步骤为:基于数据仓库体系,对网络管理系统中海量网络告警数据预处理,将告警数据映射到Hive中;然后搭建N-D方体模型,计算数据立方体总数,验证所采用的0LAP方法的科学性与可操作性后,进一步构建星型模型,将0LAP的多维分析自定义分N个维度,每个维度细分为h层;分别根据分维和分层的结果,建立事实表与维表,最终采用Hive实现RollUp或Cube操作,实现网络告警中基于Hive的0LAP方法。本发明对存在域间设备和不存在域间直连设备的情况都适用。可提高系统分析性能,从多个维度揭示隐含在海量原始历史告警信息中的告警定位知识和一些有意义的用户与系统信息,对决策人员提供决策支持。【专利说明】-种基于Hive的网络告警信息OLAP方法【
技术领域:
】[0001]本发明涉及一种基于Hive的网络告警信息0LAP方法,属于融合网络管理领域。【
背景技术:
】[0002]随着大数据时代的到来,融合网络的快速发展,数据量与网络规模增大,数据与网络异构性和复杂性增加。网络规模与数据中心不断扩大,信息量呈现出爆炸式增长的趋势,远远超越现有企业IT架构和基础设施的承载能力,实时性要求也将大大超越现有的计算能力。迫切需要寻求新的基础设施以及思考方式的业务、IT行业工作的新途径。国际数据公司(IDC)的研究预测,到2020年,总体数据将增加50倍增长,然而掌握数据管理的IT专业人士的数量仅是现在的1.5倍。[0003]云计算的概念由IBM、Google等IT服务企业提出后一直在不断推进与深入,云计算的基本特征是资源共享、按需分配、弹性调度和服务可扩展,云计算所提供的强大计算能力和存储能力能够支撑网络告警功能的实现。Hadoop属于一个面向分布式的云计算平台,而Hive是基于Hadoop的数据仓库。它定义了一种HQL语言,直接将HQL编译成M/RJobs。特别适合于不熟悉M/R编程模型的用户。Hive包含元数据存储,在数据探索,查询优化和统计分析中很有作用。Hive在数据分析中,可达到一些比高效率的分布式并行比较数据库更高的性能,但也需要底层存储方式的调整和正确的分析策略。[0004]关系数据库之父EdgarFrankCodd(埃德加?弗兰克?科德,1923一2003)于1993年提出了多维数据分析构造大型数据仓库,他创造了术语0LAP表示联机分析处理。联机分析处理专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持。可应分析人员要求进行快速的、灵活地进行大数据量的复杂查询处理,并且以直观易懂的形式将查询结果提供决策人员。[0005]如何降低基础设施承载压力,管理海量设备,解决实时性问题并盘活大量的网络数据资产,满足在数据中心及服务器、网络设备不断扩大的情况下用户对网络告警管理的需求,使其为企业运营、用户生活等领域提供决策支持与更准确高效的服务,是目前急需解决的问题。【
发明内容】[0006]技术问题:本发明针对融合网络中,海量、异构的告警数据使用传统的数据库或数据仓库处理速率慢,内存消耗大甚至无法处理和分析的问题,提供一种基于Hive的网络告警信息0LAP方法,减少待分析的告警数据量,数据分析维度广、效率高。Hive简化MapReduce实现方式,减少开发复杂度、代价低、提高系统分析性能。[0007]技术方案:[0008]1、一种基于Hive的网络告警信息0LAP方法,包括:数据清理、数据集成、数据规约和数据变换,包括如下步骤:[0009]1)告警数据映射先采用HiveJdbcDriver实现Jdbc方式链接Hive,再通过Hive外表方式实现数据共享;[0010]2)初始化0LAP中所需的数据立方体维度数N与每维对应的层数Li,根据具体选择的N个网络告警相关信息维度,建立N-D方体模型;[0011]3)计算数据立方体总数,判断是否存在维灾难,假如存在返回步骤2),重新初始化;[0012]4)按照步骤2)的维度数和层数自定义维度和层次,针对网络告警管理采集到的数据与用户需求,完成0LAP星型模型的构建;[0013]5)建立事实表和维表,解决各维度的层次数据刷新问题,导入数据;[0014]6)基于以上操作,Hive实现RollUp和Cube;当需要更新维度时,返回步骤2)重新初始化。[0015]所述步骤1)采用外联表方式间接操作;所述步骤5)与步骤6)为:[0016]告警分析结合0LAP,基于步骤2)中建立的N-D方体模型,分维基础上进一步细分层次;其中告警区域维的层次划在刷新时分能满足存在/不存在区域直连设备或域间设备的两种情况。告警数据量巨大时,Hive处理海量数据更有效。[0017]所述方法基于云计算Hadoop平台,采用新型的数据仓库Hive,能处理融合网络中海量的、异构的告警数据,解决告警风暴等网络告警管理中因数据量大或网络异构带来的一系列问题。不同于传统的简单统计方式,网络告警0LAP能准确提供多维度和多层次的分析信息,支持使用者决策。[0018]有益效果:[0019]本发明提出了一种基于Hive的网络告警信息0LAP方法,通过使用本发明提出的方法,可以处理海量告警数据,提高告警数据分析效率,扩大分析维度。同时开发复杂度相对减小,分析代价低、准确性高。【专利附图】【附图说明】[0020]图1基于本发明的融合网络告警管理流程。[0021]图2是本发明的基于Hive的分析系统架构图。[0022]图3是本发明的3-D数据立方体示意图。[0023]图4是本发明的0LAP星型模型示意图。[0024]图5是本发明的区域维粒度刷新流程图。[0025]图6是本发明的基于Hive的网络告警信息0LAP方法流程图。【具体实施方式】[0026]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。[0027]图1是基于本发明的融合网络告警管理基本流程图。本发明主要涉及其中的告警0LAP分析模块,考虑的是基于云计算网络管理中的告警管理模块,且系统中包含告警设备/区域树的告警管理场景。图2所示是本发明的基于Hive的分析系统架构图。本发明基于Hadoop平台,在Hadoop上安装HBase数据库和Hive数据仓库。将采集到的告警数据通过基于Hive的0LAP方法实现数据分析并显示给用户。具体在Hadoop上安装配置HBase数据库作为底层仓库数据库服务器。使用后端工具与实用程序,由该数据库和其他的外部数据源,提取数据存入底层,预处理数据更新数据仓库。这一层还包括元数据库,Hive内嵌的元数据库Derby,中间层是OLAP服务器,典型使用多维的模型,直接实现多维数据和分析操作。顶层是前端客户层。包括分析工具、报告工具等。Hive数据仓库工具,将HQL语句转换为MapReduce任务运行,汇总生成跨多个维度的数据:[0028](input)〈k"v1>->Map->List<k2,v2>->Combine[0029]-><k2,List(v2)>->Reduce-><k3,v3>(output)[0030]其中:每一个输入的〈kp¥1>输出一批<k2,v2>。List〈k2,¥2>是计算的中间结果集。输入的中间结果<k2,List(v2)>中的List(v2)表示是一批属于同一个k2的value。[0031]下面给出本发明的具体实施案例:[0032]首先对海量数据采用综合的数据预处理方式,包含数据清理、数据集成、数据规约和数据变换。不考虑对偶然会产生的空值进行缺失填写处理,直接删除离群点。将不同厂商的不同设备经过主动轮询告警,ping告警和trap告警灯不同类型和格式的数据,转化为统一的数据格式。且只取含有内存、CPU以及硬盘利用率等告警类型的数据属性项。利用HBase的rowkey不重复的特点,通过对RowKey的时间戳处理,将原本每分钟内产生的多条告警信息压缩为一条。因Hive的HQL语句中无法使用数据加百分号的形式进行正确的范围判断,将原始的带百分号的数据转化为不带百分号的数据。[0033](1)使用HiveConn实现加载Hive驱动,HiveJdbcDriver实现HBase与Hive的数据连接。HBase中创建相应数据表,对应在Hive中建立外联表存放映射的数据。[0034](2)初始化N=3,选择3个网络告警相关信息维度,建立3-D方体模型,如图3所示。从基本方体自下向上探查,便类似于rollup。立方体操作相当于分组操作的n维推广。每个维度上,维度各自都不分层时,n维数据立方体的方体总数为2n。概念分层(粒度)时,存储需求会增长很多,进行维灾难判断如下:在n维的数据立方体中,可能产生的方体总数为:[0035]方体总数+i-1[0036]其中A是与维i相关的层数。由于泛化到All时,等价于去掉一个维度,所以Li+1,使之包括虚拟顶层All。假如数据立方体有10个维度,每维包含All共6层,那么可能产生方体总数:61°^6.04X107。如维度一分三层,维度二分两层,维度三分两层的情况下,方体总数方体总数=(3+1)X(2+1)X(2+1)=36,不存在维灾难。[0037](3)自定义层次划分,针对网络告警管理采集到的数据与用户需求,根据图3的维度和层次划分定义具体的内容。如一种简单的三维情况:Time、Location、AlarmInfo。其中:Time分三层:year>month>week;Location分Location、LocationDetail两层。Alarmlnfo分AlarmType和AlarmSeverity两层。其中告警区域Location包括具体的一些地理位置,随着用户的具体设备与区域的增删查改而动态改变。时间和告警信息也是实时刷新的。综上信息,如图4所示,0LAP星型模型包含一张事实表和三张维度表。分时间维、区域维、告警参数维。时间维分年、月、日;区域维分总区域、具体区域;告警参数维分告警类型和严重程度两层。[0038](4)首先在HBase中建立事实表Alarm_Info。然后在Hive中,创建同名事实表Alarm_Info如下,维表同理:[0039]CREATEEXTERNALTABLEALARM_INF0(TIME_DEV_IDString,ALARM_TIME[0040]String,ALARM_L0CATI0NString,DEV_IDString,DEV_IPString,[0041]ALARM_DESCString,ALARM_NUMString)[0042]STOREDBY'org.apache,hadoop.hive,hbase.HBaseStorageHandler'WITH[0043]SERDEPROPERTIES("hbase.columns,mapping"="ALARM_INF0:ALARM_TIME,ALARM_INF0:ALARM_L0CATI0N,ALARM_INF0:DEV_ID,ALARM_INF0:DEV_IP,ALARM_INF0:ALARM_DESC,ALARM_INF0:ALARM_NUM〃)TBLPROPERTIES(〃hbase.table.name"="ALARM_INF0")[0044]告警管理中往往存在设备/区域树的情况,该树体现设备与区域的相互联系,以及不同区域间的父节点与子节点间的位置关系,后台存储为一张位置树表,假设是以0表示根节点1表示叶子节点,每个根节点后列出对应的子节点。此时刷新区域表时,要考虑每个区域存在域间设备的情况。如图5所示,本文采用的同时适用于存在和不存在域间设备情况的遍历方法。具体例如:[0045]简单假设现有地区9个。分别用数字1-9表示。其中分两个总区域:1、8。1区下一级为区域2、3,2下一级区域4、5,3下细分为区域6,4区下一节点为区域7,父节点8下一级区域9。此时,首先找到父节点:1,8。然后分别进行遍历。从父节点1开始:遍历第二级,有:1_2,1_3。其中id=2时,子节点数为2,id=3时,子节点数为1不为0,说明两个id均为中间区域,未达到具体区域id号,需要继续遍历。于是继续采用递归方式分别搜索1_2,1_3,分别得到1_2_4,1_2_5,1_3_6。同理判断此时的全路径末尾是否已经达到具体区域的ID。由于路径1_2_4中对应的末尾id=4,子节点数不为1,于是继续递归遍历,得到1_2_4_7末位id=7,子节点数0,结束递归。同理1_2_5,1_3_6已经达到具体区域id,结束遍历。搜索完以上全部后开始另一个父节点8,最终得到如下的全路径结果:[0046]1_2_01_3_01_2_4_01_2_5_01_2_4_7_01_3_6_08_9_0[0047]以上只是一种区域较少的简单情况,也适用于区域增多的情况。且能同时适用于各区域包含和不含直连设备的情况。[0048](5)RollUp/Cube[0049]Hive支持0LAP中的上卷以及分块操作。钻取的深度与维所划分的层次相对应,如rollup的操作,通过沿着一个维度的概念上的分层,逐渐向上延伸。在中心立方体执行上卷操作的最终结果。切块操作涉及的维度并不改变,只是改变各个维度的数据大小。操作前先将三个维表连接后的综合数据表tb。然后进行其他操作,如Rollup中的关键操作如下,cube同理:[0050]casewhen(yearisnull)then'All'elseyearendasyear,[0051]casewhen(locationisnull)then'All'elselocationendaslocation,[0052]casewhen(alarm_typeisnul1)then'A11'elsealarm_typeendastype,ceil(sum(num))assum[0053]fromtbgroupbylocation,time,alarm_descwithrollup;[0054]以上所述仅为本发明的较佳实施案例之一,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。[0055]本发明在深入了解告警管理流程基础上进一步提出基于Hive的告警管理中的0LAP方法,通过建立网络告警数据仓库,利用联机分析的快速数据统计为管理者提供决策支持。用户可以方便灵活地获得不同粒度、不同角度的分析数据,满足了网络告警分析的需求,具有一定的应用价值。[0056]与基于传统数据库和数据仓库的0LAP方法最大的不同,是该方法可以通过使用Hive数据仓库工具,处理海量告警数据,提高告警数据分析效率,扩大分析维度。同时开发复杂度相对减小,分析代价低、准确性高。改进后的方法有更强的数据处理和计算能力,以及更大的灵活性,即使在系统中包含设备/区域树的环境下,相比传统方式也具有更好的数据分析性能。【权利要求】1.一种基于Hive的网络告警信息OLAP方法,包括数据清理、数据集成、数据规约和数据变换,其特征在于,有如下步骤:1)告警数据映射先采用HiveJdbcDriver实现Jdbc方式链接Hive,再通过Hive外表方式实现数据共享;2)初始化OLAP中所需的数据立方体维度数N与每维对应的层数Q,根据具体选择的N个网络告警相关信息维度,建立N-D方体模型;3)计算数据立方体总数,判断是否存在维灾难,假如存在返回步骤2),重新初始化;4)按照步骤2)的维度数和层数自定义维度和层次,针对网络告警管理采集到的数据与用户需求,完成OLAP星型模型的构建;5)建立事实表和维表,解决各维度的层次数据刷新问题,导入数据;6)基于以上操作,Hive实现RollUp和Cube;当需要更新维度时,返回步骤2)重新初始化。【文档编号】H04L12/24GK104219088SQ201410416354【公开日】2014年12月17日申请日期:2014年8月21日优先权日:2014年8月21日【发明者】张柳,张登银,冒玮,陈磊申请人:南京邮电大学