基于HBase的多系统日志存储服务
基于HBase的多系统日志存储服务[20191215140256]
摘要
随着信息技术的不断发展,信息系统应用在我们生活的方方面面。系统在运行过程中会生成大量的记录信息,信息被以系统日志的形式存储到日志文件或数据库中,形成宝贵的日志资源。如何高效的存储日志数据是数据库领域的研究热点。
本平台在分析现有的日志存储系统的基础上,设计并实现了面向多业务系统的日志存储于管理系统。系统的底层利用HBase进行数据存储,HBase是基于Hadoop的分布式数据存储平台。该系统通过门户网站和Web service的形式提供服务,系统为用户发布Web service,用户系统只要调用相应的方法就可完成对用户的远程验证和对日志的写入操作。系统的UI使用jQuery EasyUI组件实现,展示层与业务层的数据交互采用JSON格式实现,jQuery EasyUI提供给用户简单美观的界面,JSON传值对开发者来说使用简单、易于理解。
本系统的用户包括两类:普通用户和管理员。系统实现的功能有:用户管理、日志管理、日志格式管理、系统账号管理等功能。通过日志格式管理,支持用户在基础日志格式的基础上自定义用户格式,实现对相互独立业务系统日志的统一技术标准存储与管理。
本系统将云计算技术运用到日志的存储与管理中,能高效、安全的进行日志数据的存储与管理,有效的解决了日志存储量不断增长对传统数据库造成的压力。
查看完整论文请+Q: 351916072
关键字:字日志存储管理;多系统;分布式存储;HBase;Webservice
目录
摘要 I
Abstract II
第一章 绪论 1
1.1 研究背景及现状 1
1.2 研究目的及意义 2
第二章 开发环境及技术 4
2.1 系统开发环境 4
2.2 主要开发技术 4
第三章 系统分析与设计 7
3.1 需求分析 7
3.2 功能模块设计 15
3.3 数据库设计 18
第四章 系统服务器端设计与实现 26
4.1 Hadoop集群架构 26
4.2 Struts2整合Spring 34
4.3 Web Service 35
4.4 系统HBase查询实现 32
第五章 系统客户端设计与实现 39
5.1 系统类设计与实现 39
5.2 Web service客户端调用 42
5.3 jQuery EasyUI视图 44
第六章 系统总结与展望 51
6.1 系统优缺点 51
6.2 系统应用前景 52
参考文献 53
致谢 55
附录:英文文献翻译 57
第一章 绪论
1.1 研究背景及现状
信息系统的发展不断成熟,几乎生活中的各个方面都能发现信息系统的身影。根据中国互联网数据平台公布的数据[1],截至2013年12月31日,全国网站数已经达到320万。水利信息系统是一个庞大的信息系统群,能对河流、湖泊等信息进行管理。该系统群每天都要对最新的水文信息进行存储和分析,每天将产生大量的日志数据。对水利系统日志分析是分析该水利信息系统运行情况和检测系统输入输出的一个很好的途径。如何将这些日志记录进行高效、安全的存储是一个非常紧迫的问题。
云计算凭借其分布式架构和对大数据的处理能力,在近两年得到迅猛发展。云计算的关键技术:对大规模数据的分布式存储。随之也被推到了风口浪尖,受到了正为数据的传统的集中式存储方式而焦虑的人们的青睐。Hadoop这个分布式系统的基础框架也因此得到推崇。其高效的数据处理和计算能力、可靠的多数据副本存储机制以及高扩展性的分布式数据存储方式,使其成为大数据存储的先驱。HBase的文件存储基于Hadoop的HDFS分布式文件系统,能够容纳庞大的数据集合,是一个面向列存储的非关系型(NoSQL)数据库;HBase还可以利用Hadoop的计算核心子项目——MapReduce来对HBase中的海量数据进行统计等计算操作。HBase是一个对大数据进行存储的良好平台。
Web service是一个应用组件,它能够实现不同区域的机器之间跨网络远程访问Web service服务器端类的属性和方法,实现系统间的远程通信。客户端各应用程序通过网络协议来访问Web service,服务器端将执行结果返回给客户端。目前,Web服务技术已经逐渐成熟,它正对企业信息共享和开展网上的远程服务产生巨大影响。
现有的日志存储管理平台依然沿用传统的关系型数据存储日志数据,数据的存储空间小,针对的用户是小型网站的用户,不能满足不断增长的大数据的存储需求。
基于以上背景,本毕业计划开发一个基于分布式数据库HBase的大数据日志存储服务平台,底层数据库为以Hadoop分布式系统为基础的HBase数据库,能够满足当今对大数据存储和运算的需求。同时,数据库的扩展简单、廉价,当数据库容量不足时,能对数据库进行高效的扩展。在对用户系统日志进行存储时,用户系统会最终调用本系统服务器端的Web service接口。在服务器端,系统会调用用户系统请求的方法并进行查询和判断等操作,最终将调用结果返回给用户系统。用户系统产生的系统日志数据被存储于HBase数据库中。
1.2 研究目的及意义
水利信息系统在运行过程中随着时间的推移会产生大量的日志信息或动作信息,这些信息需要被良好的保存以供将来进一步挖掘数据或者参考使用。通过对海量的日志数据进行管理与分析,可以很大程度上改善系统的应用性能,也可以从历史数据中挖掘出有价值的信息,为企业、数据中心等获取创新点。但是目前各级水利数据中心运行的大量业务系统独立建立日志模块,相应的日志记录格式不统一、结构较为混乱、日志内容横向扩展能力差,而且各系统日志相互独立,因此无法直接进行统一数据挖掘。
如何高效的存储日志数据并提供日志服务成为迫切需要解决的问题。作为开源的云数据库HBase,其具备的高可靠性、高可伸缩性和高性能,使其在海量日志存储上有着无与伦比的优势。相比于传统的关系型数据库,HBase列支持动态扩展,用户只需要在建表初预先定义HBase中的列簇,列可以在数据插入时进行定义;此外,HBase所有的数据都采用二进制格式进行存储,不需要存储前对数据类型进行过多的限制。这都为海量日志数据的高效存储提供了新的解决思路。本课题的主要目标是在分析现有日志存储技术的基础上,基于HBase设计并实现面向多业务系统的多粒度日志存储与管理平台,通过门户网站和Web service的形式提供服务,支持数据中心实现对相互独立业务系统日志的统一技术标准存储与管理。
本课题的目的在于开发以HBase为底层数据库、运用Web service发布接口供用户存储日志调用的日志管理平台。该系统实现的功能主要包括四部分:系统账户管理,系统账户和密码是用户存储日志的钥匙;日志类型管理,该类型的定义为后续的日志分析做好基础;日志管理,提供用户对每一条日志的详细操作;用户管理,管理员可以对用户进行审核、最大容量修改、最大存储系数修改等操作;私信管理,目的是满足平台内部的交流。通过几个模块的组合运用,呈现给用户一个功能齐全的分布式日志管理平台,使用户能安全、高效的进行自有系统日志的存储。该系统可用于商业运作,用户付给系统相应的费用以换取足够的日志存储空间,,不用担心因日志空间存储不足造成的困扰。
第二章 开发环境及技术
本章对本系统的开发环境和用到的主要技术进行了简单的介绍。
2.1 系统开发环境
开发端操作系统:window7
服务器端:ubuntu12.04、Hadoop-0.22.0、HBase-0.94.8
应用服务器:tomcat6.0和tomcat7.0
开发平台:Eclipse-jee-indigo、jdk1.7
其他开发框架及技术支持:Apache-CXF-2.6.11、Spring4.0、Struts-2.3.16、jQuery-EasyUI-1.2.5
2.2 主要开发技术
开发本系统所用到的主要技术有:Hadoop中的HBase数据库、Struts2三层框架、Spring框架及jQuery EasyUI和JSON传值。
2.2.1 Hadoop和HBase
Hadoop是一个开源的Google分布式文件存储架构,因其开源性和分布式的特点逐渐受到追捧。
Hadoop中包含多个子项目,其中最重要的三个子项目分别为:HDFS、MapReduce和HBase[13]。HDFS是一个分布式文件系统,MapReduce是一个计算框架,用于大数据的计算;HBase是一个NoSQL数据库,能够对列进行动态定义。
HBase作为一个分布式数据库系统,其底层依赖Hadoop的HDFS,HBase的数据实际上被存储于HDFS中。HBase按列存储的特性使数据存储更加灵活,同一张表中的数据可以有完全不同的字段,能够更好的节约存储空间。
2.2.2 Struts2
谈起成熟的MVC框架,很多人都会提到Struts2。Struts2具有拦截器机制和业务逻辑控制功能,这两方面分别体现在处理用户请求和Servlet API与Struts2的业务逻辑控制器的分离。核心控制器、业务控制器和业务逻辑组件是组成Struts2框架的三大部分[12]。
FilterDispatcher是Struts2的核心控制器,当用户提交action请求时,它的主要的任务是就是截获用户的Action请求。根据用户根据具体的对系统的需求来实现Struts2的业务控制器中的Action和业务逻辑组件,这两者的使用在开发过程中需要与相关配置文件结合使用。
Struts2框架具有:开源性、MVC框架、纯pojo Action、易测性和易扩展型等特点受到Java开发人员的喜爱。
2.2.3 Spring
Spring框架[17]的开源性和分层性使其不断得到发展与肯定。该框架使用分层结构。分层的使用使得企业降低了应用程序开发过程的复杂性和增强了程序的可读性。Spring容器的使用是Spring框架的核心功能。Spring由7个模块组成,模块之间可以结合使用。作为Spring容器的重要组成部分,BeanFactory能够通过其控制反转模式分离应用程序的配置和实际应用代码。
2.2.4 Web service
Web service[14]是一个跨平台数据交互的应用组件。其能实现在无需借助附加软件或者其他设备的情况下,使不同机器上的应用进行数据交换。通过网络协议和标准的数据格式,客户端应用程序可以轻松访问Web service服务。标准的数据格式包括:HTTP、XML和SOAP等。
本系统中,使用Apache CXF框架来开发Web service服务,当服务器端发布了Web service服务后,位于网络中的其他web系统既可以通过客户端配置与服务端连接,当客户端调用Web service服务时,用户所拥有的系统账户和密码两个参数会通过网络协议传递到服务器端,并返回处理结果。
2.2.5 jQuery EasyUI和JSON传值
jQuery其实是一个JS的脚本库,在脚本库内预先定义了大量的已集成的UI组件,开发者只需要对组件进行调用就可完成简单、美观的显示页面。
jQuery EasyUI具有如下优势:首先它是插件的集合,使用插件时只需要将插件引用进来即可,开发过程相对简单;其次程序开发者可以使用Javascript和HTML两种方式进行控件调用,数据的传递格式也更加的灵活;第三界面风格美观,其从jQuery中继承了大量美观的插件,使用户不需要过多考虑页面的美化问题。EasyUI的使用将前台展示与后台逻辑很好的分离,使得系统的层次结构更加清晰。
摘要
随着信息技术的不断发展,信息系统应用在我们生活的方方面面。系统在运行过程中会生成大量的记录信息,信息被以系统日志的形式存储到日志文件或数据库中,形成宝贵的日志资源。如何高效的存储日志数据是数据库领域的研究热点。
本平台在分析现有的日志存储系统的基础上,设计并实现了面向多业务系统的日志存储于管理系统。系统的底层利用HBase进行数据存储,HBase是基于Hadoop的分布式数据存储平台。该系统通过门户网站和Web service的形式提供服务,系统为用户发布Web service,用户系统只要调用相应的方法就可完成对用户的远程验证和对日志的写入操作。系统的UI使用jQuery EasyUI组件实现,展示层与业务层的数据交互采用JSON格式实现,jQuery EasyUI提供给用户简单美观的界面,JSON传值对开发者来说使用简单、易于理解。
本系统的用户包括两类:普通用户和管理员。系统实现的功能有:用户管理、日志管理、日志格式管理、系统账号管理等功能。通过日志格式管理,支持用户在基础日志格式的基础上自定义用户格式,实现对相互独立业务系统日志的统一技术标准存储与管理。
本系统将云计算技术运用到日志的存储与管理中,能高效、安全的进行日志数据的存储与管理,有效的解决了日志存储量不断增长对传统数据库造成的压力。
查看完整论文请+Q: 351916072
关键字:字日志存储管理;多系统;分布式存储;HBase;Webservice
目录
摘要 I
Abstract II
第一章 绪论 1
1.1 研究背景及现状 1
1.2 研究目的及意义 2
第二章 开发环境及技术 4
2.1 系统开发环境 4
2.2 主要开发技术 4
第三章 系统分析与设计 7
3.1 需求分析 7
3.2 功能模块设计 15
3.3 数据库设计 18
第四章 系统服务器端设计与实现 26
4.1 Hadoop集群架构 26
4.2 Struts2整合Spring 34
4.3 Web Service 35
4.4 系统HBase查询实现 32
第五章 系统客户端设计与实现 39
5.1 系统类设计与实现 39
5.2 Web service客户端调用 42
5.3 jQuery EasyUI视图 44
第六章 系统总结与展望 51
6.1 系统优缺点 51
6.2 系统应用前景 52
参考文献 53
致谢 55
附录:英文文献翻译 57
第一章 绪论
1.1 研究背景及现状
信息系统的发展不断成熟,几乎生活中的各个方面都能发现信息系统的身影。根据中国互联网数据平台公布的数据[1],截至2013年12月31日,全国网站数已经达到320万。水利信息系统是一个庞大的信息系统群,能对河流、湖泊等信息进行管理。该系统群每天都要对最新的水文信息进行存储和分析,每天将产生大量的日志数据。对水利系统日志分析是分析该水利信息系统运行情况和检测系统输入输出的一个很好的途径。如何将这些日志记录进行高效、安全的存储是一个非常紧迫的问题。
云计算凭借其分布式架构和对大数据的处理能力,在近两年得到迅猛发展。云计算的关键技术:对大规模数据的分布式存储。随之也被推到了风口浪尖,受到了正为数据的传统的集中式存储方式而焦虑的人们的青睐。Hadoop这个分布式系统的基础框架也因此得到推崇。其高效的数据处理和计算能力、可靠的多数据副本存储机制以及高扩展性的分布式数据存储方式,使其成为大数据存储的先驱。HBase的文件存储基于Hadoop的HDFS分布式文件系统,能够容纳庞大的数据集合,是一个面向列存储的非关系型(NoSQL)数据库;HBase还可以利用Hadoop的计算核心子项目——MapReduce来对HBase中的海量数据进行统计等计算操作。HBase是一个对大数据进行存储的良好平台。
Web service是一个应用组件,它能够实现不同区域的机器之间跨网络远程访问Web service服务器端类的属性和方法,实现系统间的远程通信。客户端各应用程序通过网络协议来访问Web service,服务器端将执行结果返回给客户端。目前,Web服务技术已经逐渐成熟,它正对企业信息共享和开展网上的远程服务产生巨大影响。
现有的日志存储管理平台依然沿用传统的关系型数据存储日志数据,数据的存储空间小,针对的用户是小型网站的用户,不能满足不断增长的大数据的存储需求。
基于以上背景,本毕业计划开发一个基于分布式数据库HBase的大数据日志存储服务平台,底层数据库为以Hadoop分布式系统为基础的HBase数据库,能够满足当今对大数据存储和运算的需求。同时,数据库的扩展简单、廉价,当数据库容量不足时,能对数据库进行高效的扩展。在对用户系统日志进行存储时,用户系统会最终调用本系统服务器端的Web service接口。在服务器端,系统会调用用户系统请求的方法并进行查询和判断等操作,最终将调用结果返回给用户系统。用户系统产生的系统日志数据被存储于HBase数据库中。
1.2 研究目的及意义
水利信息系统在运行过程中随着时间的推移会产生大量的日志信息或动作信息,这些信息需要被良好的保存以供将来进一步挖掘数据或者参考使用。通过对海量的日志数据进行管理与分析,可以很大程度上改善系统的应用性能,也可以从历史数据中挖掘出有价值的信息,为企业、数据中心等获取创新点。但是目前各级水利数据中心运行的大量业务系统独立建立日志模块,相应的日志记录格式不统一、结构较为混乱、日志内容横向扩展能力差,而且各系统日志相互独立,因此无法直接进行统一数据挖掘。
如何高效的存储日志数据并提供日志服务成为迫切需要解决的问题。作为开源的云数据库HBase,其具备的高可靠性、高可伸缩性和高性能,使其在海量日志存储上有着无与伦比的优势。相比于传统的关系型数据库,HBase列支持动态扩展,用户只需要在建表初预先定义HBase中的列簇,列可以在数据插入时进行定义;此外,HBase所有的数据都采用二进制格式进行存储,不需要存储前对数据类型进行过多的限制。这都为海量日志数据的高效存储提供了新的解决思路。本课题的主要目标是在分析现有日志存储技术的基础上,基于HBase设计并实现面向多业务系统的多粒度日志存储与管理平台,通过门户网站和Web service的形式提供服务,支持数据中心实现对相互独立业务系统日志的统一技术标准存储与管理。
本课题的目的在于开发以HBase为底层数据库、运用Web service发布接口供用户存储日志调用的日志管理平台。该系统实现的功能主要包括四部分:系统账户管理,系统账户和密码是用户存储日志的钥匙;日志类型管理,该类型的定义为后续的日志分析做好基础;日志管理,提供用户对每一条日志的详细操作;用户管理,管理员可以对用户进行审核、最大容量修改、最大存储系数修改等操作;私信管理,目的是满足平台内部的交流。通过几个模块的组合运用,呈现给用户一个功能齐全的分布式日志管理平台,使用户能安全、高效的进行自有系统日志的存储。该系统可用于商业运作,用户付给系统相应的费用以换取足够的日志存储空间,,不用担心因日志空间存储不足造成的困扰。
第二章 开发环境及技术
本章对本系统的开发环境和用到的主要技术进行了简单的介绍。
2.1 系统开发环境
开发端操作系统:window7
服务器端:ubuntu12.04、Hadoop-0.22.0、HBase-0.94.8
应用服务器:tomcat6.0和tomcat7.0
开发平台:Eclipse-jee-indigo、jdk1.7
其他开发框架及技术支持:Apache-CXF-2.6.11、Spring4.0、Struts-2.3.16、jQuery-EasyUI-1.2.5
2.2 主要开发技术
开发本系统所用到的主要技术有:Hadoop中的HBase数据库、Struts2三层框架、Spring框架及jQuery EasyUI和JSON传值。
2.2.1 Hadoop和HBase
Hadoop是一个开源的Google分布式文件存储架构,因其开源性和分布式的特点逐渐受到追捧。
Hadoop中包含多个子项目,其中最重要的三个子项目分别为:HDFS、MapReduce和HBase[13]。HDFS是一个分布式文件系统,MapReduce是一个计算框架,用于大数据的计算;HBase是一个NoSQL数据库,能够对列进行动态定义。
HBase作为一个分布式数据库系统,其底层依赖Hadoop的HDFS,HBase的数据实际上被存储于HDFS中。HBase按列存储的特性使数据存储更加灵活,同一张表中的数据可以有完全不同的字段,能够更好的节约存储空间。
2.2.2 Struts2
谈起成熟的MVC框架,很多人都会提到Struts2。Struts2具有拦截器机制和业务逻辑控制功能,这两方面分别体现在处理用户请求和Servlet API与Struts2的业务逻辑控制器的分离。核心控制器、业务控制器和业务逻辑组件是组成Struts2框架的三大部分[12]。
FilterDispatcher是Struts2的核心控制器,当用户提交action请求时,它的主要的任务是就是截获用户的Action请求。根据用户根据具体的对系统的需求来实现Struts2的业务控制器中的Action和业务逻辑组件,这两者的使用在开发过程中需要与相关配置文件结合使用。
Struts2框架具有:开源性、MVC框架、纯pojo Action、易测性和易扩展型等特点受到Java开发人员的喜爱。
2.2.3 Spring
Spring框架[17]的开源性和分层性使其不断得到发展与肯定。该框架使用分层结构。分层的使用使得企业降低了应用程序开发过程的复杂性和增强了程序的可读性。Spring容器的使用是Spring框架的核心功能。Spring由7个模块组成,模块之间可以结合使用。作为Spring容器的重要组成部分,BeanFactory能够通过其控制反转模式分离应用程序的配置和实际应用代码。
2.2.4 Web service
Web service[14]是一个跨平台数据交互的应用组件。其能实现在无需借助附加软件或者其他设备的情况下,使不同机器上的应用进行数据交换。通过网络协议和标准的数据格式,客户端应用程序可以轻松访问Web service服务。标准的数据格式包括:HTTP、XML和SOAP等。
本系统中,使用Apache CXF框架来开发Web service服务,当服务器端发布了Web service服务后,位于网络中的其他web系统既可以通过客户端配置与服务端连接,当客户端调用Web service服务时,用户所拥有的系统账户和密码两个参数会通过网络协议传递到服务器端,并返回处理结果。
2.2.5 jQuery EasyUI和JSON传值
jQuery其实是一个JS的脚本库,在脚本库内预先定义了大量的已集成的UI组件,开发者只需要对组件进行调用就可完成简单、美观的显示页面。
jQuery EasyUI具有如下优势:首先它是插件的集合,使用插件时只需要将插件引用进来即可,开发过程相对简单;其次程序开发者可以使用Javascript和HTML两种方式进行控件调用,数据的传递格式也更加的灵活;第三界面风格美观,其从jQuery中继承了大量美观的插件,使用户不需要过多考虑页面的美化问题。EasyUI的使用将前台展示与后台逻辑很好的分离,使得系统的层次结构更加清晰。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/3384.html