昨日,联通研究院处长王志军在第七届“开源中国 开源世界”高峰论坛上分享了Hadoop在电信行业大数据应用的经验。
随着国内3G网络的发展,或者移动通信网络的发展,中国联通目前运营着世界上最大的CDMA网络,流量运营是中国联通一个重要特点。中国联通3G套餐当中流量占比非常非常大,中国联通3G用户流量使用情况也是非常可观的。而目前中国联通遇到一个世纪问题:随着流量的增长,3G流量的争议也迅速的增加。现在3G业务在流量方面的投诉达到了投诉的7-10%,并且最近这半年还在成迅猛的上升趋势,各个省份已经达到了20%。
投诉来源于哪儿呢?
一些用户,特别是一些移动智能手机用户,联通研究院处长王志军以自己为例说明。如我的安卓手机,前一阵子谷歌安卓4.0出来之后发布了新的版本,我的手机在某一天下午某一个时刻进行了自动更新,基本有200兆大小的流量的产生。
如果是普通的3G用户,中国联通资费0.3元/兆,当套餐用光了之后,这次更新可能花费60元,这种更新是在不自觉情况下发生的,用户毫不知情。所以,最终致使用户到中国联通进行投诉:用户认为自己没有使用这个流量,向联通要证据。
目前,电信计费系统流量话单在GGSN设备上产生,是网关设备。这个设备产生流量话单的时候是根据一个流量依据而产生:
第一,达到一定时间,例如2个小时。
第二,达到一定流量大小,比如5兆。
这个流量话单相当于一段时间之内使用流量总合的话单,没有说访问哪个目标的IP地质,没有访问的目的地,只告诉你这个时刻产生了这样的话单,用户当然不愿意,用户说我那天没有使用过手机,没有产生这个流量,这样情况下用户要求退费,或者双倍赔偿,GSN设备,无论是中国联通也好,还是其他运营商也好,采用设备可能来子华为、阿尔卡特,这些设备在全球商用了,GGSN产生的话单在一定意义上之上,出现这种问题是微乎其微的,说不清流量到哪儿去了,运营商作为弱势群体,只能退费或者双倍赔偿。
运营商的难言之隐
联通研究院处长王志军以一个案例进行说明,2011年,中国联通一个用户在0点到4点之间产生巨额流量费用,他认为中国联通既然拿不出证据,以涉嫌欺诈消费者为由向法院提起了诉讼,影响是两方面的。
对用户而言,他也是想知道流量到底什么时候发生的,如果手机的问题,他也知道怎么进行防范,这样就不会发生类似问题,根据客户部门提供的数据,可能因为无法提供商网流量详单造成退费和赔付,会影响到运营商流量计费商务模式,所以我们建立这种系统意义非常大,第一,我们的系统供联通客服人员使用,提供快速查询服务,解决流量投诉的问题,另外,我们也准备向最终用户提供异常的大流量查询服务。再一个问题,上网记录数据本身是数据的金矿,我们可以通过获取上网数据记录对流量进行统计。
对于以上这些问题该如何应对呢?联通研究院处长王志军分析处理问题的难点:上网记录数据是海量数据,经过我们的系统可以分析到,用户每个用上网记录基本几万到几十万,有的用户五六十万,我们现在采用的方案是在网关所有用户流量必经地方采集,分析流量数据,然后上成上网记录话单,话单量非常大。
联通研究院处长王志军表示,例如用移动手机访问新浪网首页,对流量采集设备基本能生成20条左右上网记录话单,如果点iPad新闻链接,恐怕会产生180条上网记录,如果访问淘宝网首页,会产生60条请求和回应,在手机上网记录当中有大量DNS查询和推送服务。以中国联通某一个中等省份公司为例,日均上网记录达到10亿条,每个月的数据接近9T,整个移动互联网也在快速发展。
根据中国联通统计,每隔6个月中国联通用户整体上网流量会翻一番,去年平均3G每用户的流量一年之内翻一番,整个流量增长非常迅速,也带来了上网记录的量非常非常大。
传统IOE方式,IBM小型机,思科数据库存储,EMC存储,思科数据库存储这么大上网记录时候已经不可能了,所以,联想采用开源的Hadoop解决,Hadoop本身是系统架构,也是开源项目,由Apache基金会开发,Hadoop本身最底层是分布式文件系统,这个分布式文件系统叫HDFL,在它之上有分布式处理框架,基于Hadoop整个开源项目,上面构建了结构化的访问数据库,在这之上又提供了类似的数据挖掘工具,另外也提供了一些分布式同步,以及远程调用和序列化工具。
Hadoop+HBase+ MapReduce对于Hadoop分布式文件系统本身来说,重要的出发点在于硬件故障是常态,不是非异常的状态,我们可以摒弃采用IBM小型机方案,Hadoop中数据可以自动复制,一份数据可以复制成三份,第一份在一台服务器上,第二份数据在另外一台机架的另外一台服务器上,第三份数据可能在另外一台机架的另外一台服务器上,作为分布式文件系统,每次请求写入的磁盘和服务器物理地点可能不一样,可以带来高并发的读写请求。
MapReduce框架分成很多数据级,最后再合并处理。HBase分布式数据库是分布式存储系统,主要特点在正它是四维存储系统,传统的数据库是二维表的结构,有行、有列,对它来说,除了有行之外,有列的概念,在列和行之间又可以存放多个版本,在这种情况下相当于四维表结构,好处在于可以灵活的表格结构,每个列组里面的列后来都可以随机应变,我们的采集系统现在在采集一些字段,未来的发展过程中,为了数据挖掘的需要,会采集更多的字段,方便我们在一个结构之下进行更多信息的存储以及后续的处理工作。
HBase本身利用自动复制机制保证Hbase本身存储的高可靠性。我们会做一些数据挖掘工作,除了采用MapReduce技术之外,还采用数据仓库技术,针对海量数据进行高性能查询和分析工作。中国联通已经构建了一个全国集中的一级架构海量数据存储和查询系统,第一,是一级架构,全国所有用户所有上网记录数据都放北京数据中心里,在国内电信行业当中也是首创的方式。
另外一个方式,首先将开源Hadoop、Hbase技术应用商用电信服务系统中来,开源的软件架构基本上没有商用系统的,但是这次是商用系统,系统的构成,包括数据采集、数据入库、数据存储、数据查询和数据分析技术,基本技术采用Hadoop,目前上网记录数据存储一般不小于30分钟,30分钟之前的上网记录现在可以通过我们系统查询到。
这是上网记录详单内容,存储了很多用户上网记录信息,随着系统的发展,为了数据挖掘的需要,联通会进一步提取更多信息存到上网记录系统当中来。
Hadoop三节点 控制数据
整个系统部署情况是这样的,我们采用普通PC服务器部署这个系统,Hadoop本身有三个节点,一个是数据存储节点,现在有178个数据存储节点,每个数据存储节点有14T的容量,集群的监控节点有一台,入库服务节点24台,Web查询应用服务节点20台,在同一个机架上的数据交换采用千兆交换机。这是查询系统的界面,用户详细信息都可以通过这个系统查询出来。
在目前情况下,现在已经部署完成了4个省份,北京、黑龙江、浙江、重庆,四个省份所有用户上网记录都可以上来,每天入库条数超过42亿条用户上网数据记录,每天入库数据量超过1.2T,在这种数据量的情况下,现在已经保存了几个月的上网记录数据,在这种情况下,上网记录数据保存在一张表当中,保存4个省的数据,一个月可能超过1200亿条的数据,在这种情况下,在1200亿条数据当中检索一个用户数据会达到不小于一秒,目前1200亿条只用到15个数据节点,随着178个数据节点上线之后,保存全国31省的数据以及进行快速入库、查询和检索我们认为都没有问题。
现在预估,31省上线之后,每个月用户上网记录超过8千亿条,我们系统明年6月份才可能考虑到下一期扩容工程,在这种情况下,我们相信每个月会有1万亿条数据,保存6个月用户数据,原始数据量会超过6万亿条,目前每条上网记录基本上在300个字节,随着我们把更多的字段加入进来之后,可能平均每条用户上网记录的长度还会增加,可能达到400字节,对整个集群的要求会更高。
联通研究院处长王志军表示,联通第一次采用了开源技术,在此之前,在电信行业当中比较少见。联通采用了Hadoop、HBase,这里面还有用户管理员信息等等。目前,在客服使用当中感觉也是非常非常好的,更重要的是利用这个系统可以做深入的数据挖掘工作。
中国联通在查询用户上网记录之前会征得用户的同意,有可能通过口服开头同意,如果客服后台查询的话,我们可能会通知用户有人要查询其上网记录,在安全方面联通做了考虑