1什么是云计算?
云计算是一种能够将动态伸缩的虚拟化资源通过互联网以服务的方式提供给用户的计 算模式。根据云提供的服务类型,可以划分为基础设施云、平台云、应用云。根据云的服务 方式,可以划分为公有云、私有云、混合云。
2云计算的优势?
。优化产业布局
- 成本关键由硬件成本转为电力成本、散热成本 -分散的、高能耗模式转变为集中的、资源友好的模式 -自给自足资源作坊转变为规模效应的工业化资源工厂 ② 推进专业分工
-专业的大型云计算厂商
-实力雄厚的科研技术团队推动硬件技术革新 -具有丰富知识和经验的维护管理团队和配套软件 -产业链中的新产业契机 ③ 提升资源利用率
-更加高效的解决常规业务 -更好的应对突发任务或事件 -更加平衡的资源分配和负载 @减少初期投资
-更少的IT基础设施投入 -更少的软件投入 -更少的人力投入 -更短的培训周期 -更灵活的转型支持 ③降低管理开销 -服务化管理
-无需自己建立维护管理团队 -随需应变的解决方案
-知识、经验更加丰富的管理队伍 -通过业务模块的可配置提高系统的灵活性
3云计算的动因?
。芯片与硬件技术
-硬件能力的激增、成本的大幅下降,使得运作的公司集中客观的硬件能力实现规 模效益成为可能 ◎资源虚拟化
-资源在云端,需要被统一的管理 -异构硬件、兼容性问题 -虚拟化技术03应用需求 ◎面向服务的架构 S0A -开放式数据模型 -统一通信标准
-更加丰富的服务
-更加松散耦合、灵活的IT架构 -转变了人们对IT系统的认识 @软件即服务SaaS
-转变了人们使用服务的方式 -使得终端用户熟悉服务的交互模式 -改变了 IT界的商业模式
-实力雄厚的大公司负责基础设施,小企业通过创新挖掘充满潜力的市场 -“长尾理论” ③互联网技术 -基础设施 -多种接入方式 -更加广阔的覆盖
-带宽和可靠性得到大幅提升
-使得IT新模式的稳定性、可靠性、安全性、可用性、灵活性、可管理性、自动化程度、 节能环保等得到保障
⑥Web2.0技术
-用户从信息的获得者变成信息的贡献者
-博客(微博)、内容聚合、百科全书( Wiki)、社交网络、对等网络(P2P) -富互联网应用(Rich In ternet Application )成为网络应用发展的趋势 -改变了人们的生活方式 -为云计算提出了内在需求
4查找资料:
业界主流的云计算产品 典型的云计算应用 补充:
1云计算特征是什么?
③硬件和软件都是资源
㈢资源可以根据需要进行动态扩展与配置
③按用计费、无需管理
®物理上分布式共享,逻辑上以单一整体呈现
2云计算的发展历程? 。超级计算机
㈢集群计算
③分布式计算 ®网格计算 ③效用计算 @云计算
第二讲:云服务
1云服务的基本层次?
云计算的基本层次分为三层,依次为
laaS, PaaS和SaaS
laaS (架构即服务),提供了核心计算资源和网络架构的服务。基础设施栈包括操作系
统访问、防火墙、路由和负载平衡。示例产品:
Flexiscale 和Amazon EC2
PaaS(平台即服务)提供平台给系统管理员和开发人员,
及部署定制应用程序。也降低了管理系统的成本。典型服务包括
令其可以基于平台构建、测试
Storage、Database、
Web的
示
Scalability 。示例产品: Google App Engine、AWS:S3 Microsoft Azure 。
SaaS(软件即服务)通过In ternet 提供软件的模式,用户向提供商租用基于
软件来管理企业经营活动,
且无需对软件进行维护,
例产品: Google Docs、CRM Financial Planning
服务提供商会全权管理和维护软件。 、Human Resources、Word Processing
2 IaaS的基本功能?
CD资源抽象
囤资源监控
D负载管理 D数据管理
◎资源部署 ⑥ 安全管理 ⑦ 计费管理
3 PaaS的基本功能?
◎开发平台 ②运行时环境 ◎运营环境
补充:
1 IaaS服务流程?
规划阶段->部署阶段-> 运行阶段
2 PaaS实现步骤?
◎总体设计 ②开发平台 ◎运行环境 ◎运营环境
3云平台上开发应用的优势?
-提供高级编程接口,简单易用,缩短编程人员上手时间 -应用的开发与运行基于相同的平台,兼容性问题较少 -开发者无需考虑应用的可伸缩性、服务容量问题
-平台层的运营管理功能还能够帮助开发人员对应用进行监控和计费
4应用层的特征?
-网络访问模式 -租用付费 -高度整合
第四讲:虚拟化
1虚拟化的概念?
虚拟化是表示计算机资源的抽象方法, 制。(wiki)
通过虚拟化可以用与访问抽象前资源一致的方法
地理位置或底层资源的物理配置限
来访问抽象后的资源。这种资源的抽象方法并不受实现、
2服务器虚拟化的特性?
3多实例
-一个物理服务器上可以运行多个虚拟服务器 -支持多个客户操作系统
-物理系统资源以可控的方式分配给虚拟机
3隔离性
-虚拟机之间完全隔离
-一个虚拟机的崩溃不会对其他虚拟机造成影响 -虚拟机之间的数据相对,不会泄露
-虚拟机之间如果需要互相访问,方式等同于物理服务器之间的互相访问 3封装性 -硬件无关
-对外表现为单一的逻辑实体
-一个虚拟机可以方便的在不同硬件之间复制、移动
-将不同访问方式的硬件封装成统一标准化的虚拟硬件设备,保证了虚拟机的兼容性 3高性能 -可通过扩展获得“无限”的性能 -虚拟化抽象层需要一定管理开销
3服务器虚拟化的关键技术?
3计算虚拟化
-CPU虚拟化 -计算负载的动态分配 -能耗管理 3存储虚拟化 -内存虚拟化 -磁盘存储动态分配
3设备与I/O虚拟化
-软件方式实现 -统一、标准化的接口 -操作指令转译
3
实时迁移技术
-将整个虚拟机的运行状态完整、快速地从原宿主机的硬件平台转移到新的宿主机硬件平 台。
4创建虚拟化解决方案的步骤?
③创建虚拟化解决方案 ② 部署虚拟化解决方案 ③ 管理虚拟化解决方案
5什么是数据中心?
数据中心是一整套复杂的设施,它不仅仅包括计算机系统和其它与之配套的设备
通信和存储系统),还包含冗余的数据通信连接、环境控制设备、监控设置以及各种安全装 置。
(例如
6虚拟化与云计算的关系?
虚拟化技术以及各种计算机科学概念,
如效用计算、SOA等,的发展和商业实现打开了
从虚拟化和云计算的过程,我们实 用于动态地创建高度虚拟化的资
云计算的大门,而云计算本质上说应该就是虚拟化服务。 现了跨系统的资源调度,将大量的计算机资源组成资源池, 源提供给用户,从而最终实现应用、数据、 以
说云计算是虚拟化的最高境界,虚拟化是云计算的底层结构。
IT资源以服务的方式通过网络提供给客户。可
补充:
1虚拟化的典型类型? ③基础设施虚拟化 ㈢系统虚拟化
③软件虚拟化
2虚拟化的目的
③对象脱离原有环境 ①在计算机上被表示 ③通过计算机控制按需获取
第五讲:OpenStack
1 AWS模式是什么,有什么优点?
Amazon Web Services(AWS)
模式:用户应用使用IaaS基础IT资源,将PaaS和通用服务作为应用架构中的组件来构 建自己的服务 特点:通过 Web Service接口开放数据和功能;一切以服务实现;通过 达到松耦合。
SOA框架使系统
2 IaaS模式核心需求有哪些?
云拥有者:配置和操作基础架构;服务的提供者:注册云服务、查看服务的使用情况; 查看服务的计算情况;服务的使用者:创建和存储自定义的镜像、启动监控和终止实例。
3 Openstack都包含哪些核心项目,作用是什么?
Nova (计算)、Swift (对象存储)、Glanee (镜像)、Keystone (身份)、Dashboard (自 助门
户)、Quantum (网络连接)、Cinder (块存储服务)。
4镜像和实例有什么区别和联系?
镜像:固定搭配
实例:固定搭配的一个实例
镜像的存在便于对大量实例的管理,如归类、缩短选择时间、计费等
5 Nova有哪些核心模块,工作过程是什么?
Nova是一套控制器,用于为单个用户或使用群组启动虚拟机实例。将提供预制的镜像 或是为用户创建
的镜像提供存储机制,这样用户就能够将镜像以虚拟机的形式启动。
Nova-api:负责接收和响应终端用户有关虚拟机计算和云硬盘存储的请求,
的入口。
是整个Nova
Nova-compute :主要的执行守护进程,职责是基于各种虚拟化技术实现创建和终止虚 拟机。整合了 CPU/内存、存储和网络三类资源部署管理虚拟机,实现计算能力的交付。
Nova-volumn :职责是创建、挂载和卸载持久化的磁盘虚拟机。 Nova-network :职责是实现网络资源池的管理。
Nova-schedule :职责是调度虚拟机在哪个物理宿主机上部署。 AMQP消息中间件:实现服务接口与实现解耦以及子系统之间的通信。
通过HTTP协议,
采用REST风格实现接口定义和响应,发送执行消息指令至队列,由具体的订阅实现模块执 行指令。
6 Keystone权限控制过程是什么?
User:用户,就是一个人的账号 Credential :用来证明用户身份的证据
Authentication :鉴权,也即对用户身份鉴别的一个过程。 Token:令牌。对用户鉴权完毕之后,
Keystone会为用户颁发一个令牌,这样用户在请
而不需要发送自己的密钥。
当然以防仿冒
求其他服务的时候,只需要亮出自己的令牌即可, 令牌,令牌是有时限的。
Service:服务,Keystone提供了系统能够提供的服务目录,例如 Nova, Glanee. Swift等。
Endpoint :直译为端点,其实指的是要访问的服务的地址。如果细分的话,又可以进一
步分为对外提供服务的地址,管理地址等。
Role:即赋予该用户的权限, Openstack提供的是一个多租户环境,在 Openstack中租
户对应到项目(Project)。一个用户可以同时属于多个不同的项目,当然在不同的项目中可以 充当不同的角色,也即拥有不同的权限。
关键的两点:1) User从Keystone获取令牌以及服务列表;2)User访问服务时,亮出自 己的令牌,相关的服务向 Keystone求证令牌的合法性。
叶
1
Qyonfurrj- 7 Quantum原理是什么?
实现网络连接管理,解决网络虚拟化问题。
匚匸 fFTEO/T
The Quantum Service
Tens nts
OpenUack Compute
Openstack D^^hbaard OznUjE Cll Other 3rJ party ser\\f g
Network twitch
Qaanliim Pfug/rr Hypervisor V1M vElh _*5 f_ Hypervisor
VM vEIlh 1 pg __ Nvpaiviui^c MclwoH! H3d< MwxFviu^i Wetwvk tfadc 8 Swift的核心概念有哪些?
-Object :对象。基本的存储实体,所有数据按照对象进行存储。
-Container :容器。对象的装载体,组织数据的方式,存储的隔间,类似于文件夹,但 不能嵌套, object存储于 container中。
- Account: 账户。权限单位,
account拥有若干 container。
9 Swift的组件有哪些,都有什么作用?
Proxy Server:提供Swift API的服务器进程,负责 Swift其余组件间的相互通信 Storage Server:提供了磁盘设备上的存储服务
Consistency Server :查找并解决由数据损坏和硬件故障引起的错误,包含 Updater 禾口 Replicator
Ring:用于记录存储对象和物理位置间的映射关系 10 Ring算法思想是什么?
一致性哈希算法:Swift利用一致性哈希算法构建了一个冗余的可扩展的分布式对象存 储集群。Swift采用一致性哈希的主要目的是在改变集群的 改变已存在Key和Node的映射关系。 节点的哈希值,并将其分配到一个 的哈希值,也将其分配到这个圆环上。 存到找到的第一个节点上。如果超过
Auditor、
Node数量时,能够尽可能少地
该算法的思路分为以下三个步骤。 随后从数据映射到的位置开始顺时针查找,
首先计算每个
将数据保
0~2人32的圆环区间上。其次使用相同方法计算存储对象
2A32仍然找不到节点,就会保存到第一个节点上。
Replica。
Zone:把集群的Node分配到每个Zone中,其中同一个 Partition的Replica不能同时放 在同一个Node上或同一个Zone内。
Weight :未来添加存储能力更大的 11 Quorum协议的内容是什么?
在分布式存储系统中用于控制一致性级别的一种策略。
Node时,分配到更多的 Partition。
N = numbers of nodes that store data (同一份数据的 Replica 的份数)
W = number of successful writes in a put request (更新一个数据对象时需要确保成功更新 的份数) R = number of successful reads in a get request (读取数据时需要读取的 W + R > N
W>N/2 (常用:N=3、w=R=2)
Replica 的份数)
第六讲:云存储
1大规模数据存储面临的新问题与挑战
-成本问题 -容量问题 -可靠问题 -使用问题
2 GFS体系结构
Client: GFS提供给应用程序的库文件形式访问接口;
只有一个,保存系统元数据;
Master: GFS的管理节点,逻辑上
Chunk Server: GFS的数据存储节点,大小固定(MB)。采
用中心服务器模式,不缓存数据,在用户态下实现,提供专用的访问接口。
Master节点任务:存储元数据;文件系统目录管理与加锁;与
通信;数据块创建、复制与负载均衡;垃圾回收;陈旧数据块删除。
ChunkServer进行周期性
3 GFS的容错机制 CD Master 容错
-三类元数据:命名空间(目录结构)、Chunk与文件名的映射以及 Chunk副本的位置信 息。 -前两类通过日志提供容错, 可恢复。
◎Chu nk Server 容错
-每个Chunk有多个存储副本(通常是
Chunk副本信息存储于 Chunk Server, Master出现故障时
3个),分别存储于不通的服务器上。
-每个Chunk又划分为若干 Block (KB),每个Block对应一个32bit的校验码,保证数 据正确(若某个 Block错误,则转移至其他 Chunk副本)。
4 Paxos协议
分布式环境下保持一致性的协议。
-决议(value)只有在被 proposers提出后才能被批准,未经批准的决议称为\"提案 (proposal) ”。
-在一次Paxos算法的执行实例中,只批准( -learners 只能获得被批准(chosen)的value。
chosen) —个value。
5 Chubby锁机制
Chubby是Google为解决分布式一致性问题而设计的提供粗粒度锁服务的文件系统。 Chubby系统本质上就是一个分布式的、存储大量小文件的文件系统。
制,向用户发送更新信息。
Chubby中的锁就是文
件,创建文件就是进行加锁操作。用户通过打开、关闭和存取文件,获取共享锁或独占锁, 并且通过通信机
6 Chubby的通信协议
操作的允许授权是通过限时的、倒计时“租期”系统来处理的。
7 Bigtable数据结构
-分布式映射表
-通过行关键字+列关键字+时间戳进行索引
-Bigtable对存储的数据不做解析,看做字符串,具体数据结构实现需要用户自行处理 -每行数据有一个可排序的关键字和任意列项;
-可将多个列归并为一组,称为“族”,同一个族的数据被压缩在一起保存。 -逻辑上的表被划分成若干子表,每个子表存储了
table的一部分行(每个子表由多个
SSTable文件组成,SSTable文件存储在 GFS上) 8 Bigtable优化机制
◎局部性群组
-根据需要,将原本不存储在一起的数据,以列族为单位存储至单独的子表。
◎布隆过滤器
-判断某个元素是否隶属于集合。 ◎合并压缩
-合并压缩操作读取多个 SSTable创建一个新的 SSTable来保持其中的最新数据。
9云存储应用的特点
通用的设备支持;数据同步与共享;任意格式
/大小文件;免费+付费。
第七讲:MapReduc e算法原理
1 Mapreduce算法的架构
每个mapreduce任务都被初始化为一个
job ,每个job分为两个阶段,实现了 Map和
Reduce两个功能:
Map :把一个函数应用于集合中所有成员,然后返回一个基于这个处理的结果集。 Reduce:对结果集进行分类和归纳。
lAippinQ prtKois I 1 t » T i ll •奧现原理
VMLMB exchanged by shu恤 proDcss Frt?
Ngl
535m
Node
Node 2
mpui dsia
Wffi?
li^etmediai» data from mspoers
Reduckrtg ptocess gene\"ate$ Outputs
Reduting ^roc^&s
□nnr
N .窝 educjnq pro占斟 | Node 3 □ Outp SlOFDt^ kwaJly (“ fork (I I lilfk 0 hfork \\ Miukr ) ____ Lx <2t reluct. *nfrt TW ffl 4 output file 0 wtnkc『 ) ruipuc flit I ffl Lstr 2 Wordcount 算例 ③自动分割文本。 分割后的每一对<key,value>进行用户定义的 map处理,生成新的<key,value>对。 ③系统自动对输出结果集归拢排序,传给 @通过reduce生成最后结果。 () 3 Hadoop执行 MR的过程 reduce。 CD master节点运行jobTracker实例,接收客户端 job请求,一个job是对一个数据集的处 理,slave节点 运行 TaskTracker实例,一个 task是一次 map或者reduce处理过程。 C 别 kxol MR程序由一个jar文件和一个 xmli 文件组成,jar包含程序代码,xml包含程序配置操 作。 C客户端设定配置之后, 交job,将job数据发送到jobTracker的文件系统中,Mapreduce 库会把所输入文 件分割成 M块,放到不同的 data note上。 jar和配置文件放到共享空间 taskTracker周期性告诉jobTracker工作状 CJobTracker将job放入队列进行调度,并把 C Hadoop有一个机器内进程间操作通信的机制, CMR程序被传送到各个数据所在的 点上进行计算,中间结果被输送到 态,如果空,job给task分配任务,开一个进程处理。 HDFS的data note上运行,mapper被输送到数据节 reducer上进行计算,Reducer将计算结果分布式保存到 HDFS ⑦当所有 map和reduce任务完成时,master会唤醒用户程序,通知任务完成,再取执行 新的任务。 4 MR算法执行过程中的数据流转过程 C用户文件上传到 HDFS由map reduce库切割分别存储到 data note上 C以行号,文本形式传入 map中,经过自定义 map处理产生<key,value>对,构成中间结 果集缓存在本 地内存中。 Creducer接到master的收集中间结果集任务后,通过远程调用读取中间结果,并将其排 序,key相同的value 进行合并处理化简。 @最终结果写入到 GFS文件系统中 补充: 1 什么是 MapReduce ? ③一个软件架构,是一种处理海量数据的并行编程模式 ②用于大规模数据集(通常大于 ; 1TB)的并行运算; C^MapReduce 实现了 Map 和 Reduce 两个功能: -Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集 -Reduce对结果集进行分类和归纳 -Map()和Reduce()两个函数可能会并行运行,即使不是在同一的系统的同一时刻 2 MapReduce 的优化? -任务备份机制 -本地处理 -跳过有问题的记录 3 MapReduce中的术语? job: MapReduce的一整个过程 task:在一个job中,每个 map per和每个reducer做的事情 task attempt :运行一个 task。 主节点运行JobTracker实例,它接受来自客户端的工作要求。 括: ① 作业控制:在hadoop中每个应用程序被表示成一个作业,每个作业又被分成多个任 务,JobTracker的作业控制模块则负责作业的分解和状态监控。 JobTracker的主要功能包 ②资源管理。 taskTracker实例运行在 slave节点。TaskTracker的功能包括: ① 汇报心跳: Tracker周期性将所有节点上各种信息通过心跳机制汇报给 JobTracker。 ③执行命 令:JobTracker会给 TaskTracker下达 各种命 令,主要包 括:启 动任 务 (LaunchTaskAction)、提交任务(CommitTaskAction)、杀 死任务(KillTaskAction)、杀 死作业 (KillJobAction)和重新初始化(TaskTrackerReinitAction)。 第八讲:MapReduce算法应用 1 Mapreduce算法设计思想 任务的分解与结果的汇总。 2运用mapreduce算法解决实际问题 3词频: WordCount基础上 map函数中,加入 <*,num> 键值对,一次 mapreduce过程得到每 个词出现的个 数及总数 3inverted index (若干文本文件- > 倒排索引结果): map 输出:<{toke n,filelD},o ne> combiner 输出:<{token,fileID},sum > reduce 输出: ③计算文本相似度: —进行倒排索引 —计算两两文章对的相似性 map:同一个词对应的文章链表中,两两文章构成一组 reduce :进行收集 —统计文章相似度 <{article1,article2} ,n um> 3算法调优 给shuffle过程尽可能多的内存空间; Map和Reduce函数尽量少用内存;运行 Map和 Reduce任务的JVM的内存尽量大;Map端尽量估算Map输入的大小,减少溢出写磁盘的 次数;Reduce 端的中间数据尽可能的多驻留在内存;增加 Hadoop的文件缓冲区。 4 Mapreduce运行过程中的各种参数及其作用 缓冲区大小(100MB);缓冲区容量阈值(0.8);最多合并流数(10);溢出写次数最小 值(3);压缩标志(false);压缩方式;TaskTracker的工作线程数(40); Reduce任务复制线 程(5); Reduce获取一个 Map输出最大时间(300s); Map输出内存缓冲区占堆空间的百 分比(0.7);缓冲区溢出阈值(0.66); Map输出阈值(1000);合并因子(10);输入内存 阈值(0.0); Hadoop文件缓冲区(4KB) 5参数调优 将map输出作为输入传给 reducer,确保每个 reducer的输入都按键排序的过程叫 shuffle, shuffle是调优的重点。 CDMap —产生输出时,通过缓冲写入内存:缓冲区大小,容量阈值,指定路径 —按照要传送到的reducer对数据进行partirion ,每个partition内部按照key进行键 内排序:合并流数; — 压缩map输出效率更高:压缩标志;压缩方式 —reducer通过http方式从 map处得到输出文件分区, 控制:工作线程数(tracker.http.threads ) 分区的工作线程数由 tasktracker ㈢ Reduce —只要一个map任务完成,reduce任务就开始复制其输出:复制线程数;获取 map 最大时间 —若map输出小,复制到内存中;否则先写入到内存缓冲区,达到阈值后写到磁盘: 内存缓冲区占堆空间百分比;溢出阈值; map输出阈值; —后台线程根据合并因子将其合并成更大的排好序的文件:合并因子 —reduce开始时,内存中 map输出大小不能超过输入内存阈值,以便为 reduce ?供 尽可能多的内存:输入内存阈值 —输出结果写入HDFS系统:hadoop文件缓冲区大小 6案例的 mapreduce算法 第九讲:Hadoop 1 Hadoop项目的由来 起源于一个开源的网络搜索引擎项目 移植。 Apache Nutch,借鉴GFS实现了一个开源的实 mapreduce+HDFS 现HDFS05年nutch上实现了一个 mapreduce系统,完成了所有主要算法的 2 HDFS的体系结构 采用了主从(Master/Slave)结构模型,一个 HDFS集群是由一个 NameNode和若干 DataNode组成,其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件 的访问操作。DataNode管理存储的数据。 HDFS允许用户以文件的形式存储数据,文件被分成若干个数据块,而且这若干个数据 块存放在一组 DataNode上。NameNode是整个HDFS的核心,它通过维护一些数据结构来记 录每一个文件被分割成了多 少个块、这些块可以从哪些 DataNode中获得,以及各个 NameNode执行文件系统的命名空间操作 的统一调度下进 DataNode的状态等重要信息。 读写操作,并在 NameNode 复制操作。 ,如打开、关闭、 重命名文件或目录等,也负责数据块到具体 DataNode的映射。DataNode负责处理文件系统 客户端的文件 行数据块的创建、删除和 3 HDFS的运行机制 ③可靠性保障: 冗余机制一一数据复制 故障检测 ---- data node (心跳包,块报告,数据完整性监测)name node (日志和镜像) ㈢读文件流程: -客户端调用 DistributedFileSystem对象的open ()方法 -DistributedFileSystem通过RPC联系name node,得到所有数据块信息,对每个数据块, name node返回存有该块副本的 离进行排序 -DistributedFileSystem类返回一个 FSDatalnputStream对象给客户端并读取数据 -客户端对该对象调用 data node地址,并且这些 data node根据他们与客户端的距 read ()方法读取数据 data node -FSData In putStream 连接距离最近的data node读取数据,数据读取完毕时 FSData In putStream会关闭与该data node的连接,然后寻找下一个块的 用 close ()方法 —FSDataI nputStream从data node读取数据时如果遇到错误,会尝试从该块的另外一个最 近的data - FSDataI nputStream 可能并行读取多个 data node ,当客户端完成读取时,对 FSDataInputStream 调 node读取数据,并记住故障 data node保证以后不会继续从该节点读取其他块 -每个读取的块通过校验和确认以保证数据完整 -如果FSDataI nputStream发现一个损坏的块,则在从其他 data node读取块之前通知 n ame node ③写文件流程: - 客户端调用 DistributedFileSystem 对象的create ()方法创建文件 -DistributedFileSystem 通过 RPC联系name node ,n ame node 执行各种检查确保待建立的文 件不存在,且客户端拥有创建该文件的权限 -如果检查通过,name node为新文件创建一条记录,否则抛出一个 lOException异常 DistributedFileSystem给客户端返回一个 FSDataOutputStream对象进行写数据 -FSDataOutputStream将待写入数据分成数据包并写入内列 dataqueue DataStreamer将数据 -DataStreamer处理dataqueue,根据data node列表要求 name node分配适合的新块来存 储数据备份 -name node分配的数据备份 data node (通常3个)形成一个管线, 包传输给管线中的第一个节点,然后该节点存储完之后发送给第二个节点,以此类推 -FSDataOutputStream维护一个确认队列 ackqueue ,当收到管线中所有 data node的确认后, 该数据包 从确认队列中删除 -如果data node发生故障,则关闭管线,将确认队列中的数据包添加回数据队列的最前端, 将故障的数据块和 data node信息返回给name node以便该data node恢复后删除错误数据块, 从管线中删除错误节点,并把剩余数据块写入正常 -如果复本数量不足,则 data node name node根据data node分配新的data node并创建新的复本, 该data node被加入管线继续正常存储 4 Htable的数据结构 行:每行数据有一可排序的关键字和任意列项;不同行的列的数目可以大不相同 列:用“族”来定义;“族:标签”;物理上将同族数据存储在一起;数据可以通过时间 戳区分版本 5 Hbase的运行机制 数据存储实体为区域,表按照水平的方式划分为一个或多个区域, 每个区域有一个随机 id,且区域内行为键值有序的。区域以分布式方式存储在集群内。通过区域服务器运行: ③写:写数据首先写入“预写日志”;先缓存,再批量写入;完成后在日志中做标记 ② 读:区域服务器先在缓存中查找,找到则直接服务; ③ 合并:映射文件数量超过阈值,则区域服务器进行合并 @分割:区域文件大过阈值时,按照行方式对半分割;在元信息表中生成子元信息表;主 服务器在得知分割后,将子表分配给新的区域服务器服务 ③失效恢复:将失效服务器的区域分配给其他服务器,原“预写”日志进行分割并分配给 新的区域服务器 6 ZooKeeper的数据读写机制 ZooKeeper:提供通用的分布式锁服务,用以协调分布式应用。 ZooKeeper是一个由多个 Server组成的集群,一个 Leader,多个Follower (每个 Server 都保存了 一份数据副本;全局数据一致;分布式读写;更新请求转发,由 一些约定:更新请求顺序执行;数据更新原子性;全局唯一数据视图;实时性。 Leader实施)。 7 Yarn对Hadoop的核心改进 CD原框架中的 JobTracker和 TaskTracker 被 ResourceManager, ApplicationMaster 与 NodeManager 取代。 CCResourceManager是一个中心的服务,它做的事情是调度、启动每一个 ApplicationMaster、另外监控 ApplicationMaster 的存在情况。 Job所属的 CCNodeMa nager功能比较专一,就是负责 Con tai ner状态的维护,并向RM保持心跳。 CCApplicationMaster负责一个Job生命周期内的所有工作,类似老的框架中 JobTracker。可以 运行在resourceManager以外的机器上 改进后的优点: CD减少了 jobTracker也即resourceManager的资源消耗,让监测每一个 Job子任务(tasks)状态 的程序 分布式化 CApplicationMaster是一个可变更的部分,用户可以对不同的编程模型写自己的 更多类型的编程模型能够跑在 AppMst,让 Hadoop集群中 C对于资源的表示以内存为单位,比以 task任务数目分配更加合理 C客户端调用API或者接口,程序框架改变后不再需要被强制更新。 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务