大数据分布式计算框架简介
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
服务器的集合
高速互联网络,通用硬件,分布集中
超级计算机
超高速互联网络,专门定制的硬件,分布集中
分布式系统 并行系统
以上名词都可以对应到左边三类系统上
各种名词
4
在线处理,离线处理 流处理(流式处理),批处理(批量处理)
数据存储技术 数据处理技术
实时处理,
流数据,批量数据
统计分析 机器学习
1
大数据分布式计算框架简介
各种名词
2
云平台 数据中心 集群 超级计算机
分布式计算 并行计算 云计算
分布式系统 并行系统
集群计算 高性能计算 超级计算 网格计算
不一定准确的理解
3
互联网连接的计算机
低速互联网络,通用硬件,分布分散
云平台 数据中心 集群 超级计算机 分布式计算 并行计算 云计算 集 群计算 高性能计算 超级计算 网格 计算
10
•
•
•
Spark
11
Berkeley Data Analytics Stack(BDAS)
BDAS是UC Berkeley AMPLab开源的通用并行计算框架 Scala
开发语言
Scala是一种函数式面向对象语言,它融汇了许多前所未有的特性,而同时又运行于JVM 之上。 Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。它也能运行于Java ME, CLDC(Java Platform, Micro Edition Connected Limited Device Configuration)上。还有另一.NET平台的实现,不过该版本更新有些滞后。
小结
25
Hadoop
Apache
Yahoo!
Twister HaLoop Hama
R
Mahout RHdoop
Weka
YALE(RapidMiner) KNIME
Spark Berkeley
Apache
UC
Pentaho
MLBase
Orange
SPSS SAS
通信
数据存储
Hadoop
5
起源
Doug Cutting
Lucene Hadoop这个名字不是一个缩写,而是一个虚构的名字,是Doug的孩子给一个棕黄色的大象玩具的 命名
Google Lab的三篇论文GFS,MapReduce,BigTable —— HDFS,MapReduce,HBase
GraphLab
17
起源
GraphLab 是一个基于图像处理模型的开源图计算框架,由卡内基梅隆大学的 Select 实验室在2010 年提出的。2015年1月8日GraphLab筹得1850万美金, 并改名为Dato,以显示在大数据时代,该计算框架不仅可以建立图表模型,还 能够分析和处理数据。GraphLab提供了一个完整的平台,让机构能使用可扩展 的机器学习系统进行大数据分析,该平台客户包括Zillow、Adobe、Zynga、 Pandora等,它们从其它应用程序中抓取数据,通过推荐系统、情感及社交网 络分析系统等将大数据理念转换为可以使用的预测应用程序。 C++
开发语言
GraphLab
18
wenku.baidu.cometuum
19
起源
卡内基梅隆大学
ICML 2014程序主席 邢波
C++
开发语言
Petuum
20
Eric Xing指出,一方面,很多机器学习学者由于本身训练局限或者习惯思维 的缘故,对系统知识通常并不了解,他们看到一百台机器跟一台机器的差别 只不过乘了一百,中间的代价或者机器的失效几率他们可以都不太考虑,所 以他们的算法主要是针对数学上的正确性或者是迭代算法迭代次数的减少性, 但是他们不会钻研算法到底在一个真实的机器群上怎么运作。 另一方面,系统工程师对机器学习或者统计学习原理、技术并不见得非常精 通,他们所需要实现的目标是尽可能实现极高的迭代输出,修正由于机器造 成的一些损耗,所以他们会发展一些非常可靠、非常高通的技术,而忽视了 机器学习的特点。
Petuum
21
这里用容错性对机器学习程序与普通程序的区别做一个比较。 我们对一组数进行排序,这个过程是不能容错的,必须精密到按步骤进行实 现,一步都不能错。这是传统计算机程序的普遍特点。 机器学习不是精密实现设定好的计划,而是通常实现一个数学优化问题。这 如同爬山,可以从这条路爬,也可以从那条路爬,所以有一种容错性,有容 错性就给了新的机会。走错了以后也不一定要走回去重走。
商业公司
Databricks
Spark
12
MLBase
13
MLBase是Spark生态圈的一部分,专注于机 器学习,包含三个组件:MLlib、MLI、ML Optimizer。 MLlib是Spark的分布式机器学习库。 MLI提供特征提取和算法开发的API,引入更 高层次的机器学习编程抽象。
Mahout
Mahout 是Apache 旗下的一个开源项目,是一个很强大的数据挖掘工具及分布式 机器学习算法的集合, 提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开 发人员更加方便快捷地创建智能应用程序。 Mahout包含的算法实现主要有:推荐(Recommendation),聚类(Clustering), 分类(Classification),频繁子项挖掘等。 Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。这里 说的“解决”是一个初步的概念,很多算法由于各种原因是无法用map-reduce并 行实现的。
ML Optimizer致力于实现机器学习流水线建 立任务的自动化。优化器解决了对包含在MLI 和MLlib中的特征提取和机器学习算法的搜索 问题。目前,ML Optimizer正在积极的开发 过程中。
SparkR
14
SparkR是AMPLab发布的一个R开发包,为Apache Spark提供了轻量的前 端。SparkR提供了Spark中弹性分布式数据集(RDD)的API,用户可以在 集群上通过R shell交互性的运行job。 SparkR应该被看作是R版Spark的轻量级前端,这意味着它不会拥有像 Scala或Java那样广泛的API,但它还是能够在R里运行Spark任务和操作数 据。除了常见的RDD函数式算子reduce、reduceByKey、groupByKey和 collect之外,SparkR也支持利用 lapplyWithPartition 对每个RDD的分区 进行操作。 AMPLab团队已经表现出了今后在SparkR中集成Spark MLlib机器学习类库 的浓厚兴趣,这样一来,算法可以无缝地并行运行而无需特别手动设定哪一 部分的算法可以并行运行
Storm
15
起源
Storm是Twitter开源的一个的实时数据处理框架,它原来是由BackType开发, 后BackType被Twitter收购,将Storm作为Twitter的实时数据分析系统。 Clojure。Clojure是Lisp语言的一种现代方言。类似于 Lisp,Clojure 支持一种 功能性编程风格,但 Clojure 还引入了一些特性来简化多线程编程(一种对创建 Storm 很有用的特性)。Clojure是一种基于虚拟机 (VM) 的语言,在Java虚拟 机上运行。
PDMiner
24
中国科学院计算技术研究所开发了基于Hadoop 的并行分布式数据挖掘平台PDMiner, 这是一个集成各种并行算法的数据挖掘工具平台,包括数据预处理(ETL)、数据挖掘算 法、结果展示等功能。 并行ETL 算法达到了线性加速比;可实现TB级海量数据的预处理及之后的并行挖掘分析处 理,且挖掘算法随节点数线性增加,加速比随之增加。其中的并行计算模式不仅包括算法 之间的并行,而且包括算法内部的并行。 该系统具有运行稳定,容错能力强,扩展性好等特点。目前已用于中国移动通信企业TB 级实际数据的挖掘
Petuum
22
设计可以有两种极端,一端是同步协议,Hadoop和Spark都是这样做的, 这在数学上可证明是对的,但也会造成效率的损失。
另一端是完全不同步,这对程序的收敛性和正确性没有任何保障。在这两端 往往可以做一个权衡。
Petuum采取中间路线,使用一种半同步的技术,让机器在有限的窗口里做 局部运算,用参数值的局部版本做运算,不与其他节点通信。当这个窗口被 突破的时候,就必须停下来等待同步。每一个线程到达窗口边界的时间是随 机的,所以最后结果是所有线程都可以在最大程度上使用窗口做运算。
SparkR
Storm GraphLab Parameter Server PDMiner
Apache CMU CMU CAS
26
Thank You!
Petuum
23
对数据和模型的并行计算进行区别对待 对于系统工程师,数据和模型并没有什么区别,它都是在内存中的一些数字 而已 当数据被并行时,它们之间是不相关的,所以不需要在它们之间进行协调; 而当模型被并行的时候,中间结果实际是相关的,所以不在过程中进行协调, 最后结果就会出错。
这种情况下我们会发现,对数据和模型的并行需要做不同的通讯和系统设计。
开发语言
Storm
16
MapReduce 功能的简单 Storm 拓扑结构 一个普通的 Storm 拓扑结构的概念性架构
•
DAG计算模型
– – – –
Tuple:数据处理单元,一个Tuple由多个Field组成 Stream:持续的Tuple流 Spout:从外部获取数据,输出原始Tuple Bolt:接收Spout/Bolt输出的Tuple,处理,输出新Tuple
Cloudera,MapR,Hortonworks Java
商业公司
开发语言
Hadoop
6
Hadoop
7
Hadoop
Hadoop框架中最核心设计是HDFS和MapReduce。HDFS,即为分布式文件系统, 提供了对大规模数据的存储;MapReduce则提供了对数据的分布式计算。
8
9