当前课程知识点:大数据平台核心技术 > 第一讲 大数据和ODPS > 主讲人:武永卫 > 大数据处理平台概述(主讲人:武永卫)
各位好
我是清华大学
计算机系的武永卫
欢迎大家学习由清华大学
和阿里云公司
合作开设的大数据平台
核心技术课程
当前全球的数据量
每年正在以60%的速度递增
而据IDC统计
在2020年数据的总量
将达到40个ZB
很快我们也将跨入YB的时代
当前人 机 物三元世纪的
高度融合引发了数据规模的
爆炸式增长
和数据模式的高度复杂化
世界已经进入
网络化的大数据时代
也就是Big Data时代
我们注意到在这个大背景下
从公司战略到产业生态
从学术研究到生产实践
从城镇管理到国家治理
都因为大数据
而发生着本质的变化
而采集到的原始数据
往往是一些零金碎玉
缺乏逻辑
需要通过不同的逻辑方式
进行集成融合
从不同的角度解释和挖掘
才能得出前人所未知的大价值
因此如何从大数据中
得到大价值才是关键所在
为了实现大数据的大价值目标
大数据的技术体系
通常被分为3个层次
最下面的是大数据的
采集与预处理
中间是大数据的存储与管理
最上面是大数据的计算与分析
在这个技术体系当中
大数据平台向下需要管理
和使用好各种存储介质
计算设备以及各种其他的硬件
而向上需要支持
各种不同类型的大数据处理
和计算模式的需求
比如说需要支持图计算
流计算数处理
等多种不同模式
数据量大
是大数据平台的一个难关
但不是最大的挑战
比数据量大更难应对的是
数据的多样性 实时性
不确定性 关联性 抑制性
等各种特性
那么如何利用好这些特性
实现大数据的高效存储管理
和高价值挖掘分析
是大数据平台的核心任务
我们来看一个具体的例子
我们每天也都上网
也都使用像谷歌
facebook的这样的一些产品
而谷歌的广告推荐
正是基于用户所输入的
搜索关键词的精准营销
他利用了搜索关键词
相关的数据分析
进行更精准的广告推荐
类似的facebook也使用
基于像性别 年龄 地区等等
各种用户属性数据
进行广告的精准营销
而阿里小贷和余额宝
则是两个互联网金融的
典型案例
阿里小贷利用数据分析
进行用户贷款准入门槛
和授信额度的审核
余额宝则将社会零散的基金
聚集成为可支付的理财产品
这些都是以数据
为驱动的互联网商业模式
这些商业模式
均需要庞大的用户规模
和网络流量才能得以实现
这就带来了新的技术挑战
也就是大数据的挑战
我们可以再简单看看
上面这个例子
在数据方面的情况
事实上
在计算机和互联网被发明前
所有的文字作品
总共大约也就50PB的信息
而仅2011年
facebook就使用超过
1pb的空间
存储了4千亿张照片
而谷歌每天处理的数据
则超过了20个pb
全球被创建和复制的数据总量
达到了1.8个ZB
而在2013年
仅天猫平台在双11这天
支付宝成交笔数
就是1.71亿笔
这样的数据规模和需求
就要求大数据处理平台软件
需要处理的数据
能支撑指数级增长
数据处理的时效性
正确性和维度要求
也在急速的提高
当前分布式系统由于其可扩展
高可靠和低成本等特性
已经成为互联网公司
和新商业模式下
IT构架的常规选择
大数据平台也不例外
主要采用分布式
而大数据平台采用分布式
与传统的高性能领域的分布式
有一点不同
清华的校友曾在谷歌、腾讯工作
LinkedIn现在的数据分析师王益
在一次访谈中曾经说道
大数据在处理
使用分布式的一个核心理由
是投入更多的机器处理
更大的数据
而不是投入更多的机器
数据大小不变
计算速度更快
我比较认同这个观点
传统的高性能计算的目标
主要是投入更多机器
计算速度更快
大数据与传统的并行
或者高性能计算不同
目的更多的是为了
能处理更大的数据
下面
我们借用一个分布式的例子
来看看分布式系统有哪些挑战
这个例子中的每个人
假设是一台机器
这些人聚集在一起
相邻的两只脚捆在一起
构成了一个集群
目标任务
就是大家一起向前走30米
当然如果能走得快就更好了
这个时候我们会发现
第一个挑战
就是同时性的相对性
什么意思
捆绑在一起的两只腿
需要同时向前移动
而不同的捆绑组
涉及到不同的人
会形成相互之间的牵绊
因此一个人不能同时迈两只脚
也就是会影响到其他人
另外每个人的速度
和加速度不同
也会形成牵绊
因此大家一起协调好
就非常重要
任何一个时刻
不同的人或者机器
确保自己的工作按时完成
且能和大家保持一致
非常重要
第二个挑战难免会有人摔倒
就像有机器会坏掉一样
这时候怎么办
也就是如何容灾
如何做到在一个人摔倒的时候
其他的人不受影响
还能继续工作
而且这个人的工作
还有人能够接替完成
或者此人
能够很快的恢复继续工作
第三点的挑战来自于每个人
或者机器的不同带来的困难
每个人的身高
腿长性别运动技能
以及适应性都不同
就像不同的设备的
CPU网络内存
硬盘等都可能不同一样
在这种情况下
大家如何能保持一致
而且充分发挥各自的优势
为团队作出贡献
就显得格外重要
最后动态环境下的不确定性
带来的挑战比如说
地面不平整
地上有石头
天上会下雨等等
都会造成各种不确定的
意外发生
就像机器可能会断电掉电
网卡会坏掉硬盘坏了等等
都会常态的发生一样
那么如何避免这种情况发生
或者在发生了的时候
如何自动调整等
都是分布式系统
需要面临的挑战性问题
大数据平台面临的问题
总结一下包括
如何实现在线事务处理的同时
保证数据的一致性
和并发性处理的性能
如何针对不同的大数据处理
分析查询等需求
进行有效的
存储组织布局和优化
第三在保证大数据系统
可靠性的前提下
如何减少存储和计算开销
第四针对特定类型的大数据
如更新频繁的时序图数据
如何有效地进行
数据的存储和处理等
第五如何针对复杂的大数据
处理工作流选择合适的
底层存储设备和系统
以达到性能
和存储开销等的一个最优化
等等等等有很多问题需要解决
而现在的各种开源的相关的
大数据平台和系统也有很多
像这张图所展示的
所展示的有Hadoop
Spark Storm
Giraph OceanBase
等等等等
对这些现有的大数据系统
我们进行一下分类
可以简单分为5类
分别是分布式文件系统
半结构化数据存储系统
大数据计算框架和编程模型
图计算和机器学习系统
和类SQL查询系统
当然也有其它一些分类
这个分类
只是我个人的一个理解
不一定完全正确
下面我们简单看一下每一类
都有哪些系统
分布式文件系统
包括了大家所熟知的HDFS
支持FUSE接口
相对轻量级的MooseFS
高性能无单点失效的
文件系统Ceph
以及淘宝文件系统TFS
它适合于小文件存储
兼顾了可扩展性可用性
和性能等
半结构化存储系统
有Hadoop平台上的
基于BigTable
实现的HBase
跨地域的分布式数据库Spanner
高可扩展的分布式Key-Value
数据库Dynamo
可在一致性和性能之间
权衡和调节的Cassandra
以及支持关系型数据查询的
分布式数据库OceanBase
计算框架和编程模型
有Hadoop上的
MapReduce
支持环式数据流
和内存计算的Spark
而Dryad
支持用有向无环图
表示人物间的依赖关系
提供了比较灵活的编程语义
适合流式数据处理的Storm
和数据流计算引擎Naiad等
图计算和机器学习系统有
Hama
分布式计算框架
Giraph
异步图计算框架Graphlab
支持类数据库查询优化的
分布式机器学习系统MLbase
Hadoop上的机器学习框架
Mahout等
类SQL的查询系统则包括了
Hive Shark DryadLINQ Dremel等
上面的现有开源大数据系统
介绍大家就会发现
现在有很多大数据相关的系统
不同的系统
有不同的用途
不同的特征
不同的优势和缺点
我们如何为我们的应用
选择合适的系统
就成为一个问题
我们通过一个选择的例子
来看看
为了避免单点故障
通常可以利用数据冗余
来提高可用性
然而多份数据副本
会导致一致性的问题
而为了解决一致性问题
又会带来性能瓶颈
同时为了应对数据规模增长
还需要进行数据分区
而解决带有分区的一致性
和性能问题的难度
就会进一步增加
因此这就成为了一个
找平衡点的问题
那如何找平衡点呢
事实上平衡点与你
需要解决什么问题
你的业务需求是什么
性能需求是什么
是3秒钟完成
还是30分钟完成相关
综合考虑你所要解决的问题
及解决该问题的实际性能规模
可靠性等多个方面的因素
找到一个平衡点
很重要
总结一下
也就是说
没有最优的技术
只有最优的选择
以应用为出发点
做好最优的选择很重要
别人的选择未必适合你
你的选择一定要有理由
那么我们这门课程
就选择阿里大数据平台为样板
进行大数据平台
核心技术的讲授
每个部分的内容
都请阿里云的技术专家
为大家讲解
这张图给出了
阿里大数据平台的模块图
包含了很多内容非常完整
在下一讲会重点讲解
我就跳过
简单地说
这门课程
将介绍分布式系统的基本原理
设计初衷和实现细节
介绍如何用分布式系统
解决大数据处理的问题
覆盖了多种数据处理的场景
横向比较各个领域的开源系统
讨论同类系统的区别
以及区别产生的原因
课程强调动手实践能力的培养
通过实践解决分布式系统实现
和数据处理领域的常见问题
这是该课程的安排
前面四周
主要讲授
阿里ODPS开放数据
处理服务
分布式存储
资源管理与任务调度
分布式编程模型
第五和六两周
讲离线分布式关系型计算
和全局数据管理与调度
第七 八 九3周讲
流计算的系统设计与实现
内存计算
和分布式机器学习平台
中间有3次实践作业
我现在讲的是这门课的开篇
后面的内容
主要都是阿里的技术专家
为大家讲授
希望大家能够有收获
谢谢大家
-主讲人:武永卫
-主讲人:程永
-QUIZ--作业
-大纲
-初步认识大数据对分布式存储系统的需求
-理解大数据对分布式存储系统的需求
-具体说明大数据对分布式存储系统的需求
-大规模分布式存储的挑战
-小概率事件-Raid卡故障
-分布式存储系统举例
-分布式存储系统重要功能设计要点剖析
-链式写正常流程
-写流程的另一种常见方式:主从模式
-链式写异常流程
-写异常处理的另一种方法-Seal and New
--写异常处理的另一种方法-Seal and New(主讲人:姚文辉)
-读正常流程
-读流程优化-BackupRead
-IO QoS
-数据正确性:checksum
-数据可靠性-Replication
-数据均衡-Rebalance
-垃圾回收-Garbage collection
--垃圾回收-Garbage collection(主讲人:姚文辉)
-Erasure coding
-Erasure coding(3,2)写入和读取过程
--Erasure coding(3,2)写入和读取过程(主讲人:姚文辉)
-元数据管理的高可用性和可扩展性
-元数据管理的高可用性
-Paxos概要
-Raft
-元数据管理的可扩展性
-不同存储介质的特性
-盘古混合存储
-QUIZ--作业
-阿里云飞天分布式调度
-任务调度
-资源调度
-容错机制
-规模挑战
-安全域性能隔离
-分布式调度的发展方向
-QUIZ--作业
-数据格式和抽象
-分布式编程模型
-MapReuduce编程模型
-关系型数据编程模型
-分布式图计算模型
-分布式编程未来展望
-QUIZ--作业
-分布式事务
-分布式一致性算法
-两阶段提交与三阶段提交
-实践--介绍
-关系型计算基本原理_1
-关系型计算基本原理_2
-分布式环境中的连接计算和聚合计算
-其他计算和物理优化
-QUIZ--作业
-提纲
-课程背景介绍
-前序知识
-分布式节点距离计算法则
-数据分布策略
-分布式计算调度
-数据就近原则计算如何容错
-ODPS跨集群数据依赖
-QUIZ--作业
-主讲人:谢德军
--实践2:编写MR完成Group By+Join操作(主讲人:谢德军)
-增量计算和流式计算
-与批量计算的区别
-业界典型系统技术概要分析
-核心技术
-消息机制
-有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制
--有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制(主讲人:强琦)
-StreamSQL
-QUIZ--作业
-软硬件趋势、分布式计算简史与内存计算
-分布式计算
-内存计算
-统一的计算框架
-业界经典系统技术分析-spark&flink
--业界经典系统技术分析-spark&flink(主讲人:强琦)
-QUIZ--作业
-主讲人:褚葳
-QUIZ--作业
-分布式环境下的新问题
-工程实现范例
-课程设计相关问题