分布式模型与编程大纲

大纲

分布式系统

1. 分布式系统应用
	a. 科学计算:CPU是瓶颈
	b. 数据密集:数据IO是计算过程的瓶颈
	c. 智能家居
	d. 事务处理
	e. 传感网络:扫车牌是否能进门?
2. 纵向扩展: scalue-up (提高单台机器的处理能力)
	a. 异步通信:  成批传输数据
		i. 将check form 从服务器端转移到客户端,可以减轻服务器端的压力,进而可以提高单台机器的处理能力。
		ii. 可能双方的时钟频率不一致
3. 横向扩展:scale-out (增加机器的数量)
4. 事务处理:考虑到并发控制,假如没有事务处理,可以会读到脏数据、丢失数据修改等等

大数据处理

1. 大数据概念:大量化、快速化(双十一购物)、多样化、价值化
2. Web1.0 与 Web2.0的区别:
	a. 前者是只有文本、图像、视频(用户不能发帖,只能看)
	b. 后者用户可以发帖,数据量更大了。
3. 大数据由结构化(10% 在数据库中)和非结构化数据(90%)组成

分布式数据处理系统

1. 分布式数据管理 两大核心技术:
	a. 分布式事务管理:NoSQL/NewSQL
	b. 分布式数据处理:批处理/流计算
2. 进程通信
3. 序列化与压缩
	a. 序列化的三种途径:
		i. 一种持久化格式:一个对象序列化以后他的编码可以存储在磁盘上
		ii. 通信数据格式
	b. 序列化的作用:
		i. 把对象变成一串字节流,是持久化的一种方式(保存在磁盘上)
	c. 序列化机制:将数据转换为连续的byte数据,并且不用担心平台移植性。
	d. 两者都是为了节省空间
	e.  序列化可理解为将一个组合办公桌(对象)按标准拆解为散件,以方便运输(网络上传输),到达目的地后再重新组装成一个整体办公桌,所以序列化的目的不是压缩,而是变成  流以方便网络传输并能重新组装为对象,  后来大家又发现一张桌子有四条腿,不需要运输1111这种方式,改成1,4就可以了,这就是压缩了。
	
4. 支持数据管理的底层系统
	a. 元数据管理系统:Zookeeper
	b. 资源管理系统:Yarn
	c. 分布式文件系统:HDFS
5. 面向分析的分布式数据处理系统
	a. 批处理系统:MapReduce、Spark
	b. 流计算系统:Storm、Spark Streaming
	c. 批处理流计算一体化系统:Google Dataflow、Flink
	
6. 支持领域应用的分布式数据处理系统
	a. 图数据处理系统:Hama、GraphX、Gelly
	b. 可扩展机器学习系统:Mahout、SystemML、Parameter Server、Tensorflow

分布式编程

1. 经典问题:单词计算
2. 分布式并行编程:
	a. 传统并行编程:MPI:
	基于消息传递的并行程序。消息传递指的是并行运行的各个进程具有自己独立的堆栈和代码段,作为互不相关的多个程序独立运行,进程之间的信息交互全然通过显示地调用通信函数来完毕。
	
	b. MapReduce

3. 分布式编程模型
	a. MapReduce (实现<key,value>的键值对)
	b. DAG模型
	c. Dataflow模型(流计算和批处理的一体化)
	d. 流计算模型
	e. 图计算模型(顶点-边)
	f. 迭代模型
	g. 广播变量模型(Kmeans中的参数)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值