当前位置:文档之家› 云计算与大数据-大数据应用与云平台实战

云计算与大数据-大数据应用与云平台实战

在本章中我们为大家介绍6个业界大数据、云计算实践案例。

l大数据:基于开源、机器学习的实时股票预测。

l大数据:IMDG实时内存分析应用场景。

l大数据:数据湖泊之海量视频分析。

l云计算:第二平台到第三平台的应用迁移。

l云计算:混合云云存储管理平台CoprHD。

l云计算:软件定义存储Ceph vs. ScaleIO。

5.1 大数据应用实践5.1.1 基于开源架构的股票行情分析与预测股票市场行情分析与预测一直是数据分析领域里面的重头戏,确切地说IT行业的每一次重大发展的幕后推动者以及新产品(特别是高端产品)的最先尝试者都包含金融行业,特别是证券交易市场,它符合大数据的四大特征:交易量大、频率高、数据种类多、价值高。

在本小节,我们为大家介绍一种完全基于开源软件构建的大数据驱动的股票行情分析与预测系统的实现。

通常我们认为在一个充分共享信息的股票市场内,股票价格的短期走向是不可预测的,因此无论是技术分析(Technical Analysis)还是基本面分析(Fundamental Analysis)都不可能让一只股票在短周期(小时、天、1周或10天)内获得好于市场表现的成绩—以上分析是基于著名经济学家Eugene Fama 在1970年提出的EMH(Efficient Market Hypothesis,有效市场假说)。

以美国证券市场为例,它属于半强型有效市场(Semi-Strong Efficient Market),也就是说美国证券市场价格能够充分地反映投资者可以获得的信息,无论投资人选择何种证券,都只能获得与投资风险相当的正常收益率(除非是基于保密信息的内部交易,而在美国市场,内部交易是被法律严格禁止的)。

有鉴于EMH假说,目前市场绝大多数的交易分析与预测软件都集中精力在以下两个领域寻求突破:l高频交易(HFT,High Frequency Trading)或实时行情预测;l长期趋势预测(>10天)。

因此,我们在本节中设计的股票行情预测系统主要关注实时预测与长期预测。

在这样的系统内,至少有如下三个功能是必须实现的。

l采集:实时股票交易数据导入与存储。

l训练:基于历史数据集的训练、建模。

l预测:结合实时数据与历史数据的决策生成。

图5-1展示了这样的系统的基本数据流程逻辑图。

在设计系统时,我们需要充分考虑系统的并发性与可扩展性。

以单只股票为例,可供分析的数据特征有几十种之多(例如PE ratio、EBITDA、EPS等),而分析的频率与周期可以以天为单位,也可能到秒级甚至毫秒级,如果要对多只股票并发分析,则对系统的吞吐率要求更高。

图5-1 基于机器学习的股票分析(预测)有鉴于此,我们采用了如下开源组件来构建这套系统。

l实时数据采集:Spring XD。

l实时数据分析(IMDG):Apache Geode。

l历史数据存储+分析(NoSQL):Apache HAWQ + Apache Hadoop。

l机器学习、建模、优化:MADLib + R + Spark。

如图5-2所示,整体架构的数据流程及工具链如下。

图5-2 基于开源软件构建的股票分析(预测)系统流程(1)实时数据导入MPP或IMDG集群:Spring XD。

(2)基于机器学习模型的实时数据+历史数据比对分析:Spark MLlib+R(Spark 作为基于内存的分布式计算引擎来处理通过R语言机器学习建模的数据)。

(3)分析结果实时推送至股票交易处理应用端。

(4)实时数据存入历史数据库并进行线下分析(非实时): Apache Hadoop和Apache HAWQ(用于交互式、PB规模高效SQL查询)。

(5)线下分析结果用于更新、调整机器学习模型。

关于机器学习部分,无论是Spark MLlib、Apache MADlib还是R语言,尽管它们支持的底层分布式基础架构大不相同(MLlib跑在Spark之上;MADlib可以支持主流的数据库系统,如PostgreSQL、Pivotal Greenplum以及HAWQ;R语言则是提供了专注于统计计算与制图的工具包),它们都支持基本的学习算法与工具链,例如分类(Classification)、回归(Regression)、聚类(Clustering)、降维(Dimensionality Reduction)、协同过滤(Collaborative Filtering)等。

在机器学习分类层面,通常我们有三种方式:l监督学习(Supervised Learning);l非监督学习(Unsupervised Learning);l增强学习(Reinforcement Learning)。

三者当中,通常监督学习最适合用于股票行情预测。

监督学习算法有很多,简单地列举几个:l逻辑回归(LR,Logistic Regression);l高斯判别分析(GDA,Gaussian Discriminant Analysis);l二次判别分析(QDA,Quadratic Discriminant Analysis);l支持向量机(SVM,Supporting Vector Machine)。

为了能让大数据工作者更好地进行相关实验与实践,笔者的Pivotal同事们还把本股票实时预测分析系统移植到了笔记本电脑之上,如图5-3所示。

