首页 > 范文大全 > 正文

电信业云详单处理系统设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇电信业云详单处理系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:为了解决电信企业计费系统对服务器资源计算需求量大和运行效率差的问题,提出了一种基于Hadoop的大数据量解决方法,该方法提供了一个可靠的共享存储和分析系统。理论与实践分析显示,所建系统与传统小型机架构相比,能够实现全面的缓存技术支持,实时高并发写入与数据读取,高级压缩比,数据高可用性,自动容灾。同时可实现数据库容量与性能支持在线扩展,自动故障探测和管理,使投资成本降低80%,计算性能提升8倍。

关键词:云计算;Hadoop;通话详单;系统设计

中图分类号:TN91文献标识码:A文章编号:1005-3824(2014)03-0046-04

0引言

当前,大数据时代的浪潮汹涌而来,为IT产业带来了新的机遇、新的变革和新的发展。在当前的全业务运营环境下,电信企业面临存储资源紧张的现状。存储资源消耗急剧上升,单一省公司计费数据库占用存储100 T左右,每月呈现出以500 G的绝对值增长趋势。在这种趋势下,不得不购买更多磁盘、磁带等存储设备,而管理越来越复杂,主机的压力越来越高,机房的空间也变得越来越拥挤,冷却系统也开始有些不堪重负。这些都让一个问题更加激化,那就是数据量增长迅猛,存储成本不断提高,因此,在有限的投入之下,要想做到高效查询、灾难备份、数据保护和便捷管理等,可能早已让预算捉襟见肘。数据是业务运转的基础,不管一个企业的数据量是多少,这些数据都是关乎着企业命脉的宝贵资产。随着业务不断发展,数据量的增长是十分惊人的,在庞大的数据量背后,企业面临的数据维护问题主要涉及存储空间不足、存储维护成本高昂、庞大的数据处理对主机的压力和数据安全等这几个方面。

1Hadoop简述

1.1Hadoop的核心

Hadoop[1]的核心是HDFS和MapReduce。HDFS 实现存储,而MapReduce实现分析处理。HDFS和MapReduce实现是完全分离的,并不是没有HDFS就不能进行MapReduce运算。

1.1.1HDFS

1)设计原理。

构建一个非常庞大的分布式文件系统,在集群中节点失效是正常的。节点的数量在Hadoop中不是固定的。单一的文件命名空间,保证数据的一致性,一次写入多次读取。典型的64 MB的数据块大小,每一个数据块在多个DataNode有复制。客户端通过NameNode得到数据块的位置,直接访问DataNode获取数据。

2)文件操作。

HDFS [2]并不是一个万能的文件系统。它的主要目的是支持以流的形式访问写入的大型文件。如果客户机想将文件写到 HDFS 上,首先需要将该文件缓存到本地的临时存储。如果缓存的数据大于所需的 HDFS 块大小,创建文件的请求将发送给 NameNode。NameNode 将以 DataNode 标识和目标块响应客户机。同时也通知将要保存文件块副本的 DataNode。当客户机开始将临时文件发送给第一个 DataNode 时,将立即通过管道方式将块内容转发给副本 DataNode。客户机也负责创建保存在相同 HDFS 名称空间中的校验和checksum文件。在最后的文件块发送之后,NameNode 将文件创建提交到它的持久化元数据存储(在 EditLog 和 FsImage 文件)。

1.1.2MapReduce

1) 概念。

简单的一句话解释MapReduce[3]就是任务的分解与结果的汇总。 MapReduce是一种编程模型,主要包括2个步骤:Map和Reduce。一个MapReduce作业通常会把输入的数据集切分为若干独立的数据块,由Map任务以完全并行的方式处理。框架会对Map的输出进行排序,然后把结果输入给Reduce任务。每一步都有keyvalue对作为输入和输出,MapReduce数据流如图1所示。

图1MapReduce数据流(1)Map阶段的keyvalue对的格式是由输入的格式决定的。

(2)Map阶段的输出keyvalue对的格式必须同Reduce阶段的输入keyvalue对的格式相对应。

(3)Reduce过程中,将Map过程中的输出作为其输入。

2) 实现过程。

