简单分布式系统体系结构介绍

下面的内容是一次培训中的内容,跟大家分享一下。

一、分布式、并行计算、计算机网络
1. 分布式计算:多个节点运算,为同一个目标
2. 并行计算:一个巨型机,并行处理大任务

二、几种互联网时代的分布式结构
1. C/S: Client-Server
2. B/S,逻辑结构分离(三层结构,UI-Logic-Data)
3. Clustered:集群
4. P2P: 点对点
5. Space based(SBA):REST、SOA、EDA (基于可分离的组合)

三、分布式结构发展
1. 集群(Cluster):PBS(1990)局域网,高性能,高可靠,中心节点负责资源定位、任务调度
2. 网格(Grid):GFS(2003)、GoogleBigTable(2006)、Hadoop、HDFS+HBASE、Amazon SimpleDB、CouchDB(2007)
   广域网、高容错、在线扩展能力、中心节点负责资源定位、任务调度
3. 有中心的P2P:BitTorrent(2002)、eMule(2002)、广域网,高容错、在线扩展、中心节点负责资源定位
4. 无中心的P2P:DHT(2006)、Yahoo!YDHT,广域网络,高容错、在线扩展能力

四、分布式发展理解
1. 信息化工业生产:服务提供、运算(产品模型)
2. 互联网分散应用:P2P、专注某一个领域(服务模型)

五、云计算 Cloud Computing (分布式应用之一)
1. 网格计算与云计算的区别和联系,云计算是网格计算的子集,实现类似,云计算是一个很新的概念
2. 公用计算:作为公用服务为公众使用
3. 网格计算:把多个不在一个管理范围内的独立的计算资源组织起来形成“网格(grid)”,用来提供计算或者存储服务

实现:
1. GFS、Hadoop HDFS
2. Google MapReduce、Hadoop MapReduce
3. Google BigTable、Hadoop HBase

六、高性能Web服务方案 (分布式应用之二)

1. 边缘计算:多Web服务器、单数据库、web服务器当作边缘
2. 内容缓存:APC、Memcache、YDBM、查询缓存
3. 数据同步:replication
4. 负载均衡方式:BIG-IP、反向代理、Perlbal(LJ)
5. 分布式文件存储:MogileFS

七、负载均衡方式 Load Balancing
1. NAT网络地址转换
2. DNS域名轮训
3. 反向代理服务器
4. 潜入客户端的应用中的负载均衡
5. 基于TCP/IP的流量均衡
6. 应用依赖的负载均衡