与图5-2的唯一区别在于把Apache Hadoop与HAWQ组件去掉,也就是说数据处理完全实时化(实时导入、近实时机器学习模型训练、实时数据比对、实时操作建议推送)。

图5-3 单机版开源股票分析系统5.1.2 IMDG应用场景内存数据网格(In-Memory Data Grid)技术的出现是为了应对日益增长的数据实时处理性的需求。

其中最具代表性的IMDG解决方案当属Pivotal Gemfire (其开源版本为Apache Geode)。

在了解Gemfire/Geode的主要适用场景前,我们先了解一下Gemfire/Geode的系统拓扑架构设计。

Gemfire支持以下三种拓扑结构:(1)点对点(Peer-to-Peer);(2)客户端/服务器(Client/Server);(3)多站点(Multi-Site)。

其中,点对点拓扑结构是所有其他拓扑结构的基础组件,它的最大特点是作为缓存实例(Cache Instance)的Gemfire成员与本地应用进程共享同一个堆(Heap),并且在分布式系统中各成员直接维系通信。

这也是我们认为的最简洁的拓扑结构,如图5-4所示。

图5-4 Gemfire的P2P拓扑结构C/S拓扑结构主要用来做垂直扩展(Vertical Scaling),如图5-5所示。

在这样的拓扑设计中,位于应用进程中的Gemfire客户端只保存一小部分数据,而把剩余的数据留给Gemfire服务器端保存,而多个服务器之间依旧以P2P的方式组网。

这样的设计有两大优点:一个是提供了更好的数据隔离性,另一个是当数据分布造成网络负载沉重的时候,C/S架构通常会提供优于P2P架构的性能。

图5-5 Gemfire的C/S拓扑结构多站点拓扑方案则是一种水平扩展(Horizontal Scaling)方案,也是三种拓扑结构中最为复杂的。

Gemfire的设计理念采用的是跨广域网(WAN)的松散耦合(Loosely Coupled)组网方式。

这样组网的主要优点是,相比那种紧耦合组网方式,各站点相对更为独立,任一站点网络连接不畅或者掉线对于其他站点影响微乎其微。

在多站点拓扑结构中,每个站点内部依然采用的是P2P的拓扑结构,如图5-6所示。

图5-6 Gemfire的Multi-Site拓扑结构Gemfire/Geode的应用场景很广泛,总结起来有如下几大类:(1)高可用、分布式缓存(Distributed Caching);(2)网格计算(Data Grid);(3)交易处理(Transaction Processing);(4)流数据处理、事件触发、通知(Streaming/Event Processing & Notification)。

在交易处理场景中最值得一提的案例是铁道部官网(火车票网上订票服务)。

12306在2013年春节之前的数个月内做的大规模的系统调整是把整个票务查询部分的功能从原有的关系型数据库调整为使用基于Gemfire的IMDG解决方案,其取得的系统性能提升是惊人的,如表5-1所示,查询效率提高了100~1000倍,并发可以达到每秒钟26,000次(等同于每小时可以完成超过9亿次查询,一天可以完成超过200亿次查询),而且系统的造价远远低于原有的以小型机为主的高运维成本架构。

这也充分体现了NoSQL类系统设计与实践在商业领域的巨大潜力!性能12306网站改造前12306网站改造后查询耗时单次~15秒最短1-2毫秒;最长150-200毫秒查询并发并发性差;无法支持高并发万次/秒 – 高峰2.6万/秒可扩展性无法动态增加主机弹性、按需增减主机;数据同步秒级系统架构Unix小型机Linux X86服务器集群系统规模72台Unix系统+一个RDBMS10台主x86服务器 + 10台从x86服务器 + 1个月(2TB)历史票务数据表5-112306系统改造前后对比5.1.3 VADL(视频分析数据湖泊)系统VADL(Video Analytics Data Lake,视频分析数据湖泊)可以看作物联网(IoT)领域中数据量最大、网络与服务器负载最高的一种形式的传感器数据分析与处理系统。

VADL的应用领域相当广泛,例如:(1)智能停车场(Smart Parking);(2)智慧交通(Smart Transportation);(3)智能零售(Smart Retailing);(4)平安城市(Smart City & Smart Safety);(5)智能电网、智能勘探、电信等。

以智能零售为例,星巴克通过视频监控与分析系统可以判断在信用卡交易中是否存在雇员欺诈(Employee Fraud)行为。

其背后的逻辑如下:结合收银台与监控视频,当任何一笔信用卡交易中无顾客出现在视频中,则可推断为疑似雇员欺诈。

更为复杂的海量视频分析应用场景还包括视频搜索引擎(人脸识别、车牌检索)、视频舆情分析(用户生成视频监控、检索,社会舆论导向、趋势分析等)。

在VADL案例中,我们着重解决如图5-7所示的几大问题:(1)如何快速提取数据(Data Ingestion);(2)如何实现多级时延数据分析(Multi- latency Analytics);(3)如何实现可扩展的数据存储(Scalable Storage);(4)如何搭建在云平台之上(Cloud Readiness);(5)如何实现管理、编排与监控的自动化(M&O Automation)。

相关主题