一个代表客户机在单个主系统上启动的 MapReduce 应用程序称为 JobTracker。类似于 NameNode,它是 Hadoop 集群中唯一负责控制 MapReduce 应用程序的系统。在应用程序提交之后,将提供包含在 HDFS 中的输入和输出目录。JobTracker 使用文件块信息(物理量和位置)确定如何创建其他 TaskTracker 从属任务。MapReduce 应用程序被复制到每个出现输入文件块的节点。将为特定节点上的每个文件块创建一个唯一的从属任务。每个 TaskTracker 将状态和完成信息报告给 JobTracker。client提交MapReduce作业,JobTracker协调作业的运行,TaskTracker运行作业划分后的任务。Hadoop并没有将存储移动到某个位置以供处理,而是将处理移动到存储。这通过根据集群中的节点数调节处理,因此支持高效的数据处理。

3) MapReduce与关系数据库管理系统的对比。

MapReduce视为关系数据库管理系统的补充。2个系统的差异主要表现如下:

MapReduce比较适合以批处理的方式处理需要分析整个数据集的问题,尤其是即席分析。RDBMS适用于“点查询”和更新,数据集被索引后,数据库系统能够提供低延迟的数据检索和快速的少量数据更新。MapReduce适合一次写入、多次读取数据的应用,而关系型数据库更适合持续更新的数据集。MapReduce对于非结构化或半结构化数据非常有效,因为在处理数据时才对数据进行解析(它属于的键和值不是数据固有的属性,而是由分析数据的人员选择的)。关系型数据往往是规范的,而MapReduce是一个线性可伸缩的编程模型。

1.2Hadoop概念

Hadoop是Apache的一个分布式计算开源框架,它可以运行于大中型集群的廉价硬件设备上,为应用程序提供了一组稳定可靠的接口。同时它是Google集群系统的一个开源项目总称。底层是Google文件系统(GFS)。基于Java语言构建的Hadoop框架实际是一种分布式处理大数据平台[4],其包括软件和众多子项目;是一个分布式系统基础架构项目的总称,并开源提供支持在此基础上进行二次开发。主要产品是HDFS,Hbase,MapReduce。

MapReduce 是分布式数据处理模型和执行环境,运行于大型商用机集群。HDFS 是分布式文件系统,运行于大型商用机集群。Pig 是一种数据流语言和运行环境,用以检索非常大的数据集,运行在MapReduce和HDFS的集群上。Hive 是一个分布式、按列存储的数据仓库,是管理HDFS中存储的数据,并提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据。ZooKeeper 是一个分布式、可用性高的协调服务,提供分布式锁之类的基本服务用于构建分布式应用。Sqoop是在数据库和HDFS之间高效传输数据的工具。Common 是一组分布式文件系统和通用I/O的组件与接口(序列化、JavaRPC和持久化数据结构)。Avro 是一种支持高效,跨语言的RPC以及永久存储数据的序列化系统。

Hadoop的优点可归纳为以下4点:

1) 可扩展性。不论是存储的可扩展还是计算的可扩展都是Hadoop设计的根本;

2) 经济。框架可以运行在任何普通的PC上;

3) 可靠。分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性;

4) 高效。分布式分拣系统的高效数据交互实现以及MapReduce结合Local Data处理的模式,为高效处理海量的信息作了基础准备。

2方案实现

2.1云计算详单系统部署架构

子节点即DataNode根据存储要求计算得出,一般采购内置硬盘较多的机架式服务器。NameNode 必须至少2个节点,一般内存较大的X86服务器。查询服务器必须至少2个节点。管理机1个节点即可。云计算详单系统架构如图2所示。

2.2详单云平台架构

结合分析系统以及详单查询等应用场景,对Hadoop进行组件功能封装,对于流程配置,任务处理采用可视化界面定制,降低使用和二次开发门槛。根据业务支撑系统相关规范和要求,管理Hadoop集群以及所承载的应用,并与BOMC等系统进行对接,完善Hadoop的运维。底层完全采纳开源的内核,但是需要根据应用场景需求进行参数调优,对于Hadoop先天性缺陷通过外挂HA方式进行完善。云平台架构如图3所示。

2.3云详单大数据计算平台

云详单大数据计算平台(OCDataComputing云计算平台)[5]包含基于Map/Reduce的分布式批量计算和基于流式计算技术的分布式实时计算功能,实现海量数据的并行处理。适用于ETL、经营决策、用户行为分析、精准营销、移动互联网等领域的智能数据处理与分析。主要功能特性有:1)海量数据处理能力;2)实时数据处理能力;3)支持计算能力线性扩展;4)系统与数据高可用性;5)处理过程流程化调度;6)处理过程全面监控;7)多种API调用与二次开发接口。

2.4云详单分布式数据库

