四年前的硅谷,风投埃里森拿出一亿美金来投资大数据公司,他认为Hadoop技术在未来的若干年中会从底层的数据平台,从传统的关系型数据库进行迁移。数据的分析层会被全新的数据分析工具所替代,可视化层和应用分析会有更多的新工具出现,并认为这个市场将达到几百亿美金的规模。
过去几年,Hadoop的发展非常迅猛。我们常讲大数据的四V特征,Hadoop在大数据处理上表现出的处理量、性能、挖掘能力的提升和碎片化处理能力,使其得到越来越广泛的应用。
一、Hadoop的主流应用场景:数据仓库的主要组成部分
传统的企业有若干个主机,用于销售、运营管理等等,产生的数据首先经过ODS层,将数据从多个业务系统中集中起来,进行清洗、转换等集成操作,然后将过加工的数据进入企业IT架构的核心——数据仓库进行统计、挖掘和分析。最后用可视化工具进行展现。这是传统的企业数据仓库的架构,经常采用主流的甲骨文等数据库技术来实现。
Hadoop作为数据仓库组成部分的四个驱动力
互联网公司早年的时候,是把Hadoop做在数据仓库的核心,比如Facebook早期的时候是从服务器采集是通过实时的日志的采集工具,经过Hadoop把Hadoop作为数据分析工具,呈现把结果放在甲骨文中做展现。
互联网公司之所以这么做,是因为互联网数据量大到在传统的数据库不能处理。现在传统的企业也面临同样的问题,将Hadoop作为数据仓库主要组成部分有四个驱动力:
效率:传统的数据仓库技术已经面临非常繁重的数据分析任务,处理的延迟从一天到了一周。
成本:传统的数据架构成本动辄几千万。Hadoop可以实现成本若干倍的降低。
数据来源多样:视频、音频等企业非结构化数据来源增多。MapReduce对于非结构化或半结构化数据的读取非常有效。
数据分析需求的演进: 数据分析不再只满足于统计。使用Hadoop的技术,能够对数据进行深度的挖掘和分析,实现对未来的预测。
Hadoop改变企业数据仓库架构的线路图
第一步:数据仓库的补充
2011、2012年的时候 Hadoop主要是作为数据仓库的补充在做数据的清洗。这一层Hadoop很擅长。Hadoop的优势是能够把计算任务对全要素进行统计分析,这是方式非常适合简单的场景,早年Hadoop的最佳用途是作为ETL的平台。
第二步:逐渐进入核心
随着Hadoop生态系统逐渐完善,有更多的数字化工具支持Hadoop, Hadoop开始进入数据仓库的核心领域。有些企业开使用Hadoop来直接做数据可视化,在有些行业中已经开始用Hadoop逐渐取代传统的关系数据库来建立数据仓库。从整个的数据仓库的架构来看,有一半的架构已经开始被Hadoop覆盖了。
第三步:Hadoop使资源管理变为可能,最终将取代企业完整的整据仓库
在一两年之内有些企业完整的数据仓库架构都可能会被Hadoop取代掉。
过去企业数据仓库的时候任务很繁重,系统效率低下。造成这种状况的重要原因是,客户把过多的负载放在数据仓库上面,数据仓库本身又没有资源配合的方式。
Hadoop2.0推出了管理框架,使得资源管理变成了可能,使得数据仓库支撑多个部门的数据分析和访问更加高效。举例来说,每个部门的业务都是动态创建虚拟集群实现的,每个集群都有一定的资源配额,这样的配额用时不会超过这个配额,使得用户任何的负载不会影响其他的用户,这成为数据仓库里一个重要的实现,数据仓库完全平滑,24小时不间断运行的保障。过去上千人在访问Hadoop的时候,也是通过调度机制实现的,随着Hadoop2.0的出现和资源管理能力的提升,通过资源管理层可以方便的配置资源。
我们可以设定CPU的内存和存储资源,每个部门使用的时候有配额的最低保障。当另外一个部门的用户上线使用的时候,比如创建了一个集群,这时会把你的部分资源还给后面的第二个用户,原来第一个用户的资源被收缩了,更多的用户进来的时候,第一个用户的资源被进一步收缩,收缩到一个最低的指标。一方面充分保障了每个用户最低资源的配额,第二也保证系统整体运行的情况下可以充分有效利用整体的计算资源。
二、随着云计算和物联网的逐渐兴起,实时流数据的处理将成为关注重点
云计算和物联网使得数据呈现两个主要特点。首先,数据在没有人工干预的情况下24小时不间断的产生;第二数据并发量高,使得单一的统计已经不能满足用户要求,对数据模式的分析和深度挖掘的要求增强
现在的大数据处理不光需要做统计,而是需要做机器学习,快速地检测出异常的状态。
比如在交通行业部署的实时监控平台,这是一个发展得比较成熟的案例,在全国已经得到了广泛部署。其主要用途是把路面上装的摄像机的照片和分析出来的车牌等信息,实时的传送到中心的大集群中,然后把所有的车流信息实时汇总至省级集群部署,通过流处理形成实时的应用,比如说区间测速、实时路况、公安部实时布控的应用等。相关数据也会进入到数据库,对外提供车辆轨迹的查询,实时路况的检索,比如行车分析和交通管理的应用等。
过去在常见的部署架构中由数据集群做实时的处理时,包括应用和查询的功能,数据会经过蜂窝队列,分布量是非常高的,单节点的服务器可以支撑一秒钟十万条结果的插入,基本上是满负荷。
传统的流处理加上Hadoop,可以解耦前端应用和后端的分析应用。由于分布队列的吞吐量很高,可以在几百万个地方写入,可以基本满足上千万传感器同时传送峰值的压力,后端的是流处理的引擎做数据分析。
我们把数据流按时间切片,每个小切片一百毫秒左右。我们需要在数据经过这个流的时候在流上直接做异常检测,包括多种算法,最基本的是希望将这些算法直接移植到流上,实现流式的异常检测。这里面有一个挑战是,刚开始出现的异常可能并不准确,尽量要避免误报的情况,通常会用SQL来做聚合和预先的数据处理,而Spark可以实现小片的批处理流程,我们在小的批量上能够实现延迟是一秒钟内可以发出告警。
这种方式的好处是可以对实时数据和历史数据实现综合的分析,都同在一个数据库中,可以在上面用完整的统计分析的挖掘,包括可以做计算和预测,这些分析超出了以前统计的范畴,而且需要历史数据和实时数据进行统一的分析。这个领域今年可能会是比较热门的领域,预计这个模式在物联网实时处理上得到更加广泛的应用。
三、大数据技术能给我们的生活带来什么
我们把数据源分两大类:
1.人的行为产生的数据:包括网上购物、通过运营商通话、发微信都会留下数据,这些分析无外乎是给客户提供更好的服务,或者是帮助商家更准确的找到客户进行精准营销;
2.机器产生的数据:帮助发现一些客观规律,比如说交通的模式是怎样的,用电的消耗量和气侯和电网的关系是怎样的,也对数据进行分析和能够做实时报警和诊断优化生产线的流程提供依据。
数据分析和挖掘开始出现,目前还不是主流。大数据描绘的场景是能够进行预测,这逐渐开始成为事实。
人流密度实时预警
比如通过对基站的数据基本上可以比较粗的定位人的大致位置。通过对数据进行密度的统计,可以非常迅速的找出区域内部密度的值,基础值是每个基站每英里多少个用户数,这是基站可以提供的数据,利用这个数据可以非常快的知道人群的密度。
也可以利用银联的数据,我们的合作伙伴用银联的数据把上海的商圈都找出来了,商圈是根据过去三个月银联的刷卡记录,根据消费额、消费地点以及消费商户的类别进行统计的,上海14个商圈是比较密集的,有些商圈我们也没去过,比较偏远的反而是商圈。上海的架构看基础是卫星城的架构,和北京不同,周围有很多密集的商圈。
这个数据也可以做人群的预测,商圈是人群密集的地方,随着踩踏事件的出现,公安的客户也来找到我们,发现这个数据对他们很有用,因为我们可以统计节日间实时的刷卡记录,可以判断晚七点到九点消费集中的区域,这些区域是人。
垃圾短信分类
利用流式的机器学习做垃圾短信的分类,在流上做实时的检测,速度是非常快的,可以流上实时的实现。运营商所有的短信经过流式系统可以迅速的判断出哪些消息是垃圾短信,来净化现在运营商的垃圾短信泛滥局面。
消费者行为预测
机器学习类:协同过滤、相似度主要是比较商品间的相似程度进行推荐,一些新的应用也比较有趣,像是基于时序关系的预测。每次消费行为和时间是有关的,一个人经常跑到陆家嘴有一个明显的地方,带着小孩会去海洋公园玩一下,有时看东方明珠看一下,然后去正大广场吃个午饭,这是统计出一个模式,这是时序相关性,我们可以对客户推送一些比较精准的广告。
总结
我们看到Hadoop主要的用途是数据仓库中,未来会逐渐的开始把更多的负载牵到上面来;第二物联网逐渐的兴起,针对一些挑战我们需要在流上做更强的分析和机器学习,这种新的架构也层出不穷;第三是全新的集群的应用。可以预见的是,随着云计算和物联网等技术的不断发展,利用大数据的分析能力实现对未来的洞察将逐渐成为现实。
CIO之家 www.ciozj.com 公众号:imciow