导图社区 大数据知识点学习总结
大数据知识点学习总结,包括大数据概述、大数据应用、技术体系、大数据技术点四部分内容,有兴趣的可以看下哟。
编辑于2022-05-10 22:27:50大数据知识点学习总结
大数据概述
大数据特点
数据体量巨大
从TB级别跃升到PB级别
数据类型繁多
比如网络日志、视频、图片、地理位置信息等等
价值密度低,商业价值高
以视频为例,连续不间断监控过程中,可能有用的数据只有一两秒
处理速度快
1秒定律
大数据特征
全样而非抽样
在过去,由于缺乏获取全体样本的手段,人们发明了“随机调研数据”的方法。<br>理论上,抽取样本越随机,就越能代表整体样本。但问题是获取一个随机样本代价极高,而且很费时。人口调查就是典型一例,一个稍大一点的国家甚至做不到每 年都发布一次人口调查,因为随机调研实在是太耗时耗力了。 但有了云计算和数据库以后,获取足够大的样本数据乃至全体数据,就变得非常容易了。<br>谷歌可以供谷歌流感趋势的原因就在于它几乎覆盖了7成以上的北美搜索市场,而在 这些数据中,已经完全没有必要去抽样调查这些数据:数据仓库,所有的记录都在那里躺着等待人们的挖掘和分析。
效率而 非精确
过去使用抽样的方法,就需要在具体运算上非常精确,因为所谓“差之毫厘便失之千里”。<br>设想一下,在一个总样本为1亿人口随机抽取1000 人,如果在1000 人上的运算出现错误的话,那么放大到1亿中会有多大的偏差。但全样本 时,有多少偏差就是多少偏差而不会被放大。谷歌人工智能专家诺维格,在他的论文中写道: 大数据基础上的简单算法比小数据基础上的复杂算法更加有效。数据分析的目的并非仅仅就是数据分析,而是有其它用途,故而时效性也非常重要。精确的计算是以时间消耗为代价的,但在小数据时代,追求精确是为了避免放大的偏差而不得已为之。但在样本=总体的大数据时代,“快速获得一个大概的轮廓和发展脉络,就要比严格的精确性要重要得多”。
相关而非因果
相关性表明变量A和变量B有关,或者说A变量的变化和B变量的变化之间存在一定的正比(或反比)关系。但相关性并不一定是因果关系(A未必是B的因)。 亚马逊的推荐算法非常有名,它能够根据消费记录来告诉用户你可能会喜欢什么,这些 消费记录有可能是别人的,也有可能是该用户历史上的。但它不能说出你为什么会喜欢的原因。难道大家都喜欢购买A和B,就一定等于你买了A 之后的果就是买B吗?未必,但的确需要承认,相关性很高——或者说,概率很大。 舍恩伯格认为,大数据时代只需要知道是什么,而无需知道为什么,就像亚马逊推荐算法一样,知道喜欢A的人很可能喜欢B但却不知道其中的原因。这就是数据猜想的依据和数据的魅力!
大数据的5个基础方面
可视化分析
大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了。
数据挖掘算法
大数据分析的理论核心就是数据挖掘算法,各种数据挖掘的算法基于不同的数据类型和格式才能更加科学的呈现出数据本身具备的特点,也正是因为这些被全世界统计学家所公认的各种统计方法(可以称之为真理)才能深入数据内部,挖掘出公认的价值。另外一个方面也是因为有这些数据挖掘的算法才能更快速的处理大数据,如果一个算法得花上好几年才能得出结论,那大数据的价值也就无从说起了。
预测性分析能力
大数据分析最终要的应用领域之一就是预测性分析,从大数据中挖掘出特点,通过科学的建立模型,之后便可以通过模型带入新的数据,从而预测未来的数据。
语义引擎
大数据分析广泛应用于网络数据挖掘,可从用户的搜索关键词、标签关键词、或其他输入语义,分析,判断用户需求,从而实现更好的用户体验和广告匹配。
数据质量和数据管理
大数据分析离不开数据质量和数据管理,高质量的数据和有效的数据管理,无论是在学术研究还是在商业应用领域,都能够保证分析结果的真实和有价值。大数据分析的基础就是以上五个方面,当然更加深入大数据分析的话,还有很多很多更加有特点的、更加深入的、更加专业的大数据分析方法。
十大最热门的大数据技术
预测分析
预测分析是一种统计或数据挖掘解决方案,包含可在结构化和非结构化数据中使用以确定未来结果的算法和技术。可为预测、优化、预报和模拟等许多其他用途而部署。随着现在硬件和软件解决方案的成熟,许多公司利用大数据技术来收集海量数据、训练模型、优化模型,并发布预测模型来提高业务水平或者避免风险;当前最流行的预测分析工具当属IBM公司的SPSS,SPSS这个软件大家都已经很熟悉了,它集数据录入、整理、分析功能于一身。用户可以根据实际需要和计算机的功能选择模块, SPSS的分析结果清晰、直观、易学易用,而且可以直接读取EXCEL及DBF数据文件,现已推广到多种各种操作系统的计算机上。
NoSQL数据库
非关系型数据库包括Key-value型(Redis)数据库、文档型(MonogoDB)数据库、图型(Neo4j)数据库;虽然NoSQL流行语火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动。尽管早期的堆栈代码只能算是一种实验,然而现在的系统已经更加的成熟、稳定。
搜索和认知商业
当今时代大数据与分析已经发展到一个新的高度,那就是认知时代,认知时代不再是简单的数据分析与展示,它更多的是上升到一个利用数据来支撑人机交互的一种模式,例如前段时间的围棋大战,就是一个很好的应用、现已经逐步推广到机器人的应用上面,也就是下一个经济爆发点——人工智能,互联网人都比较熟悉国内的BAT,以及国外的apple、google、facebook、IBM、微软、亚马逊等等;可以大致看一下他们的商业布局,未来全是往人工智能方向发展,当然目前在认知商业这一块IBM当属领头羊,特别是当前主推的watson这个产品,以及取得了非常棒的效果。
流式分析
目前流式计算是业界研究的一个热点,最近Twitter、LinkedIn等公司相继开源了流式计算系统Storm、Kafka等,加上Yahoo!之前开源的S4,流式计算研究在互联网领域持续升温,流式分析可以对多个高吞吐量的数据源进行实时的清洗、聚合和分析;对存在于社交网站、博客、电子邮件、视频、新闻、电话记录、传输数据、电子感应器之中的数字格式的信息流进行快速处理并反馈的需求。目前大数据流分析平台有很多、如开源的spark,以及ibm的streams。
内存数据结构
通过动态随机内存访问(DRAM)、Flash和SSD等分布式存储系统提供海量数据的低延时访问和处理;
分布式存储系统
分布式存储是指存储节点大于一个、数据保存多副本以及高性能的计算网络;利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。当前开源的HDFS还是非常不错,有需要的朋友可以深入了解一下
数据可视化
数据可视化技术是指对各类型数据源(包括hadoop上的海量数据以及实时和接近实时的分布式数据)进行显示;当前国内外数据分析展示的产品很多,如果是企业单位以及政府单位建议使用cognos,安全、稳定、功能强大、支持大数据、非常不错的选择。
数据整合
通过亚马逊弹性MR(EMR)、Hive、Pig、Spark、MapReduce、Couchbase、Hadoop和MongoDB等软件进行业务数据整合;
数据预处理
数据整合是指对数据源进行清洗、裁剪,并共享多样化数据来加快数据分析;
数据校验
对分布式存储系统和数据库上的海量、高频率数据集进行数据校验,去除非法数据,补全缺失。<br><br>数据整合、处理、校验在目前已经统称为ETL,ETL过程可以把结构化数据以及非结构化数据进行清洗、抽取、转换成你需要的数据、同时还可以保障数据的安全性以及完整性、关于ETL的产品推荐使用datastage就行、对于任何数据源都可以完美处理。
中国大数据产业生态的总体状况概览
产业生态日趋成熟
白皮书显示,当前,我国大数据产业增长迅速,产业规模持续放大,数据服务、基础支撑和融合应用相互交融协力构建了完整的大数据产业链。作为整个大数据产业链的核心环节,基础支撑层预计2017年的规模为2246亿元,增长68.2%;融合应用层是大数据产业未来迅速发展的着力点,预计2017的规模为16998亿元,增长率为30.7%;围绕各类大数据应用需求,数据服务层提供的辅助性的服务,预计2017年的规模为326亿元,增长率为60.6%。<br> <br> 除了产业规模的迅速上升,大数据产业区域集聚发展的格局逐步形成。郭嘉凯介绍道,2016年大数据产业逐步形成了以京津冀、长三角、珠三角、中西部和东北地区为集聚发展区的发展格局。京津冀地区发展情况最好,珠三角地区仅次于北京,长三角地区发展水平也普遍较高。西部地区发展略微落后,但四川和贵州处于发展的领先地位。东三省中,辽宁处于领先位置,起到了一定的辐射带动作用。<br> <br> 郭嘉凯表示,大数据企业在成立时间、产品和服务、行业领域也具有显著的集聚特性。从成立时间来看,2010年以前大数据企业成立速度相对平稳,2010年以后大数据企业成立的步伐明显加快。大数据的产品和服务主要包括数据分析挖掘、场景化解决方案、数据采集和预处理、数据可视化,以及云端产品和服务,用于大数据分析的软件产品和服...务
大数据的产品和服务
数据分析挖掘
场景化解决方案
数据采集和预处理
数据可视化
数据的实际应用案例集中领域
金融
政府
电信
教育
医疗
商业交易营收低迷
产业生态的布局带动相关政府和企业陆续开展大数据交易业务。数据显示,大数据交易业务涉足的主要行业排名前五位的是政府、金融、电信、教育、医疗,这与大数据企业通常的业务主力方向基本吻合。具体来看,大数据交易主要可以分为企业主导的大数据交易平台和政府主导的大数据交易平台,前者约占现有平台的83%,后者约占14.3%。<br> <br> 数据产品的直接销售、提供数据采集和预处理服务、构建平台撮合交易是大数据盈利最主要的三类模式。然而,这些产品和服务并没有催生大规模的商业交易,整个交易行业的营收低迷,约52%的交易平台2016年运营收入低于500万元。<br> <br> 大数据交易营收低迷与交易平台自身运营中存在的问题密不可分。郭嘉凯表示,调研发现,当前的大数据交易平台存在诸多问题,如数据质量和价值评估机制模糊、交易平台准入和验证手段缺失、数据归类方法随意、大数据标准和法律法规不完善等。<br> <br> “这些问题显著制约了交易平台的日常流量,”郭嘉凯表示,“超过57%的平台年流量低于50笔。整体而言,当下的大数据交易行业名大于实,行业较为混乱,对大数据...产
大数据盈利最主要的三类模式
数据产品的直接销售
提供数据采集和预处理服务
构建平台撮合交易
数据价值落地仍需时间
郭嘉凯表示,多数用户认可大数据在“提升运营效率”“辅助决策”和“降低成本”上的积极作用,无论是农业、工业制造业还是服务业,都陆续涌现出一些出色的传统企业,通过应用大数据改变了既有的商业模式,从用户需求出发、从产业链角度整合数据资源,逐步实现企业的数字化和智能化运营。<br> <br> 尽管多数企业组织的决策者已然具备了“用数据驱动业务”的意识,但是,实际操作中,数据价值的真正落地还存在困难。白皮书显示,企业多基于成本收益和企业战略发展等因素的考虑,将大数据软硬件及服务的采购费用限制在300万元以下,这其中,有近47.5%的企业低于100万元。<br> <br> 分行业来看,大数据的建设水平因行业而异,其中,互联网和金融行业持续领跑,大数据理念渗透和应用项目落地实施的程度最高。交通运输、医疗健康、公共管理、能源、制造和科教等行业的大数据应用处于中端,而住宿餐饮和农业等行业处于低端。这些中低端行业内的企业对大数据的应用普遍较为谨慎,它们多缺乏独立而有效的数据团队,对大数据分析的投入往往谨慎而敏感。<br> ...
大数据建设水平
互联网和金融行业持续领跑,大数据理念渗透和应用项目落地实施的程度最高
交通运输、医疗健康、公共管理、能源、制造和科教等行业的大数据应用处于中端
宿餐饮和农业等行业处于低端
中低端行业内的企业对大数据的应用普遍较为谨慎,它们多缺乏独立而有效的数据团队,对大数据分析的投入往往谨慎而敏感。
企业形成对大数据项目费用的敏感性
一方面是由于项目实施成本高,这与自行建设分析平台和自行组织并培养数据分析团队有直接的关系
另一方面则是由于企业战略的模糊和企业组织结构变革滞后等原因的掣肘
大数据应用
案例分析
尿布与啤酒
第一个案例发生在一家超市里面,人们发现了一个有趣的现象:尿布与啤酒这两种风马牛不相及的商品居然摆在一起。但这一奇怪的举措居然使尿布和啤酒的销量大幅增加了。这可不是一个笑话,而是一直被商家所津津乐道的发生在美国沃尔玛连锁超市的真实案例。原来,美国的妇女通常在家照顾孩子,所以她们经常会嘱咐丈夫在下班回家的路上为孩子买尿布,而丈夫在买尿布的同时又会顺手购买自己爱喝的啤酒。这个发现让商家决定将啤酒与尿布摆放在一起,结果带来了两者销售量的剧增。
淘宝促销时间
第二个案例发生在淘宝:有数据显示,每一天上网高峰期主要集中在中午12点之后和晚上的12点之前。研究人员发现,出现这种“怪现象”的原因是因为现代人普遍睡觉前都会有上网的习惯,于是有些淘宝商家就利用消费者这种“强迫症”在晚上12点进行促销秒杀活动,带动销量的倍增。
公交一人一座
第三个案例发生在我们的日常生活中:按照惯例,我们普通市民想要乘坐公共巴士,就必须到指定的巴士站被动的等待,有时候遇到路上塞车,等上个把小时的事情时有发生,而现在通过数据信息化手段可以直接进行客源组织,为处于相同区域、相同出行时间、具有相同出行需求的人群量身定做公共交通服务,并享受”一人一座“的定制服务,着实为出行提供了不少便利。
行业应用
金融
本质是信用,评估贷款风险
电信
客户生命周期管理,客户关系化管理
健康
可穿戴设备,健康云帮助智能设备,帮助人们健康预测,打通数据,快速响应
媒体广告
更科学的媒介选择,效果评估服务等
零售服务
店址选择,天气数据加入物流模式
交通
交通管理,为保险公司提供风险评估
政府
自然源分析,舆情检测服务
智慧城市
智慧交通、智慧医疗、平安城市等
房地产
通过大数据平台挖掘潜在客户,精准营销服务
家居家电
智能摄像头家里发生的各种情况、食品购需,家里情况了解
技术体系
大数据生命周期
图1展示了一个典型的大数据技术栈。底层是基础设施,涵盖计算资源、内存与存储和网络互联,具体表现为计算节点、集群、机柜和数据中心。在此之上是数据存储和管理,包括文件系统、数据库和类似YARN的资源管理系统。然后是计算处理层,如hadoop、MapReduce和Spark,以及在此之上的各种不同计算范式,如批处理、流处理和图计算等,包括衍生出编程模型的计算模型,如BSP、GAS 等。数据分析和可视化基于计算处理层。分析包括简单的查询分析、流分析以及更复杂的分析(如机器学习、图计算等)。查询分析多基于表结构和关系函数,流分析基于数据、事件流以及简单的统计分析,而复杂分析则基于更复杂的数据结构与方法,如图、矩阵、迭代计算和线性代数。一般意义的可视化是对分析结果的展示。但是通过交互式可视化,还可以探索性地提问,使分析获得新的线索,形成迭代的分析和可视化。基于大规模数据的实时交互可视化分析以及在这个过程中引入自动化的因素是目前研究的热点。<br>有2个领域垂直打通了上述的各层,需要整体、协同地看待。一是编程和管理工具,方向是机器通过学习实现自动最优化、尽量无需编程、无需复杂的配置。另一个领域是数据安全,也是贯穿整个技术栈。除了这两个领域垂直打通各层,还有一些技术方向是跨了多层的,例如“内存计算”事实上覆盖了整个技术栈。
文件系统
HDFS(Hadoop)
Linux Ext4/NFS
数据管理
数据仓库(InfoBright)
Cassandra
PostGreSQL/Mysql
分结构化数据 全文检索
Elastic Search
业务计算
分布式技术(Spark)
机器学习
类sql检索
NLP处理API
数据订阅
ELK Lettle
业务规则引擎
流式实时计算(Storm)
分析工具
统计性分析
SPSS
SAS
R
数据挖掘
SPSS Modeler
Weka
可视化分析
TableAU
在线可视化
ECharts
D3
工具/语言
JAVA
Python
大数据技术生态
Hadoop生态体系
Ambari
安装部署工具
Zookeeper
分布式协调服务
Hbase
分布式数据库
Oozie
作业调度系统
Hive
数据仓库
Pig
工作流引擎
Mahout
数据挖掘库
MapReduce
分布式计算框架
HDFS
分布式存储系统
Sqoop
数据库TEL工具
Flume
日志收集
Spark生态体系
Spark 是开源的类Hadoop MapReduce的通用的数据分析集群计算框架,用于构建大规模、低延时的数据分析应用,建立于HDFS之上。Spark提供强大的内存计算引擎,几乎涵盖了所有典型的大数据计算模式,包括迭代计算、批处理计算、内存计算、流式计算(Spark Streaming)、数据查询分析计算(Shark)以及图计算(GraphX)。Spark 使用Scala 作为应用框架,采用基于内存的分布式数据集,优化了迭代式的工作负载以及交互式查询。与Hadoop 不同的是,Spark 和Scala 紧密集成,Scala 像管理本地collective 对象那样管理分布式数据集。Spark支持分布式数据集上的迭代式任务,实际上可以在Hadoop文件系统上与Hadoop一起运行(通过YARN、Mesos等实现)。另外,基于性能、兼容性、数据类型的研究,还有Shark、Phoenix、Apache Accumulo、Apache Drill、Apache Giraph、Apache Hama、Apache Tez、Apache Ambari 等其他开源解决方案。预计未来相当长一段时间内,主流的Hadoop平台改进后将与各种新的计算模式和系统共存,并相互融合,形成新一代的大数据处理系统和平台。
Spark提供强大的内存计算引擎
迭代计算
批处理计算
内存计算
流式计算(Spark Streaming)
数据查询分析计算(Shark)
图计算(GraphX)
应用框架
Scala
Spark 使用Scala作为应用框架,采用基于内存的分布式数据集,优化了迭代式的工作负载以及交互式查询。与Hadoop 不同的是,Spark 和Scala紧密集成,Scala 像管理本地collective 对象那样管理分布式数据集。 Spark支持分布式数据集上的迭代式任务,实际上可以在Hadoop文件系统上与Hadoop一起运行(通过YARN、Mesos等实现)
基于性能、兼容性、数据类型的研究
Shark
Phoenix
Apache Accumulo
Apache Drill
Apache Giraph
Apache Hama
Apache Tez
Apache Ambari
Apache Mesos
Apache Mesos是Apache孵化器中的一个开源项目,使用ZooKeeper实现容错复制,使用Linux Containers 来隔离任务,支持多种资源计划分配(内存和CPU)。提供高效、跨分布式应用程序和框架的资源隔离和共享,支持Hadoop、MPI、Hypertable、Spark 等
Apache 的YARN
YARN 又被称为MapReduce 2.0,借鉴Mesos,YARN 提出了资源隔离解决方案Container,提供Java 虚拟机内存的隔离。对比MapReduce1.0, 开发人员使用ResourceManager、ApplicationMaster与NodeManager代替了原框架中核心的JobTracker和TaskTracker。在YARN平台上可以运行多个计算框架,如MR、Tez、Storm、Spark等
Google 的Borg
腾讯搜搜的Torca
Facebook Corona
大数据采集与预处理
在大数据的生命周期中,数据采集处于第一个环节。根据MapReduce产生数据的应用系统分类,大数据的采集主要有4种来源:管理信息系统、Web信息系统、物理信息系统、科学实验系统。对于不同的数据集,可能存在不同的结构和模式,如文件、XML 树、关系表等,表现为数据的异构性。对多个异构的数据集,需要做进一步集成处理或整合处理,将来自不同数据集的数据收集、整理、清洗、转换后,生成到一个新的数据集,为后续查询和分析处理提供统一的数据视图。针对管理信息系统中异构数据库集成技术、Web 信息系统中的实体识别技术和DeepWeb集成技术、传感器网络数据融合技术已经有很多研究工作,取得了较大的进展,已经推出了多种数据清洗和质量控制工具,例如,美国SAS公司的Data Flux、美国IBM 公司的Data Stage、美国Informatica 公司的Informatica Power Center。
大数据采集来源
于不同的数据集,可能存在不同的结构和模式,如文件、XML、树、关系表等,表现为数据的异构性。对多个异构的数据集, 需要做进一步集成处理或整合处理,将来自不同数据集的数据收集、整理、清洗、转换后,生成到一个新的数据集,为后续查询和分析处理提供统一的数据视图
管理信息系统
Web信息系统
物理信息系统
科学实验系统
技术领域
管理信息系统中异构数据库集成技术
Web信息系统中的实体识别技术和DeepWeb集成技术
传感器网络数据融合技术
数据清洗和质量控制工具
Data Flux
Data Stage
Informatica Power Center
大数据存储与管理
传统的数据存储和管理以结构化数据为主,因此关系数据库系统(RDBMS)可以一统天下满足各类应用需求。大数据往往是半结构化和非结构化数据为主,结构化数据为辅,而且各种大数据应用通常是对不同类型的数据内容检索、交叉比对、深度挖掘与综合分析。面对这类应用需求,传统数据库无论在技术上还是功能上都难以为继。因此,近几年出现了oldSQL、NoSQL 与NewSQL 并存的局面。总体上,按数据类型的不同,大数据的存储和管理采用不同的技术路线,大致可以分为3类。第1类主要面对的是大规模的结构化数据。针对这类大数据,通常采用新型数据库集群。它们通过列存储或行列混合存储以及粗粒度索引等技术,结合MPP(Massive Parallel Processing)架构高效的分布式计算模式,实现对PB 量级数据的存储和管理。这类集群具有高性能和高扩展性特点,在企业分析类应用领域已获得广泛应用;第2类主要面对的是半结构化和非结构化数据。应对这类应用场景,基于Hadoop开源体系的系统平台更为擅长。它们通过对Hadoop生态体系的技术扩展和封装,实现对半结构化和非结构化数据的存储和管理;第3类面对的是结构化和非结构化混合的大数据,因此采用MPP 并行数据库集群与Hadoop 集群的混合来实现对百PB 量级、EB量级数据的存储和管理。一方面,用MPP 来管理计算高质量的结构化数据,提供强大的SQL和OLTP型服务;另一方面,用Hadoop实现对半结构化和非结构化数据的处理,以支持诸如内容检索、深度挖掘与综合...分
按数据类型的不同,大数据的存储和管理采用不同的技术路线
大规模的结构化数据
MPP
半结构化和非结构化数据
Hadoop
结构化和非结构化混合的大数据
MPP & Hadoop
大数据计算模式与系统
计算模式的出现有力推动了大数据技术和应用的发展,使其成为目前大数据处理最为成功、最广为接受使用的主流大数据计算模式。然而,现实世界中的大数据处理问题复杂多样,难以有一种单一的计算模式能涵盖所有不同的大数据计算需求。研究和实际应用中发现,由于MapReduce主要适合于进行大数据线下批处理,在面向低延迟和具有复杂数据关系和复杂计算的大数据问题时有很大的不适应性。因此,近几年来学术界和业界在不断研究并推出多种不同的大数据计算模式。<br>所谓大数据计算模式,即根据大数据的不同数据特征和计算特征,从多样性的大数据计算问题和需求中提炼并建立的各种高层抽象(abstraction)或模型(model)。例如,MapReduce 是一个并行计算抽象,加州大学伯克利分校著名的Spark系统中的“分布内存抽象RDD”,CMU 著名的图计算系统GraphLab 中的“图并行抽象”(Graph Parallel Abstraction)等。传统的并行计算方法,主要从体系结构和编程语言的层面定义了一些较为底层的并行计算抽象和模型,但由于大数据处理问题具有很多高层的数据特征和计算特征,因此大数据处理需要更多地结合这些高层特征考虑更为高层的计算模式。<br>根据大数据处理多样性的需求和以上不同的特征维度,目前出现了多种典型和重要的大数据计算模式。与这些计算模式相适应,出现了很多对应的大数据计算系统和工具。由于单纯描述计算模式比较抽象和空洞,因此在描述不同计算模式时,将同时给出相应的典型计算系统和工具,如表1所示,这将有助于对计算模式的理解以及对技术发展现状的把握,并进...一
典型大数据计算模式
大数据查询分析计算
批处理计算
流式计算
迭代计算
图计算
内存计算
大数据分析与可视化
因而与传统的OLAP相比较,基于机器学习的大数据分析具有自己独特的特点
迭代性
由于用于优化问题通常没有闭式解,因而对模型参数确定并非一次能够完成,需要循环迭代多次逐步逼近最优值点
容错性
机器学习的算法设计和模型评价容忍非最优值点的存在,同时多次迭代的特性也允许在循环的过程中产生一些错误,模型的最终收敛不受影响。
参数收敛的非均匀性
模型中一些参数经过少数几轮迭代后便不再改变,而有些参数则需要很长时间才能达到收敛。
演变过程
传统的分布式计算框架MPI(message passing interface,信息传递接口)
传统的分布式计算框架MPI(message passing interface,信息传递接口)虽然编程接口灵活功能强大,但由于编程接口复杂且对容错性支持不高,无法支撑在大规模数据上的复杂操作,研究人员转而开发了一系列接口简单容错性强的分布式计算框架服务于大数据分析算法,以MapReduce、Spark和参数服务器ParameterServer等为代表。
MapReduce
分布式计算框架MapReduce将对数据的处理归结为Map和Reduce两大类操作,从而简化了编程接口并且提高了系统的容错性。但是MapReduce受制于过于简化的数据操作抽象,而且不支持循环迭代,因而对复杂的机器学习算法支持较差,基于MapReduce的分布式机器学习库Mahout需要将迭代运算分解为多个连续的Map 和Reduce 操作,通过读写HDFS文件方式将上一轮次循环的运算结果传入下一轮完成数据交换。在此过程中,大量的训练时间被用于磁盘的读写操作,训练效率非常低效。
Spark
为了解决MapReduce上述问题,Spark 基于RDD 定义了包括Map 和Reduce在内的更加丰富的数据操作接口。不同于MapReduce 的是Job 中间输出和结果可以保存在内存中,从而不再需要读写HDFS,这些特性使得Spark能更好地适用于数据挖掘与机器学习等需要迭代的大数据分析算法。基于Spark实现的机器学习算法库MLLIB已经显示出了其相对于Mahout 的优势,在实际应用系统中得到了广泛的使用。
参数服务器
近年来,随着待分析数据规模的迅速扩张,分析模型参数也快速增长,对已有的大数据分析模式提出了挑战。例如在大规模话题模型LDA 中,人们期望训练得到百万个以上的话题,因而在训练过程中可能需要对上百亿甚至千亿的模型参数进行更新,其规模远远超出了单个节点的处理能力。为了解决上述问题,研究人员提出了参数服务器(Parameter Server)的概念,如图5所示。在参数服务器系统中,大规模的模型参数被集中存储在一个分布式的服务器集群中,大规模的训练数据则分布在不同的工作节点(worker)上,这样每个工作节点只需要保存它计算时所依赖的少部分参数即可,从而有效解决了超大规模大数据分析模型的训练问题。目前参数服务器的实现主要有卡内基梅隆大学的Petuum、PSLit等。
可视化
在大数据分析的应用过程中,可视化通过交互式视觉表现的方式来帮助人们探索和理解复杂的数据。可视化与可视分析能够迅速和有效地简化与提炼数据流,帮助用户交互筛选大量的数据,有助于使用者更快更好地从复杂数据中得到新的发现,成为用户了解复杂数据、开展深入分析不可或缺的手段。大规模数据的可视化主要是基于并行算法设计的技术,合理利用有限的计算资源,高效地处理和分析特定数据集的特性。通常情况下,大规模数据可视化的技术会结合多分辨率表示等方法,以获得足够的互动性能。在科学大规模数据的并行可视化工作中,主要涉及数据流线化、任务并行化、管道并行化和数据并行化4 种基本技术。微软公司在其云计算平台Azure 上开发了大规模机器学习可视化平台(Azure Machine Learning),将大数据分析任务形式为有向无环图并以数据流图的方式向用户展示,取得了比较好的效果。在国内,阿里巴巴旗下的大数据分析平台御膳房也采用了类似的方式,为业务人员提供的互动式大数据分析平台。
大数据平台架构技术选型与场景运用
大数据平台内容
数据源往往是在业务系统上,大多数做数据分析的时候,不会直接对业务的数据源进行处理,这时就需要数据采集。<br><br>采集到数据之后,基于数据源的特点把这些数据存储下来。<br><br>最后根据存储的位置做数据分析和处理。<br><br>整个大的生态圈的核心就是数据采集、数据存储和数据分析。
数据采集
数据存储
数据分析
数据源的特点
内部数据
内部数据来自企业系统内部,可以采用主动写入技术,从而保证变更数据及时被采用。
外部数据
外部数据分为API调用和网络爬虫。
非结构化数据&结构化数据
关系型数据库、非关系型数据库
不变可添加
如果数据源的数据是不变的,或者只允许添加,则采集会变得非常容易, 同步时只需要考虑最简单的增量同步策略,维持数据的一致性也变得相对容易。
可修改可删除
数据源的数据有些可能会修改或删除,尤其是许多维表经常需要变动。 要对这样的数据进行分析处理,最简单的办法就是采用直连形式。如果要进行数据采集,就要考虑同步问题
大数据量
数据存储的技术选型
舆情分析
针对某手机品牌的舆情分析。客户提出的需求是能够对舆情数据进行全文本搜索。舆情数据最高可能达到70亿条,而全文本搜索的性能指标要求响应时间控制在10s以内。<br><br>爬虫爬到kafka里面,进行流处理去虫去噪,再做语义分析,语义分析完之后将舆情数据写入ES,全量数据写入HDFS。
商业智能产品
聚合运算把数据源采集存储的时候,是基于列的运算,而传统数据库是行式存储。行式存储针对于列的运算需要全表才能拿到,这时选择用parquet。因为parquet是以列式方式做存储,所以做统计分析很快。但parquet执行查询会很慢,没有优势。
Airbnb的大数据平台
Airbnb的数据一部分来自于本身的业务数据在MySQL,还有一部分是大量的事件。数据源不同,处理的方式也不一样。基于日志,就用事件写入kafka;如果是针对MySQL,就用Sqoop,写入HDFS里,并建立Hive的集群。还存了一份数据放入亚马逊的S3。有一部分业务就是对数据合并后放入HDFS做大量的业务查询和业务统计。这时希望用SQL的方式进行查询,会有很多选项,它选择的是Presto。还有一些流式处理或机器学习要用到Spark,选型就会不同。
数据处理的分类
业务角度
查询检索
数据挖掘
统计分析
深度分析
技术角度
batch MapReduce
SQL
流式处理
Machine Learning
DeepLearning
编程模型
离线编程模型
内存编程模型
实时编程模型
大数据技术点
云计算
云服务
PaaS
平台即服务
SaaS
软件即服务
IaaS
础设施即服务,
Openstack
Docker
人工智能
机器学习
聚类
时间序列
推荐系统
回归分析
文本挖掘
决策树
支持向量机
贝叶斯分类
神经网络
大数据处理框架
Spark
RDD
Spark SQL
Spark Streaming
MLLib
Hadoop
用户命令
Archive
创建一个Hadoop档案文件
distcp
能从hadoop文件系统并行复制大量数据,一般用于在两个HDFS集群中传输数据
fsck
运行HDFS文件系统检查工具
jar
运行jar文件,向Hadoop提交作业
特点
Scalable
可拓展
Economical
节约
Efficient
高效
Reliable
可靠
HDFS(分布式文件系统)
分布式文件系统
NameNode
主节点
只有一个
接受用户操作请求
维护文件系统的目录结构
管理文件与block之间的关系,block与DataNode之间的关系
DataNode
从节点
有很多个
存储文件
文件被分成block存储在磁盘上
文件有多个副本
MapReduce(计算框架)
分布式计算框架
JobTracker
主节点
只有一个
接受呼呼提交的技术按任务
把计算任务分配给TaskTrackers执行
监控TaskTrackers的执行情况
TaskTracker
从节点
有很多个
执行JobTracker分配的计算任务
MR任务调度
FIFO批处理队列调度器
Capacity Scheduler 多用户容量调度器
FairScheduler 多用户公平调度器
Yarn(资源管理平台)
Pig(Piglatin 语句到 MapReduce 的映射)
Hive(数据仓库、提供SQL)
Mahout(机器学习算法的 MapReduce 实现库)
其他
Hbase
列式交互式数据库
Hive
MapReduce 的SQL工具
Mahout
数据挖掘工具
包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘’
Zookeeper
高可用
集群管理
Redis
分布式缓存
Flume
高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统
Sqoop
与关系数据库交换数据
Kettle
ELK工具
ELK
ElasticSearch
Logstash
Kibana
Kafka
实时消息队列
Lucene
搜索引擎
Storm
实时计算系统
监控
grafana
influx
prometheus
数据分析挖掘
MATLAB
SPSS
SAS
数据可视化
R
D3.js
ECharts
Excle
zeppelin
hue
数据库
SQL Server
MySQL
MongoDB
Cassandra
Redis
SQLite
bsddb
HBase
编程语言
Python
R
Ruby
算法
一致性
paxos
raft
gossip
数据结构
栈、队列、链表
散列表
二叉树、红黑树、B树
图
常用算法
排序
插入排序
桶排序
堆排序
快速排序
最大字数组
最长公共子序列
最小生成树
最短路径
矩阵的存储和运算