云详单分布式数据库(OCNoSQL)[6]是分布式文件架构的非关系型数据库系统,其利用低成本硬件提供高性能的数据加载、索引和分析能力,用于海量、多样(结构化、非结构化)、实时的云详单大数据存取场景。如互联网数据存取、实时详单查询业务。云分布式数据库如图4所示。主要功能特性有:1)云详单海量数据存储能力(PB级);2)云详单海量数据秒级查询;3)云详单多维度查询,支持全文检索;4)高可靠,数据冗余备份;5)存储能力线性、动态扩展;6)支持二次开发与多种API调用。

2.5解决方案特点

1)在线可扩展。

相同系统负荷下,数据节点相同配置情况下,系统资源平均空闲率,资源可包括CPU,IO,磁盘存储。新节点自动识别,按OCNoSQL Server端安装新数据节点,预先启动进程,配置Master节点IP,系统自动识别新节点。存储重新均匀分布,集群中新增加一个节点,Hadoop会自动将数据重新均匀分布,而不是只放置新数据。查询请求重新均匀分布,region的分布也会重新自动均匀分布,无业务中断。一次可增加多个节点,可支持到上千个节点。系统扩展能力线性增长,随着节点数量增加,整个集群的处理能力线性增加。

2)高可靠。

HDFS机架识别策略,当数据文件损坏时,会找相同机架上备份的数据文件,如果相同机架上的数据文件坏了会找不同机架备份数据文件。HBASE的REGION快速恢复,当节点损坏时,节点上丢失的region会在其他节点上均匀快速恢复。Master节点的HA机制,当Master主节点损坏后,备节点成为主节点,接管Hadoop的管理工作。等主节点恢复后,可手工切换回去。从而消除单点故障隐患。ZooKeeper保留Master节点的缓存,Master节点损坏不影响查询访问。

3)云详单数据随机均匀部署,并行查询,提高查询效率。

4)吞吐能力大幅提高。

5)业务逻辑与数据存储分离。业务层:业务需求的快速灵活响应,保证系统灵活性,往往需要定制开发。数据层:查询服务的稳定与可靠,查询海量数据快速定位与返回,保证系统基本能力。

3结论

建成的系统通过实验验证,全面的缓存技术支持,支持实时高并发写入与数据读取,数据加载速度大于1 TB/h,支持亿级数据的秒级查询。高效的压缩机制,对于账单详单这类列重复度较高的数据具有极高的压缩比。压缩状态不影响数据读写性能。在启动高级压缩后,最高可到1∶8左右的综合压缩比。通过2份以上的副本与自动同步保证数据高可用性,自动容灾。数据库容量与性能支持在线扩展,自动故障探测和管理,支持 PB级数据库。部署在低成本的x86化PC Server与刀片机上,可支持本地存储而非必须使用昂贵的磁盘阵列。图形化的数据库管理工具,支持全量、增量备份/恢复。支持SQL命令,JDBC,ODBC,WebService等多种接口形式。基于X86的刀片机和机架服务器单位处理能力成本比小型机低;刀片机的设计为X86+内置1 G SCSI硬盘,还需盘阵存储数据,机架服务器可内置大量SATA硬盘,无须盘阵存储数据。TCO进一步降低,降低幅度达85%。计算性能提升833%。已达到性能指标要求,如表1所示。表1云计算详单系统性能

性能云化前云化后提升率/%详单系统的加载性能

指标/M・s-1203050详单系统的单笔

查询性能指标/s0.80.4100详单系统的并发

查询性能指标/个・s-1505001 000详单系统的一次查询

数据量指标/条10 000500 0005 000

参考文献:

[1]栾亚建,黄民,龚高晟,等.Hadoop平台的性能优化研究[J].计算机工程,2010,36(14):262263,266.

[2]曹宁,吴中海,刘宏志,等.HDFS下载效率的优化[J].计算机应用,2010,30(8):20602065,2240.

[3]胡,封俊.Hadoop下的分布式搜索引擎[J].计算机系统应用,2010,19(7):224-228.

[4]程莹,张云勇,徐雷,等.基于Hadoop及关系型数据库的海量数据分析研究[J].电信科学,2010,26(11):47-50.

[5]程苗,陈华平.基于Hadoop的Web日志挖掘[J].计算机工程,2011,37(11):37-39.

[6]向小军,高阳,商琳,等.基于Hadoop平台的海量文本分类的并行化[J].计算机科学,2011,38(10):184-188.