八、分布式数据库 (分布式体系结构应用之三)
1. Mysql ndb: shared-nothing distributed storage
2. Oracle RAC: shared storage, parallel query
3. PostgreSQL pl/proxy: shared-nothing distributed storage + parallel query
4. PostgreSQL pgpool-II: middleware to implement …
5. Myna: Yahoo! SDS
6. Erlang mnesia: 分布式面向对象数据库
7. Amazon SimpleDB、CouchDB: 对Mnesia的封装
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《嵌入式系统设计技术》 Embed System Design Technology 课程基本信息 1.课程名称: 文名:嵌入式系统设计技术 英文名:Embed System Design Technology 2.课程代号: 20229930 3.课程类别: 基础课(选修) 4.学时:51 学分: 3 教学目的及要求 嵌入式系统,一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材.它是以应用为心,软硬件可裁减的,适应应用系统对功能,可靠性,成本,体积,功耗等综合性严格要求的专用计算机系统.简单地说,嵌入式系统系统的应用软件与硬件于一体,类似于PCBIOS的工作方式,具有软件代码小,高度自动化,响应速度快等特点,特别适合于要求实时和多任务的体系.嵌入式系统主要由嵌入式处理器,相关支撑硬件,嵌入式操作系统及应用软件系统等组成,它是可独立工作的"器件",有时又称为"固件". 嵌入式系统几乎包括了生活和工业上的所有电器设备,如掌上PDA,移动计算设备,电视机顶盒,手机上网,数字电视,多媒体,汽车,微波炉,数字相机,家庭自动化系统,电梯,空调,安全系统,自动售货机,蜂窝式电话,消费电子设备,工业自动化仪表与医疗仪器等.因此嵌入式系统开发技术成为现代计算机应用开发工程师必须掌握的知识. 本课程主要教授基于ARM系列CPU的嵌入式系统硬件软件基本设计方法. 教学内容 1.绪论 9 2.ARM7TDMI(-S)结构 9 3.ARM7TDMI(-S)指令集及汇编 6 4.LPC2106/2105/2104硬件结构与功能 6 5.LPC2106/2105/2104外设编程 3 6.CodeWarrior使用 3 7.ARM体系的调试方法 3 8.实时系统概念 3 9.μC/OS-II原理及ARM移植 9 教材 教材名称: 讲课教材自编 教材作者: 唐臻宇 主要参考资料 1.《ARM体系结构与编程》,杜春雷编著,清华大学出版社2003年2月第一版; 2.《ARM微控制器基础与实战》,周立功等编著,北京航空航天大学出版社2003年11月第一版; 3.《μC/OS-II源码公开的实时嵌入式操作系统》,JEAN J.Labrosse著,绍贝贝译,国电力出版社2001年8月第一版; 4.《嵌入式实时操作系统Small RTOS51原理及应用》,陈明计,周立功等编著,北京航空航天大学出版社2004年1月第1版; 5.《USB2.0设备的设计与开发》,边海龙,贾少华编著,人民邮电出版社2004年1月第1版; 6.《CPLD/FPGA可编程逻辑器件应用与开发》,王道县主编,国防工业出版社2004年1月第1版; 7.《Visual Basic 与分布式监控系统―RS-232/485串行通信》,范逸之编著,清华大学出版社2002年1月第1版. 成绩评定 本课程为理论课,考核方式为:闭卷考试.平时成绩占30%;期末考试占70%. 物理科学与技术学院 本科课程教学大纲
自己花钱买的电子书,高清完整版!很实用的教材,读起来一点也不晦涩。 目 录 译者序 前言 第1章 概论 1.1 推动因素 1.2 基本计算机组成 1.3 分布式系统的定义 1.4 我们的模型 1.5 互连网络 1.6 应用与标准 1.7 范围 1.8 参考资料来源 参考文献 习题 第2章 分布式程序设计语言 2.1 分布式程序设计支持的需求 2.2 并行/分布式程序设计语言概述 2.3 并行性的表示 2.4 进程通信与同步 2.5 远程过程调用 2.6 健壮性 第 3 章 分布式系统设计的形式方法 3.1 模型的介绍 3.1.1 状态机模型 3.1.2 佩特里网 3.2 因果相关事件 3.2.1 发生在先关系 3.2.2 时空视图 3.2.3 交叉视图 3.3 全局状态 3.3.1 时空视图的全局状态 3.3.2 全局状态:一个形式定义 3.3.3 全局状态的“快照” 3.3.4 一致全局状态的充要条件 3.4 逻辑时钟 3.4.1 标量逻辑时钟 3.4.2 扩展 3.4.3 有效实现 3.4.4 物理时钟 3.5 应用 3.5.1 一个全序应用:分布式互斥 3.5.2 一个逻辑向量时钟应用:消息的 排序 3.6 分布式控制算法的分类 3.7 分布式算法的复杂性 第4章 互斥和选举算法 4.1 互斥 4.2 非基于令牌的解决方案 4.2.1 Lamport算法的简单扩展 4.2.2 Ricart和Agrawala的第一个算法 4.2.3 Maekawa的算法 4.3 基于令牌的解决方案 4.3.1 Ricart和Agrawala的第二个算法 4.3.2 一个简单的基于令牌环的算法 4.3.3 一个基于令牌环的容错算法 4.3.4 基于令牌的使用其他逻辑结构的 互斥 4.4 选举 4.4.1 Chang和Roberts的算法 4.4.2 非基于比较的算法 4.5 投标 4.6 自稳定 第5章 死锁的预防、避免和检测 5.1 死锁问题 5.1.1 死锁发生的条件 5.1.2 图论模型 5.1.3 处理死锁的策略 5.1.4 请求模型 5.1.5 资源和进程模型 5.1.6 死锁条件 5.2 死锁预防 5.3 一个死锁预防的例子:分布式数据库 系统 5.4 死锁避免 5.5 一个死锁避免的例子:多机器人的 灵活装配单元 5.6 死锁检测和恢复 5.6.1 集式方法 5.6.2 分布式方法 5.6.3 等级式方法 5.7 死锁检测和恢复的例子 5.7.1 AND模型下的Chandy,Misra和Hass 算法 5.7.2 AND模型下的Mitchell和Merritt 算法 5.7.3 OR模型下的Chandy,Misra和Hass 算法 第6章 分布式路由算法 6.1 导论 6.1.1 拓扑 6.1.2 交换 6.1.3 通信类型 6.1.4 路由 6.1.5 路由函数 6.2 一般类型的最短路径路由 6.2.1 Dijkstra集式算法 6.2.2 Ford的分布式算法 6.2.3 ARPAnet的路由策略 6.3 特殊类型网络的单播 6.3.1 双向环 6.3.2 网格和圆环 6.3.3 超立方 6.4 特殊类型网络的广播 6.4.1 环 6.4.2 2维网格和圆环 6.4.3 超立方 6.5 特殊类型网络的组播 6.5.1 一般方法 6.5.2 基于路径的方法 6.5.3 基于树的方法 第7章 自适应、无死锁和容错路由 7.1 虚信道和虚网络 7.2 完全自适应和无死锁路由 7.2.1 虚信道类 7.2.2 逃逸信道 7.3 部分自适应和无死锁路由 7.4 容错单播:一般方法 7.5 2维网格和圆环的容错单播 7.5.1 基于局部信息的路由 7.5.2 基于有限全局信息的路由 7.5.3 基于其他故障模型的路由 7.6 超立方的容错单播 7.6.1 基于局部信息的模型 7.6.2 基于有限全局信息的模型:安全 等级 7.6.3 基
目 录 译者序 前言 第1章 概论 1.1 推动因素 1.2 基本计算机组成 1.3 分布式系统的定义 1.4 我们的模型 1.5 互连网络 1.6 应用与标准 1.7 范围 1.8 参考资料来源 参考文献 习题 第2章 分布式程序设计语言 2.1 分布式程序设计支持的需求 2.2 并行/分布式程序设计语言概述 2.3 并行性的表示 2.4 进程通信与同步 2.5 远程过程调用 2.6 健壮性 第 3 章 分布式系统设计的形式方法 3.1 模型的介绍 3.1.1 状态机模型 3.1.2 佩特里网 3.2 因果相关事件 3.2.1 发生在先关系 3.2.2 时空视图 3.2.3 交叉视图 3.3 全局状态 3.3.1 时空视图的全局状态 3.3.2 全局状态:一个形式定义 3.3.3 全局状态的“快照” 3.3.4 一致全局状态的充要条件 3.4 逻辑时钟 3.4.1 标量逻辑时钟 3.4.2 扩展 3.4.3 有效实现 3.4.4 物理时钟 3.5 应用 3.5.1 一个全序应用:分布式互斥 3.5.2 一个逻辑向量时钟应用:消息的 排序 3.6 分布式控制算法的分类 3.7 分布式算法的复杂性 第4章 互斥和选举算法 4.1 互斥 4.2 非基于令牌的解决方案 4.2.1 Lamport算法的简单扩展 4.2.2 Ricart和Agrawala的第一个算法 4.2.3 Maekawa的算法 4.3 基于令牌的解决方案 4.3.1 Ricart和Agrawala的第二个算法 4.3.2 一个简单的基于令牌环的算法 4.3.3 一个基于令牌环的容错算法 4.3.4 基于令牌的使用其他逻辑结构的 互斥 4.4 选举 4.4.1 Chang和Roberts的算法 4.4.2 非基于比较的算法 4.5 投标 4.6 自稳定 第5章 死锁的预防、避免和检测 5.1 死锁问题 5.1.1 死锁发生的条件 5.1.2 图论模型 5.1.3 处理死锁的策略 5.1.4 请求模型 5.1.5 资源和进程模型 5.1.6 死锁条件 5.2 死锁预防 5.3 一个死锁预防的例子:分布式数据库 系统 5.4 死锁避免 5.5 一个死锁避免的例子:多机器人的 灵活装配单元 5.6 死锁检测和恢复 5.6.1 集式方法 5.6.2 分布式方法 5.6.3 等级式方法 5.7 死锁检测和恢复的例子 5.7.1 AND模型下的Chandy,Misra和Hass 算法 5.7.2 AND模型下的Mitchell和Merritt 算法 5.7.3 OR模型下的Chandy,Misra和Hass 算法 第6章 分布式路由算法 6.1 导论 6.1.1 拓扑 6.1.2 交换 6.1.3 通信类型 6.1.4 路由 6.1.5 路由函数 6.2 一般类型的最短路径路由 6.2.1 Dijkstra集式算法 6.2.2 Ford的分布式算法 6.2.3 ARPAnet的路由策略 6.3 特殊类型网络的单播 6.3.1 双向环 6.3.2 网格和圆环 6.3.3 超立方 6.4 特殊类型网络的广播 6.4.1 环 6.4.2 2维网格和圆环 6.4.3 超立方 6.5 特殊类型网络的组播 6.5.1 一般方法 6.5.2 基于路径的方法 6.5.3 基于树的方法 第7章 自适应、无死锁和容错路由 7.1 虚信道和虚网络 7.2 完全自适应和无死锁路由 7.2.1 虚信道类 7.2.2 逃逸信道 7.3 部分自适应和无死锁路由 7.4 容错单播:一般方法 7.5 2维网格和圆环的容错单播 7.5.1 基于局部信息的路由 7.5.2 基于有限全局信息的路由 7.5.3 基于其他故障模型的路由 7.6 超立方的容错单播 7.6.1 基于局部信息的模型 7.6.2 基于有限全局信息的模型:安全 等级 7.6.3 基于扩展安全等级模型的路由: 安全向量 7.7 容错广播 7.7.1 一般方法 7.7.2 使用全局信息的广播 7.7.3 使用安全等级进行广播 7.8 容错组播 7.8.1 一般方法 7.8.2 基于路径的路由 7.8.3 使用安全等级在超立方进行组播 第8章 分布式系统的可靠性 8.1 基本模型 8.2 容错系统设计的构件模块 8.2.1 稳定存储器 8.2.2 故障-停止处理器 8.2.3 原子操作 8.3 节点故障的处理 8.3.1 向后式恢复 8.3.2 前卷式恢复 8.4 向后恢复的问题 8.4.1 检查点的存储 8.4.2 检查点方法 8.5 处理拜占庭式故障 8.5.1 同步系统的一致协议 8.5.2 对一个发送者的一致 8.5.3 对多个发送者的一致 8.5.4 不同模型下的一致 8.5.5 对验证消息的一致 8.6 处理通信故障 8.7 处理软件故障 第9章 静态负载分配 9.1 负载分配的分类 9.2 静态负载分配 9.2.1 处理器互连 9.2.2 任务划分 9.2.3 任务分配 9.3 不同调度模型概述 9.4 基于任务优先图的任务调度 9.5 案例学习:两种最优调度算法 9.6 基于任务相互关系图的任务调度 9.7 案例学习:域划分 9.8 使用其他模型和目标的调度 9.8.1 网络流量技术:有不同处理器能力的 任务相互关系图 9.8.2 速率单调优先调度和期限驱动调度: 带实时限制的定期任务 9.8.3 通过任务复制实现故障安全调度: 树结构的任务优先图 9.9 未来的研究方向 第10章 动态负载分配 10.1 动态负载分配 10.1.1 动态负载分配的组成要素 10.1.2 动态负载分配算法 10.2 负载平衡设计决策 10.2.1 静态算法对动态算法 10.2.2 多样化信息策略 10.2.3 集控制算法和分散控制算法 10.2.4 移植启动策略 10.2.5 资源复制 10.2.6 进程分类 10.2.7 操作系统和独立任务启动策略 10.2.8 开环控制和闭环控制 10.2.9 使用硬件和使用软件 10.3 移植策略:发送者启动和接收者启动 10.4 负载平衡使用的参数 10.4.1 系统大小 10.4.2 系统负载 10.4.3 系统交通强度 10.4.4 移植阈值 10.4.5 任务大小 10.4.6 管理成本 10.4.7 响应时间 10.4.8 负载平衡视界 10.4.9 资源要求 10.5 其他相关因素 10.5.1 编码文件和数据文件 10.5.2 系统稳定性 10.5.3 系统体系结构 10.6 负载平衡算法实例 10.6.1 直接算法 10.6.2 最近邻居算法:扩散 10.6.3 最近邻居算法:梯度 10.6.4 最近邻居算法:维交换 10.7 案例学习:超立方体多计算机上的 负载平衡 10.8 未来的研究方向 第11章 分布式数据管理 11.1 基本概念 11.2 可串行性理论 11.3 并发控制 11.3.1 基于锁的并发控制 11.3.2 基于时戳的并发控制 11.3.3 乐观的并发控制 11.4 复制和一致性管理 11.4.1 主站点方法 11.4.2 活动复制 11.4.3 选举协议 11.4.4 网络划分的乐观方法:版本号 向量 11.4.5 网络分割的悲观方法:动态 选举 11.5 分布式可靠性协议 第12章 分布式系统的应用 12.1 分布式操作系统 12.1.1 服务器结构 12.1.2 八种服务类型 12.1.3 基于微内核的系统 12.2 分布式文件系统 12.2.1 文件存取模型 12.2.2 文件共享语义 12.2.3 文件系统合并 12.2.4 保护 12.2.5 命名和名字服务 12.2.6 加密 12.2.7 缓存 12.3 分布式共享内存 12.3.1 内存相关性问题 12.3.2 Stumm和Zhou的分类 12.3.3 Li和Hudak的分类 12.4 分布式数据库系统 12.5 异型处理 12.6 分布式系统的未来研究方向 附录 DCDL的通用符号列表
HDFS是一个分布式文件系统,由Apache Hadoop项目开发。它的主要设计目标是能够在普通硬件上运行,并能够处理大规模的数据集。下面是HDFS的体系结构和工作流程,以及各主要模块的功能: **体系结构** HDFS的体系结构主要由以下三个部分组成: 1. NameNode:负责管理文件系统的命名空间,维护文件和目录的元数据信息,以及控制客户端的文件访问请求。 2. DataNode:负责管理文件系统的数据存储,存储实际的文件块数据,并负责处理客户端的读写请求。 3. 客户端:通过与NameNode和DataNode进行交互,实现对文件系统的读写操作。 **工作流程** HDFS的工作流程如下: 1. 客户端向NameNode发起文件读写请求。 2. NameNode检查请求合法性,如果请求合法,则返回一个包含文件块位置信息的数据流给客户端。 3. 客户端根据返回的文件块位置信息,向相应的DataNode发起读写请求。 4. DataNode处理客户端的读写请求,并返回相应的数据块给客户端。 5. 客户端对数据块进行处理,完成读写操作。 6. 客户端向NameNode发送完成请求,NameNode更新文件的元数据信息。 **各主要模块的功能** 1. NameNode:管理文件系统的命名空间,维护文件和目录的元数据信息,控制客户端的文件访问请求。主要功能包括文件系统的命名空间管理、元数据管理、数据块分配、数据块复制管理、故障处理等。 2. DataNode:管理文件系统的数据存储,存储实际的文件块数据,并负责处理客户端的读写请求。主要功能包括数据块存储、数据块复制、心跳检测、块报告、数据完整性检测等。 3. 客户端:通过与NameNode和DataNode进行交互,实现对文件系统的读写操作。主要功能包括文件读写请求的发起、数据块位置信息的获取、数据块的读写等。 总之,HDFS是一个高度可扩展的分布式文件系统,其体系结构和工作流程都非常清晰和简单,各模块的功能也分工明确,这些都为其高效地处理大规模数据集提供了基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值