# 随堂测验
#### 一、请简述GFS 的系统架构和特点。
**1. 系统架构**
- GFS将整个系统节点分为三类角色:
- Client(客户端):Client是GFS提供给应用程序的访问接口,以库文件的形式提供。
- Master(主服务器):Master是GFS的管理节点,在逻辑上只有一个,负责整个文件系统的管理。
- Chunk Server (数据块服务器):Chunk Server负责具体的存储工作,数据以文件的形式储存。
- GFS的实现机制:
- 客户端首先访问Master节点,获取交互的Chunk Server信息,然后访问 这些Chunk Server,完成数据存取工作。这种设计方法实现了控制流和 数据流的分离。
- Client与Master之间只有控制流,而无数据流,极大地降低了Master的 负载。
- Client与Chunk Server之间直接传输数据流,同时由于文件被分成多个 Chunk进行分布式存储,Client可以同时访问多个Chunk Server,从而 使得整个系统的I/O高度并行,系统整体性能得到提高。
**2. 特点**
- 采用中心服务器模式:
- 可以方便的增加Chunk Server
- Master掌握系统内所有Chunk Server的情况,方便进行负载均衡
- 不存在元数据的一致性问题
- 不缓存数据:
- 文件操作大部分是流式读写,不存在大量重复读写,使用Cache 对性能提高不大
- 由于GFS的数据在Chunk Server上以文件的形式存储,如果对某 块数据读取频繁,本地的文件系统自然会将其缓存
- Chunk Server上数据存取使用本地文件系统从可行性看,Cache 与实际数据的一致性维护也极其复杂
- 由于读取的数据量巨大,以当前的内存容量无法完全缓存
- 在用户态下实现
- 利用POSIX编程接口存取数据降低了实现难度,提高通用性
- POSIX接口提供功能更丰富
- 用户态下有多种调试工具
- Master和Chunk Server都以进程方式运行,单个进程不影响整个操作系统
- GFS和操作系统运行在不同的空间,两者耦合性降低
- 只提供专用接口
- 降低了实现的难度。通常与POSIX兼容的接口需要在OS内核一级 实现,而GFS是在应用层实现的
- 可以根据应用的特点对应用提供一些特殊支持
- 专用接口直接和Client、Master、Chunk Server交互,减少了 上下文的切换,降低了复杂度,提高了效率
#### 二、(1) 请简述 Yarn 的体系架构与组件。
(2) 请简述 Yarn 的工作流程。
**1. Yarn的体系架构与组件**
- Yarn是master/slave架构,主进程Resource是整个集群资源仲裁中心,从进程NodeManager管理本机资源,ResourceManager和从属节点的进程NodeManager组成了Hadoop2.0的分布式数据计算框架。
- 组件:
- ResourceManager(RM)
主要负责处理客户端请求对各NM上的资源进行统一调度和管理,给ApplicationMaster分配空闲的Container 运行并监控其运行状态。
- NodeManager(NM)
相当于ResourceManager在每台机器上的代理。定时向RM汇报本节点资源的使用情况和Container 的运行状态,它还会处理来自ApplicationMaster的Container 启动或停止请求。
- ApplicationMaster(AM)
YARN中每启动一个任务就会启动一个AM,它可以负责向RM申请资源,请求NM启动Container,并告诉Container做什么,,它还可以重启失败的任务。
- Container
container是YARN中资源的抽象,它封装了某个节点上的一定的资源(cpu、内存、磁盘、网络等),YARN中所有的应用都是在其上运行的,包括AM,Container是由AM向RM申请的,由RM中的scheduler分配给AM。
**2. Yarn的工作流程**
- (1)作业提交
- (2)任务分配
- (3)任务执行
- (4)进度和状态更新
- (5)任务完成
#### 三、请描述用 MapReduce 实现过程
**1. 实现过程**
- 第一个步骤
对原始的数据进行分割,得到10个不同的数据分块。
- 第二个步骤
对每一个数据分块都启动一个Map进行处理。采用桶排序的方法,每个Map中按照用户id排序分配到100个不同的桶中。
- 第三个步骤
对于Map之后得到的中间结果,启动100个Reduce。按照用户id将Map中不同桶中的购物记录集合放置到行营的Reduce中进行处理。
**2. 相关结果**
- Mapper数量:10
- Reducer数量:100
- <key1,value1>:<第几个数据分块,对应块的购物记录>
- <key2,value2>:<用户id,对应购物记录>
- <key3,value3>:<用户id,对应购物记录>
#### 四、请写出数据对象在虚拟节点和物理节点上的分布情况
**1. 物理节点与虚拟节点对应关系**
| 物理节点 | 1 | 2 | 3 |
| :------: | :--: | :---: | :------: |
| 虚拟节点 | V1 | V2,V4 | V3,V5,V6 |
**2.数据对象分布情况**
| 数据对象id | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| :----------: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
| **虚拟节点** | V1 | V2 | V2 | V3 | V1 | V3 | V4 | V6 | V5 | V6 | V5 | V3 |
| **物理节点** | 1 | 2 | 2 | 3 | 1 | 3 | 2 | 3 | 3 | 3 | 3 | 3 |
#### 五、程序
**1. 程序**
```java
public static void main(String[] args) throws IOException{
Configuration conf = new Configuration();
Path inFile = new Path("/user/joe/mufile");
FileSystem hdfs = FileSystem.get(conf);
//写入内容
FSDataOutputStream OutputStream = hdfs.create(inFile);
outputStream.writeUTF("cloud computing is useful");
outputSteram.flush();
outputStream.close();
//输出内容
FSDataInputStream inputStream = hdfs.open(inFile);
System.out.println("myfile:"+inputStream.readUTF());
inputStream.close();
}
```
**2. 匹配**
| 术语 | 具体描述 |
| :-------: | :----------------------------------------: |
| GAE | (c) 主要用于 PaaS 应用的公有云 |
| CRM | (g) 在商业社会中最常使用的 SaaS 应用之一 |
| AWS | (d) 用在可伸缩应用程序中的公有计算云 |
| SLA | (a) 云计算中用户和提供商之间签署的协议 |
| Azure | (b) 必须从基于 Windows 的主机运行的公有云 |
| EC2 | (h) 主要用于 IaaS 的云服务 |
| S3 | (i) 用于分布式存储应用程序的存储云 |
| Force.com | (e) SalesForce.com 构建的云平台 |
| vSphere/4 | (f) 将数据中心转换为云平台的商业云操作系统 |
| XEN | (j) 剑桥大学开发的开源 hypervisor |
#### 六、云计算数据中心空调系统节能技术
**1. 节能技术与原理**
- 高温回风空调系统
根据不同水温度下的制冷和能耗,对应的出水温度(即空调回风温度)提高1°C,空调系统约节能3%。
- 低能耗加湿系统
将纯净的水直接喷洒在多孔介质或者空气中,形成颗粒极小的水雾,由送风气流送出。整个加湿过程无需电能加热水,仅需水泵和风机能耗。
- 自然冷空调系统
使用室外自然冷风直接带走机房的IT 设备的散热,减少了机械制冷系统中最大的压缩耗能环节,压缩机制冷系统的 EER 由 2~3.5 提高到 10~15 ,节能空间巨大。
**2. DVFS节能技术**
- 当CPU 未被完全利用时,通过降低 CPU 的供电电压和时钟频率主动降低 CPU 性能,这样可以带来立方数量级的动态能耗降低,并且不会对性能产生影响。
- DVFS节能方法能够利用因任务交互而导致的松弛时间以一个低电压、频率执行任务。
?下一个题目
下一个题目:
?
然后还有就是? 名词连线,,
凭借回忆:
简述 淘宝那个云的结构特点? 就是 行列关键字+时间戳的那个? ? 还有对应的架构.... (TFS的架构和存储机制)
MapReduce模型,简述工作原理
编程题和19级一样?
Spark? Streaming模型的特点
S3的基本概念和操作,是一个大题,给一个表:
第一个队列 a11? a12? ?占比百分30
第二个队列? a21? a22? a23 占比百分50
第三个队列? a31? a32? a33 占比百分40
第一小问: 是关于S3的知识问答? ?
第二小问: 给一个执行序列xxxx? xxx? ?xxxx? ?xxx? ?xxxx ,问你xx执行完以后会让谁执行,为什么?
?名词连线题
由于我大四跑去实习了,所以要求及格就行,所以题目不是记得很清楚, 欢迎其他小伙伴补充~
最后,姿持下互联网精神好不好啦~