高小普,万麟瑞
(南京航空航天大学计算机科学与技术学院,江苏南京 210016)
自从Hadoop在2008年作为Apache开源项目发布以来,于它结合了成本低、可扩展性佳以及无需构建预定义模式便能灵活地处理任何数据等优点。
商业智能(Business Intelligence,BI)。商业智能的概念于1996年提出。当时将商业智能定义为一类由数据仓库、查询报表、数据分析、数据挖掘、数据备份和恢复等部分组成的、以帮助企业决策为目的技术及其应用。目前,商业智能通常被理解为将企业中现有的数据转化为知识,帮助企业做出明智的业务经营决策的工具。商务智能系统中的数据来自企业其他业务系统[1-3]。
为将企业的绩效管理战略转化成切实可行的计划,需要更高效的计划方案、更优化的资源配置、更透明的企业管理及更细化的责任分担,企业管理者分析和决策行为从“以定性为主”向“以定量为主”转变成为必然。
企业的信息化建设为从定性向定量的转变提供了可能和基础。特别是在电信业,信息化历程较长,信息化水平较高,其发展历程伴随着信息化的发展而一步步提升和加强。随着电信业信息化的不断深入,各大运营商计费、营账、客服、网管等多种业务系统相继建成,拥有并不断产生大量的客户和业务数据,科学管理和合理开发这些内部和外部信息资源,将有助于正确决策,提高企业绩效管理水平,增强企业竞争力[4-7]。
而监控企业的运行、给管理者提供深入的企业洞察力,最终达到提升企业绩效目的的一种信息化手段就是将企业中现有的数据转化为知识,作为帮助企业做出明智的业务经营决策的工具。BI是将企业中的内部数据与外部相关数据通过收集、分析,转变成信息,并将信息应用于商业活动的过程。在BI这个以统一的、综合各类数据信息的平台上,全面的、一致的企业信息视图有助于企业在发现机会后迅速把握机会,并将获得的信息快速转化为可以执行的战略战术。
Hadoop由Apache基金会开发,用户可以在不了解底层细节的情况下,开发分布式程序,能够充分利用集群的威力进行高速运算和数据存储的一个分布式系统基础架构。简单地说来,Hadoop是一个更容易开发、运行和处理大规模数据的软件平台。Hadoop包括一 系 列 子 项 目:HDFS、MapReduce、HBase、Hive、ZooKeeper、Pig等。Hadoop的主要特点有:扩容能力、成本低、高效率、可靠性。
Hadoop框架中最核心的两个子项目是MapReduce和HDFS。MapReduce是 Google提出的一个软件架构,是一个编程模型,用于大规模数据的并行运算,MapReduce就是“任务的分解与结果的汇总”。Hadoop分布式文件系统(Hadoop Distributed File System,HDFS),为分布式计算存储提供了底层支持,是Java版本的GFS开源实现,HDFS有着高容错性的特点,设计用来部署在低廉的硬件上,能够提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。MapReduce的应用方面一般包括:
(1)分布式的Grep。如果输入行匹配给定的样式,map函数就输出这一行,reduce函数负责把中间数据复制到输出。(2)计算URL访问pv。map函数处理web页面请求的记录,输出(URL,1),reduce函数把相同URL的value都加起来,产生一个(URL,记录总数)的对。(3)倒排索引。map函数分析每个文档,然后产生一个(词,文档号)对的序列,reduce函数接受一个给定词的所有对,排序相应的文档ID,并且产生一个(词,文档ID列表)对。所有的输出对集形成一个简单的倒排索引,它可以简单的增加跟踪词位置的计算。(4)TeraSort。map函数从每个记录提取key,并且产生一个(key,record)对,然后进行分布式reduce实现排序。MapReduce一般的运行示意图如图1所示。
图1 MapReduce运行示意图
HDFS采用主从式架构,一个HDFS集群是由一个名字节点(Namenode)和一定数目的数据结点(Datanode)组成。名字节点是一个管理文件的命名空间和调节客户端访问文件的主服务器,数据节点一般是一个节点一个,负责管理节点上附带的存储。HDFS的内部机制是将一个文件分割成一个或多个的块(Block),这些块存储在一组数据节点中。名字节点负责操作文件命名空间的文件或进行目录操作,如打开,关闭,重命名等。它同时确定块与数据节点的映射。数据节点负责来自文件系统客户的读写请求。数据节点在名字节点指挥下执行块的创建、删除和复制。名字节点和数据节点都设计成可以运行在普通的机器上。HDFS体系架构如图2所示。
图2 HDFS体系架构图
HDFS与MapReduce的结合为分布式处理大数据提供强大的支持,当Hadoop集群中的某些服务器出现错误时,整个计算过程并不会立即终止,同时HFDS可保障在整个集群中发生故障错误时的数据冗余。HDFS对存储的数据格式并无苛刻的要求,数据可以是非结构化或其它类别[8-10]。
如今,Hadoop俨然已经成为了互联网公司的新宠,它是目前最受欢迎的在Internet上针对搜索关键字进行网页内容分类的工具,同时它也可以应用在解决许多要求较大伸缩性的问题上。例如,如果要grep一个10 TB的巨型文件,会出现什么情况?在传统的系统上,这将需要很长的时间。如果采用了Hadoop并行执行机制,能大幅提高执行效率。
百度,其Hadoop集群主要用于后端数据训练和计算,目前有4 000个节点,超过10个集群,最大的集群规模在1 000个节点以上。每个节点由8核CPU以及16 GB内存以及12 TB硬盘组成,每天的数据生成量在3 PB以上。规划当中的架构将有超过1万个节点,每天的数据生成量在10 PB以上。百度通过HCE对streaming作业的排序,压缩,解压缩,内存控制进行了优化并提供了C++版的MapReduce接口。
淘宝网,目前有会员约2亿,日均UV高达4 000万,日交易量高达10亿元,每天产生大量的数据,所以部署了一系列不同规模的Hadoop集群。淘宝生产系统所使用的Hadoop集群为目前国内规模最大的Hadoo集群之一。集群规模总容量达 9.3 PB,利用率77.09%,共有1 100台机器,每天处理约18 000道作业,用户数474人,用户组38个。
云计算的出现对电信运营商是一个难得的机遇,开放与融合已经成为未来电信业的发展方向,传统的电信产业链将会产生变革,未来会涌现出大量的云计算运营商,新型业务模式和新的市场细分将因为云计算技术而成为可能。电信运营商需要树立客户需求导向的经营战略,为用户提供集成化的信息和通信技术解决方案而不是单一的产品,才能加快从电信服务提供商向综合信息服务提供商的转型步伐,不断为用户提供高附加值的业务,走向价值链的上游。为实现这样的目标,利用Hadoop,电信运营商在未来BI系统中以下领域将大有可为:(1)数据集成。(2)数据质量。(3)关键KPI指标计算。(4)流计算。(5)Web网页存储和处理。(6)社交媒体数据分析与应用。(7)传统数据仓库的补充。(8)文本数据挖掘。
电信业BI系统的一个典型特征,就是大数据量,电信运营商存储的数据已经开始用PB来计算,数据源也越来越呈现多样化、多渠道的趋势,传统的数据仓库在应对数据激增的挑战时显现出较大的不足,而随着Hadoop技术得到广泛运用,传统结构化数据仓库系统不能解决的非结构化数据将不再成为问题,大数据概念也在不断得到推广,Hadoop与已有业务支撑系统的搭配将成为一种必然的趋势,对于电信运营商来说,需要抓住这一机遇,利用Hadoop等一系列云计算相关技术,将企业各方面运营信息沉淀、提炼成知识,以咨询服务或辅助营销等手段,助力其业务发展,同时提升终端用户的体验和粘性,最终促进整个电信产业链的合作与共赢。
[1]王鹏.云计算的关键技术与应用实例[M].北京:人民邮电出版社,2010.
[2]汤庸,冀高峰,朱君,等.协同软件技术及应用[M].北京:机械工业出版社,2007.
[3]TOM W.Hadoop:The Definitive Guide[M].O'Reilly Media,Inc,2009.
[4]陈国良,安虹,陈崚,等.并行算法实践[M].北京:高等教育出版社,2004.
[5]MICHAEL M.云计算[M].史美林,姜进磊,孙瑞志,等,译.北京:机械工业出版社,2007.
[6]LIU Peng,SHI Yao,FRANCISCM,et al.Grid demo proposal:AntiSpamgird[C].Hong Kong:IEEE International Conference on Cluster Computing,2003.
[7]Hadoop.Hadoop技术论坛[EB/OL].(2010-08-05)[2012 -10 -12]http://www.bbs.hadoopor.com.
[8]DEAN J,GHEMAWAT S.MapReduce:simplifed data processing on large clusters[M].USA:Google,Inc,2004.
[9]LRI.MoGo[EB/OL].(2011 -03 -12)[2012 -01 -01]http://www.lri.fr/~ teytaud/mogo.html.
[10]徐志伟,冯百明,李伟.网格计算技术[M].北京:电子工业出版社,2005.