大数据架构期末复习 Mapreduce、Hadoop、内存计算、BSP模型

本人期末自行整理复习资料,存在些许错误,正在修改,如有发现请及时提醒。

第一章:绪论

  1. 数据密集型计算是对 海量的、非结构化的、快速增长 的数据进行分析和处理

  2. 数据密集型计算的应用领域包括 教育领域、医疗领域、交通领域

  3. 数据密集型计算包括对数据的 获取、分析和理解、管理

  4. “信息雪崩”现象是指随着大数据时代的到来,不断产生大量 结构化、半结构化、非结构化 的信息

  5. 云计算根据需求不提供的服务模式是 HaaS

    大数据给经典的计算机体系结构带来的挑战方面包括 计算部件、存储部件、网络部件

  6. 当前的数据密集型计算呈现出 多样化的格、严格的时间限制、复杂的底层分布构架 特点

  7. 数据密集型计算在系统结构方面面临的最大挑战是 存储超大规模数据量、提高存储系统与计算系统之间的带宽、访问容错

  8. 数据密集型计算是指能推动 计算机科学 发展的对海量和高速变化的数据的获取、管理、分析和理解

  9. 支持数据密集型计算这种并行处理的有关软硬件技术包括 分布式计算框架、多核处理器、高性能计算集群、大规模存储系统

  10. 数据密集型应用:

    数据密集型应用是指那些需要处理大量数据和大量输人/输出的应用,这类应用要处理的数据量较大,它们把大部分执行时间用于数据的处理和输入/输出上。

  11. 计算密集型应用:

    计算密集型应用是指那些需要大量计算资源和计算的应用,这类应用往往处理的数据量较小,但需要大量的计算,它们把大部分执行时间花费在计算上而不是数据的输入/输出上。

  12. 高性能计算:

    高性能计算(HPC)通常是一个计算机集群系统,通过各种互连技术将多个计算机系统连接在一起,利用所有相连接系统的综合计算能力来处理大型计算问题,所以又称为高性能计算集群。

  13. 云计算:

    云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供。云计算建立在一个高效的、高度自动化的、虚拟化的IT 基础架构上。

  14. 云存储:

    云存储是一种网络在线存储(Online Storage)模式即把数据存放在通常由第三方托管的多台虚拟服务器上。

第四章:MapReduce模型

MapReduce

  1. 不属于MapReduce库的输入格式的是 二进制输入

  2. 不是Map端的工作流的是 数据输出

  3. 以下关于map和reduce端工作流程描述

    错误的是:Map任务将其输出结果写入内存中

    正确的是:

    • 当Map任务运行在有相应数据分片的节点上时性能达到最佳

    • Shuffle & sort主要描述数据从map任务输出到reduce任务输入的过程,并确保每个reduce任务的输入都按键排序。

    • 当所有map输出被复制完成后,reduce任务进入排序阶段。如果map输出小于内存,输出结果被复制到reduce工作节点的内存,否则被复制到磁盘

    • 错误的是: 任意格式的输入文件都可以作为MapReduce作业的数据初始存储

      正确的是:

      • MapReduce由map和reduce两个阶段组成,每个阶段包括数据输入,计算处理,数据输出三个步骤。

      • MapReduce模型将MapReduce作业分成若干个任务来执行,其中MapReduce作业作为客户端执行的个工作单元。

      • 主节点内部含有一个http服务器,用输出MapReduce执行的状态报告,状态信息页面之包含了计算执行的进度。

      • 区默认大小为100MB,当缓冲区数据到达闽值,启动 溢出写 线程

      • 属于Reduce输出结果的格式是 文本输出、二进制输出、延迟输出

      • MapReduce模型工作机制中,Reduce端的任务流程

        复制阶段—聚合阶段—Reducer的输入文件—写入输出文件

      • MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。以下选项中是MapReduce模型的优点 接口化、数据分析低延迟、扩展性强

      • MapReduce的Shuffle过程中最后做的操作是 合并

      • MapReduce采用的作业调度算法包括 FIFO、能力调度算法、公平调度算法

      • 一个 MapReduce 作业由 Map 和 Reduce 两个阶段组成,每一个阶段包括 数据输入、计算处理数据输出 三个步骤,其中每一个阶段的输出数据被当作下一阶段的输入数据。

      • MapReduce模型将作业分成若干 任务 来执行,其中MapReduce作业作为客户端执行的一个工作单元,主要包括传输数据, 计算 和配置信息,任务主要包括Map和Reduce两类。

      • 任意格式的输入文件都可作为MapReduce作业的 输入 在文件被处理之前,MapReduce库首先将输入文件划分为M片,每片通常16~64MB,然后再将每个数据片保存在 分布式文件系统 ,在集群形成多份拷贝

      • MapReduce作业首先为每个分片构建一个 Map 任务,由该任务来运行使用者自定义的 Map 函数,进而处理分片中的每条记录。

      • 在MapReduce作业执行过程中,大多数Map任务和Reduce任务的执行均基于不同的 结点 ,而且多数Reduce任务执行时需要 跨结点 去读取其他节点上的Map任务的结果。

      • 在MapReduce中负载平衡机制包括 数据本地化、动态分区、动态调度 和计数器四个方面

      • 在MapReduce中用于作业调度算法有 FIFO调度器、公平调度器、容量调度器 和HOD。

      • MapReduce容错机制一般可分为三种: 任务容错 主节点容错、和 数据容错

      • 简述 MapReduce 的工作流程中的 Map 阶段、Shuffle & Sort 阶段和 Reduce 阶段的主要任务

        • Map:数据输入、Partition、数据溢出写、聚合阶段、写入本地存储器
        • Shuffle & Sort: 主要描述数据从 Map 任务输出到 Reduce 任务输人的过程,并确保每个Reducer 任务的输人都按键排序。
        • Reduce:复制阶段、聚合阶段、Reducer输入文件、写入输出文件
        • 在MapReduce阶段有哪些可以优化的点:

          数据本地化、动态分区、动态调度、计数器

        • 简述溢出写过程:

          每个Map 任务都有一个环形内存缓冲区,用于暂存Map的输出结果,但是当Map 任务的输出结果超出内存的存储能力时,需要在一定条件下将缓冲区中的数据临时写人磁盘,然后重新利用这块缓冲区。这个从内存向磁盘写数据的过程称为溢出写,溢出写是由后台单独线程来完成,不影响 Map 结果写入缓冲区的线程。

        • 简述任务本地化调度过程

          • Job Tracker 收到Map任务,首先检查该任务的数据块是否已经缓存在本地节点上。
          • 如果已经缓存在本地节点上,Job Tracker将该任务分配给该节点上的Task Tracker执行
          • 如果未缓存在本地节点上,Job Tracker将该任务分配给距离最近节点上的Task Tracker执行

Hadoop

  1. 在HDFS中,put命令用于 将文件或者目录从本地文件系统拷贝到HDFS

  2. 在HDFS中,get命令用于 将文件从HDFS拷贝到本地文件系统

  3. 属于Hadoop可以运行的模式有 单机(本地)模式、伪分布式模式、分布式模式

  4. Hadoop支持的分布式文件系统包括 HTFP HIVE

  5. Hadoop的工作流由客户端Job TrackerTask TrackHDSF 四个独立部分控制。

  6. 作业提交通过后,复制资源时,被复制的资源主要包括 JAR文件配置文件数据文件

  7. Job Tracker接收到作业后,将其存放到一个内部作业队列里,当作业 调度器调度某一作业时,首先为作业创建 JobProgress 然后从文件系统中获取已经计算好的 分片信息 ,最后为每个分片创建一个建 任务

  8. 每一个作业和任务都具有一个执行期间不断变化的状态信息,其内容主要包括 状态进度计数器任务日志

  9. 试简述MapReduce的任务推测执行机制

    MapReduce的任务推测执行机制是一种优化策略,用于加速MapReduce作业的运行。它的核心思想是:如果某个任务执行得比其他任务慢,系统会自动创建一个相同任务的副本,并让他们一起运行,以提高运行效率,一旦其中一个任务完成,其他副本被将被终止。

  10. 试简述NameNode的功能和管理方式

    • 功能:管理文件系统的命名空间,块管理,客户端元数据操作数据节点的心跳和块报告
    • 管理方式:单点管理、Secondary、NameNode
    • 试简述DataNode的功能和工作方式

      功能:

      • 存储数据块
      • 数据块的读写操作
      • 块的复制

        工作方式:

        • 块的存储:写入HDFS时,数据发成多个数据块,每个数据块被写入一个DateNode
        • 块的读取:读取数据块时,向NameNode查询块的位置信息,请求DataNode获取数据
        • 块的复制和健康检查:DataNode定期向NameNode发送心跳信号,并报告他们所存储的块信息。

Phoenix

  1. Map和Reduce任务中使用者代码出了运行异常,这是属于 子任务失败

  2. 子进程突然退出,TaskTracker检测到并尝试将自己标记为Failed,这是属于 子进程失败

  3. TaskTracker在预定时间内末收到进度的更新信息,便将任务标记为Failed并结束子进程,这是属于 任务挂起

  4. Phoenix设计了共享内存缓冲区的通信,减少了 数据拷贝 产生的开销

  5. Phoenix是 共享内存 的体系结构上的 MapReduce 模型的实现,主要用于数据密集型任务处理

  6. Yarn位于主节点时,称为 资源管理器 位于工作节点时,称为 节点管理器

  7. 试从计算任务的划分和调度的角度阐述Hadoop与Phoenix的区别

    • Hadoop的计算任务划分和调度是基于 Hadoop MapReduce框架设计的。在Hadoop中,MapReduce 的作业划分为Map和Reduce任务。Map 的任务调度负责处理输入数据的切片,而 Reduce任务负责处理输出优果。
    • Hadoop任务调度是由 Job Tracker管理的,它将Map任务和Reduce任务分配给 Task Tracer节点,通常根据数据本地性和机架本地性来决定任务分配。 Hadoop尽量将任务分配给数据所在结点或相邻机架上的节点,以减少数据传输开销
    • Phoenix是共字内存体系结构上的MapReduce 模型的实现,主要用于数据密集型任务处理。位务划分和调度是基于共享内存多处理器 计算机和多核计算机体系结构,使用线程创建并行化的Map Reduce 任务,并通过任务调度器动态分配任务以实现负载均衡和最大仪吞土量,Phoenix 更关注任务之间的并发管理,而不是数据本地性
    • 简述Phoenix处理系统节点容错和失效恢复的方法

      使用超时机制或后任务发生机制,当一个任务在某个节点上执行时,如果节点长时间没有响应,Phoenix会使用类似子亚马逊计算的策略,在其他工作线程上重复执行该任务,从而实现容错功能。如果一个结点由于故障或其他原因失败,任务可以其他节点上重新执行,确保作业完成。

    • 简述Phoenix处理数据与计算任务同步的方法

      • 使用线程来创建并行化的Map和Reduce任务
      • 调度程序用于动态管理任务的分配和调度,以实现负载均衡和最大吞吐量
      • 中间数据在Map阶段会进行排序和分区,以确保具有相同Key值和Value来自同一单元
      • Reduce任务也是动态分配的,每个任务处理相同Key值和Value分组
      • 调度程序在初始化后决定所需要的内核数量,以及动态分配Map和Reduce任务的数量
      • 容错机制通过超时或重新只能够任务来处理故障,以确保计算可靠性

Spark

  1. Spark是一种基于MapReduce算法的分布式计算框架。它可以 支持内存中数据集的保存和恢复、提供交互式查询、优化迭代工作的负载

  2. Spark运行平台支持单机和集群模式,本地模式 属于单机模式

  3. Spark关联系统包括 SharkSpark StreamingBagel

  4. 弹性分布式数据集是一个按 对象划分 的只读集合,在其处理过程中,如果节点失败,可对丢失的数据集合进行重建

  5. 属于构建弹性分布式数据集的方式有

    文件输入HDFSRDD转换或固化并行化Scala集合

  6. 弹性分布式数据集并行操作主要包括

    ForeachCollectReduce

  7. 关于广播变量 采用对象封装、是只读的、一次性分配给各个工作节点存储在磁盘或HDFS(错误)

  8. 下面哪个组件属于Data Freeway

    HBase(不属于)ScribeCaligraphusPtail

  9. 和Spark为并行程序设计提供了两个抽象概念,包括 弹性分布式数据集 并行操作

  10. Strom通过 ZooKeeper 协调Nimubus和Supervisors的关系

  11. Topology的中的每一个节点包括了处理包括 处理逻辑和结点之间的链接,主要负责指定数据传输到某节点

  12. 试简述Spark对MapReduce模型的改进

    • 引入弹性分布式数据集,允许数据集存在内存中,以便快速访问
    • 迭代计算,可以将数据保存在内存中,而不必在每次迭代时重新加载
    • 多种数据处理操作;提供Map,Reduce,Filter等操作,使数据处理更方便
    • 引入广播变量,允许有效分发只读变量到各个工作结点
    • 动态资源分配,可根据应用程序需求动态分配和回收资源
    • 丰富AP扩展
    • 试简述Facebook在数据的流式处理方面做出的改进

      结构简单,可以兼容多种开发语言,集群类似Hadoop集群。不同之处在于Hadoop集群运行MapReduce Job,而Strom运行Topologies,job和Topologies存在的差异主要是MapReduce,Job最终会被完成,而Topologies进程一直运行,除非该进程被杀死

    • 试简述Storm对MapReduce模型的改进

      • Flink的采用,Flink提供了强大的事件时间处理,状态管理和故障恢复机制,助于处理大规模数据流
      • Realtime·Analytics,改善其实时分析处理系统,使其能够更快地处理和分析数据流
      • 改进数据流式处理系统,以支持实时决策

第二章:

计算部件

  1. 众核处理器引入 片上路由网络 机制,片上路由可以实现点对点的通信,适合更细粒度的任务

  2. GPU通过增加 ALU+Control 提高处理能力和存储器带宽,使得GPU在处理能力和存储器带宽上相对于CPU具有明显优势。

  3. 若一个DPPA拥有四个单指令多数据流引擎,每个引擎由共用一个PC的16个线程处理器组成,一个线程处理器包括四个标量计算核和一个超级计算核,那么该DPPA拥有 320 个计算核。

    4*16*(4+1)=320

  4. 按照数据访问频率,片上存储器分配策略包括: 根据访问次数的静态分析法根据使用频率动态分配分时存储数据分片

  5. 用三元组记录数据值、数据出现的起始位置和持续长度,代替具有相同值的若干连续原始数据的方法是 行程编码算法

  6. 生成“原始值-替代值”的对照词典,并使替代值的长度小于原始值的长度,存储时为达到压缩存储空间目的只存储替代值的方法是 词典编码算法

  7. 为每一个不同的取值生成一个位向量,根据位向量中不同的位置取值0或1来对应并确定不同的原始值的方法是 位向量编码算法

  8. 简单的将哈希值和服务器个数进行取模映射,当添加服务器或服务器发生故障时,会导致 大规模数据迁移

  9. 典型Linux集群可分为 科学计算集群负载均衡集群 高可用性集群 三类。

  10. 列式存储为数据在物理上基于 列存储 列式存储一方面可以减少查询数据的数据量,另一方面数据易于压缩

  11. 分布式存储能够将数据分布到多个节点上,并且在多个节点之间实现负载均衡,其主要方式有 哈希分布顺序分布

  12. 集群:

    集群是一组相互独立的、通过高速网络互连并以单一系统模式加以管理的计算机群构成的系统

  13. 元组物化:

    元组物化也称为物化即将常用元组或可能用到的逻辑元组由实际物理存储的状态生成为实体化的元组,存储在内存中,在随后查询时,直接读取已经物化的元组,以提高查询的效率。而元组物化有两种方案,分别是提前物化和延时物化,前者在提交查询之前物化元组,后者尽量推迟物化元组的时间,在查询中间的某个时刻物化元组。

  14. 成组迭代

    若要处理一系列记录,行数据库要对每个记录依次进行迭代,从每个记录的操作接口中选取需要的属性或者执行函数的调用。这是一个高成本的操作,故而可以成组地调用函数,以节约资源。

  15. 哈希分布因服务器发生变化的时候,原来的映射关系被打乱导致大规模数据迁移。试简述解决办法

    • 不再简单地将哈希值和服务器个数进行取模映射,而是将哈希值与服务器的对应关系作为元数据,交由专门的元数据服务器来管理。
    • 是采用分布式哈希表(Distributed Hash Table,DHT)算法给系统中的每一个节点分配一个随机 Token,这些 Token 构成一个哈希环。

网络部件 存储部件

  1. 目前,常用的片上通信结构主要有五种: 点对点全连接、交叉开关共享总线 、片上网络和片上混合互连
  2. DCIN (Data Center lnternetwork) 的技术要求有: IP地址保留 ,带宽优化,操作简单,独立传输
  3. 虽然支持数据密集型计算的网络技术和体系结构还不够成熟,但是已经出现了一些面向未来数据中心和商用交换设备的设计理念。比如说: 互不干涉网络 、平面网络拓扑和多路径、 分层数据中心
  4. 在虚拟机的I/O虚拟化实现方式中,适合高性能计算的模型是 Direct I/O模型
  5. 软件定义存储数据管理包括 存储空间管理数据安全控制空间使用控制 方面的管理
  6. 软件定义存储软件定义网络软件定义数据中心 软件定义计算属于软件定义部件。
  7. 软件定义部件中的 软件定义存储 是软件定义网络和软件定义数据中心的一个重要组成
  8. 以下属于软件定义存储的主要特征的是 自动存储管理功能存储虚拟化对存储体和数据底层构造的独立管理
  9. NAS 存储带有文件操作和管理系统,灵活但可扩展特性较差
  10. 软件定义部件的核心就是要强化体系结构对 服务器虚拟化存储虚拟化 和网络虚拟化的支持
  11. 软件定义部件的最终目标是将 虚拟化 扩展至数据中心的计算、存储、可用性、网络及安全等所有资源及服务上
  12. SDS数据管理通常包括 安全性控制空间管理 和空间使用控制三个方面的管理
  13. 软件定义存储主要要求 存储功能硬件存储本身 分离,使用智能软件在标准硬件中实现自动的、基于一定策略的针对应用需求的存储服务。
  14. 简述IP地址的双重功能以及每种功能对应的协议
    • 一个IP地址识别一个主机,IP地址作为对等主机的标识符,这一特征被称为识别功能。(主机识别协议)
    • IP地址代表着主机连接到当前拓扑网络的接口,用于在特定网络中寻找到主机。当主机移动或者其依附的网络接口迁移到另一个地方的时候,IP地址也会改变,这一特性被称为定位功能。(探测器分离协议)

软件定义部件

  1. SDN的典型架构从上到下分为 应用层控制层基础设施层

  2. 网络簇用统一簇级网络接口实现对数据的访问,其采用的协议为 NSD

  3. 授权全球通信让大跨度的多集群联合为一个SDS集群,其主要特点包括 跨地域的全球命名空间共享文件可同时做镜像文件和目标文件镜像文件与目标文件互相独立

  4. 属于软件定义数据中心的形成所需要进行层次抽象的是 物理环境虚拟环境云计算环境

  5. SDN本质上具有三大特性,其中三大特性是 控制和转发分离设备资源虚拟化通用硬件及软件可编程

  6. 信息生命周期管理包括两个方面的操作,分别是自动检测文件所在的物理位置的 文件布局管理 管理和负责对特定文件做操作的 数据克隆 管理

  7. 数据安全性控制主要使用了 数据快照数据克隆 两种技术保证了数据的安全性

  8. 软件定义网络的设计理念就将 控制平面 与 数据转发平面 分离,并实现可编程化控制。

  9. 简述NSD服务器的功能以及在多集群数据共享中的作用

    • 集群配置首先需要有一个统一的簇级网络接口实现对数据的访问,这被称为网络共享磁盘(NSD)协议。
    • 在SDS集群配置中,网络簇配置方式使用NSD协议来统一数据访问接口。对于集群之间互相访问的情况,集群也需要使用NSD协议来获得全局一直的访存接口。
    • 简述授权全球通信中目标文件和镜像文件的关系

      在访问远程文件时,拷贝下来的时镜像文件,被访问的源文件时目标文件。同一个目标文件的多个镜像文件都有自己的配置参数,只是共享了逻辑存储。

内存计算

内存计算的硬件结构

  1. 为了将磁盘中的海量数据迁移到内存当中,需要内存具有哪个特征:具有很高的容量-价格比具有较高的访问速度和总线带宽具有磁盘一样的非易失性

  2. 下列哪种存储器能用于内存计算

    PCMMRAMBBSRAM、DRAM(不能)

  3. 内存计算要解决的问题是:处理器访问磁盘存储器的时延问题

  4. FRAM存储介质是 铁晶体材料

  5. 以下属于内存计算软件对传统X86系统提出的要求是:更强的计算能力更大的内存容量支持更高的可用性、保证内存与处理器之间数据的高速传输(不属于)

  6. 计算机处理数据时,CPU寻找数据的顺序为:先寻找Cache再内存最后磁盘

  7. 以下哪种计算内存类型存在PIM内部通信网络 FlexRAMCIMMDIVA、Active pages(不存在)

  8. 下列哪种存储器使用了阻变材料 RRAM

  9. 以下哪种文件是属于树状存储方式的 索引文件目录文件数据文件、指针块文件(不属于)

  10. 内存写次数优化 可以延长计算内存的使用寿命

  11. 内存计算要解决的是处理器访问磁盘存储器的 时延 问题

  12. 计算内存分为两类,一类是CPU和内存相互独立,CPU具有较为完整的结构和功能,内存和CPU通过总线连接,这种结构称为” 岛式计算内存结构 “:另一类是将简单的逻辑运算单元在生产过程中就与内存单元集成到一起,这种结构称为 全集成计算内存结构

  13. 集成了计算单元的 计算内存 打破了传统冯·诺伊曼结构所带来的内存墙,提高了内存带宽和容量

  14. 在树状存储方式中,文件类型有三种分别是:索引文件目录文件数据文件

  15. 内存计算:

    是一种面向大数据处理,通过对体系结构及编程模型等进行重大革新,最终显著提升数据处理性能的计算模式

  16. 计算内存

    为了满足内存计算的需求,用户需要一种非易失性,快速读取的,同时没有限制的内存。

  17. 元数据

    元数据是描述数据的数据

  18. 能够适用于将磁盘中的海量数据迁移到内存当的内存,通常具有哪些特征

    • 很高的容量价格比
    • 具有磁盘一样的非易失性
    • 具有较高的访问速度和总线带量
    • 试阐述两种岛式计算内存的区别。

      • DIVA是一种岛式内存计算结构。DIVA 的设计目标是实现一种通用的内存计算系统。 DIVA 能够支持广泛的应用程序,同时又具有计算内存体系结构高总线带宽、低访存延时等特点。
      • Active pages 是一种岛式计算内存,与其他计算内存的结构不同,Active pages 的计算单元是可编程逻辑器件,因此 Active pages 计算内存结构是可以重构的。
      • 试阐述两种全集成型计算内存的区别

        • FlexRAM是一个种全集成式计算型内存结构,该系统有较高的内存带宽,能够在不重新编译的情况下直接运行在X86 系统上运行的程序。
        • CIMM系统是一种集成式计算内存结构,被用来做视频编码中的运动估计。CIMM系统的计算内存与主内存使用同一不地址空间。

内存计算的系统软件

  1. 以下对于几种存储方式描述正确的是

    • 混合索引的索引结点较树状存储方式更易于实现
    • 映射表存储方式常使用空间预分配策略
    • 树状存储方式中的三种文件的元数据都存放在一定大小、结构相同的索引块中
    • 映射表存储的虚拟内存空间中包括了内存映射表(错误)
    • 下列关于元数据说法正确的是

      • 元数据是描述数据的数据
      • 文件系统使用文件元数据来描述文件并组织文件在物理存储上的空间
      • 文件的存储方式主要是以元数据的存储方式来区别的
      • 在文件系统领域每一个元数据结构体对应多个文件(错误)
      • 在内存文件系统的文件操作中,关闭文件 操作会删除内存打开表的文件元数据

      • 在内存文件系统的文件操作中,删除文件 操作会删除系统目录中相应的目录项并回收存储空间

      • 内存文件系统具有垃圾收集机制,为了收集过时的块,垃圾收集机制会从元数据着手。因为元数据在读写文件或修改文件信息时很频繁地被修改,所以元数据块往往存储在内存的 NVM 中,文件系统不需要频繁地将其写出,因此 外村 元数据块是最好的垃圾收集的候选

      • 文件系统一致性控制是文件系统要处理的首要问题,在传统文件系统中,如果出现断电等原因导致文件系统崩溃,可能导致文件数据错误。而文件系统一致性包含三个层次的概念,分别是:元数据一致性数据一致性版本一致性、逻辑一致性(不是)

      • 一些文件系统写次数优化策略可以用来更加平均地使用内存中的NVM,下面属于常见的写次数优化策略是:强制换出策略同条转换策略分块转换策略、分页转换策略(不是)

      • NVM的系统为降低文件操作的系统开销,采用了 不固定位置的元数据在需要时读入NVM减少元数据写回将固定位置的元数据在启动时读入NVM 方法

      • 属于改进的影子分页技术:原地写策略原地置换策略、部分copy-on-write、原地增加策略(不属于)

      • 常见的写次数策略中,可在数据块层次上保持一个NVM的写次数限制,但是对于单个词条记录,采用 词条转换策略 更细粒度层的上控制写次数,能防止特定数据结构中单个数据的重复写问题

      • 简述混合索引存储方式中索引节点的类型和各索引节点的作用

        • 超级快:用于存储整个文件系统的一些描述信息
        • 索引位图,数据页位图:用来管理文件系统中的空闲块
        • 数据块信息:用来记录 Flash Memory块的信息
        • 简述映射表文件大小、映射大小和虚拟大小的意义及作用

          文件占用大学即文件的实际大小,映射地址占用戴奥是文件在物理存储体上占用的大小,虚拟地址占用大小是文件在虚拟空间上占用大小来分析,虚拟地址大小总是大于等于映射地址占用。

内存数据库

  1. 内存数据库的主要设计理念是将数据从 磁盘 迁移到 内存 中从而直接消除磁盘I/O对数据库速度的影响,达到提高数据库事务处理性能的目的。

  2. 相比于DRDB,MMDB的优点包括 完成同样功能所需的机器指令少不需要缓冲区管理器简化内存管理降低开销

  3. 由计算型内存组成的计算机体系结构,在任务并行当中会遇到四种传统负载均衡算法无法解决的问题。总的来讲,一般包括下面几个方面的研究 任务负载评估任务分割数据分布及访存算法

  4. 内存数据库的关键技术包括 并发控制日志处理数据访问

  5. 为了提高缓存的利用率,下面哪种方式采用了对cache敏感的索引 CSS树

  6. T树是特殊的 平衡二叉树 ,T树的每个节点上有 多个 索引项,并且 不包含其他中间结点

  7. SAGE是一种能对FlexRAM精确估算程序执行时间的方法,它将系统行为分为 运算内存访问代码动态执行

  8. 计算内存体系结构上的数据分布包括 系统运行时数据分布系统初始化数据分布

  9. 内存数据库查询操作的开销主要是处理器的 计算时间内存访问时间

  10. 请简述系统初始化数据分布时,用于解决计算内存数据分配冲突的办法

    当出现数据分配冲突时,系绝就把冲突的数据放入等待队列当中,等到其它数报被合理地分配到最佳的计算内存中后,再重新为这些 缓存数据分配存储位置

  11. 传统计算机系统如何预测程序的执行时间?SAGE为了预测计算型内存上程序的执行时间,在传统计算机系统的预测方法上做了哪些改进?

    • 传统计算机:通过对程序的部分执行代码的分析来预测程序的执行总时间,或者根据程序代码不同指令的执行时间来估算整个程序的总执行时间。

    • SAGE将以上两种方法融合在一起,将系统分为三个基本模型,即内存访问,运算和代码动态执行,并以这三种行为作为参数,形成一张行为权重表。

    • 什么是内存数据库?请简述共享内存机制在内存数据库所起的作用

      • 内存数据库的主要设计理念是将数据从磁盘迁移到内存中,从而消除磁盘I/O对数据库速度的影响。
      • 内存数据库依托操作系统的共享内存机制,将整个数据库装入一块共享内存当中,访问数据库的进程只需要将整个数据库的一部分映射到本进程的虚拟地址空间

BSP模型

  1. BSP模型中,计算由一系列超步组成。超步由哪几个阶段组成?

    ①输入阶段 ②输出阶段 ③局部计算阶段

  2. OSL库是一个用C++语言在MPI通信库基础上编写的BSP算法架库,OSL库实现了 4 类典型的数据并行框架?

  3. 基于BSP模型的计算框架是 GPSHAMAPregel、Pig Latin(不是)

  4. 一个典型的Pregel计算过程包括以下步骤:读取输入数据初始化图输出结果、修改目标顶点的ID(不包括)

  5. 在Pregel的聚类算法中,整个计算过程终止的条件是 某一个超步中没有顶点的值发生改变时

  6. Pregel采用 纯消息 的传递模式

  7. OSL库是一个用C++语言在MPI通信库基础上编写的BSP算法框架库,以函数对象的形式实现了三类常见的通信框架 。

    ①左移 ②右移 ③子阵装置

  8. DBSP是一种可分解的整体同步并行模型,可将计算机群分割为子机群,若子机群间需要通信,需执行 join 操作

  9. NBSP是一种嵌套的整体同步并行模型,可以将处理器集合进行分割,其分割的依据包括了 ①通信带宽 ②通信延迟

  10. 在Pregel的每一个超步中,顶点的计算都是并行的。顶点在 计算开始 接受到其他顶点的消息 的时候处于活跃状态,能参与超步的计算。

  11. 超步:

    • 超步是一种用于并行计算的模型,将计算分为一系列的步骤,每个步骤包括一组并行执行的计算,每个计算在步骤结束时同步。超步的实现可以采用以下步骤:划分任务,执行计算,超步同步,通信交换,迭代计算。
    • BSP模型是整体同步并行模型,是英国科学家Leslie G.Valiant为架起并行体系结构和并行编程语言之间的桥梁而提出的一种并行计算模型。请简要阐述一下BSP模型。

      • BSP模型旨在架起并行体系结构和并行编程语言之间的桥梁。BSP模型将计算分为一系列的步骤,每个步骤包括一组并行执行的计算,每个计算在步骤结束时同步。
      • BSP模型有三个主要属性
        1. 整体同步:BSP模型将计算分为一系列的步骤,每个步骤包括一组并行执行的计算,每个计算在步骤结束时同步。
        2. 局部计算:每个计算节点只能访问本地存储器中的数据,而不能访问其他计算节点的数据。
        3. 通信交换:在超步同步期间,进行通信交换以传输节点之间的数据。通信可以通过发送和接收消息来实现,可以采用点对点通信或广播通信两种方式。
      • 请简要阐述BSP模型在大数据时代的应用。

        • Pregel大规模图形处理框架
        • HAMA在Hadoop架构基础上提供了高层次BSP,用于大规模的科学计算
        • GPS是一完全开源的高可扩展性,可容错性和易于编程的大规模图形处理系统
        • Giraph 可用于数据处理和分析

Pregel

  1. Pregel的纯消息传递机制中,消息的通过 迭代器 传递到目的节点

  2. 实现大规模图处理计算方法 Pregel 方案更加有效

  3. Pregel的聚合器是一种提供 全局通信和监控 的机制。

  4. 在Pregel程序的执行过程中,当一个工作节点加载的顶点不属于该工作节点分配的子图时,将 把加载的顶点发送到拥有该顶点的工作节点

  5. Pregel的聚合器是一种提供全局通信和监控的机制。聚合器可以用于 统计全局协调实现分布式队列

  6. 在一个Worker中,它所管辖的子图的状态信息是保存在内存中的。子图中的顶点的状态信息包括

    • 顶点的当前值。 以该顶点为起点的出射边列表,每条出射边包含了目标顶点ID和边的值

    • 消息队列,包含了所有接收到的、发送给该顶点的消息

    • 标志位,用来标记顶点是否处于活跃状态

    • Pregel是为Google的集群架构而设计的。它的Master是如何判断Worker失效? 发现Worker失效后,采用了哪些应对措施?

      (1)

      • 任务完成情况:某个Worker的任务长时间没有完成或进程缓慢将视为Worker失效

      • 请求操作:主节点会定期发送请求,并等待响应

        (2)

        • 重新分配结点:当一个结点失效时,将分配到其他可用节点。
        • 故障丢失:当发生故障时,将工作结点子图的当前状态丢失,重新分配工作节点

          Dryad

          1. 关于Dryad系统架构
            • Dryad系统架构主要包括了任务管理器,集群,命名服务器守护进程四个组成部分
            • 王务管理器可以控制任务的执行,负责分配作业,监控各个节点,并动态调整工作图
            • 守护进程运行在每个节点上,负责在任务管理器实例化的节点上创建进程
            • 命名服务器只包含节点的拓扑网络结构,并不包含每个节点的信息 (错误)
            • 关于以下说法
              • SCOPE是一种针对大规模数据分析的说明性脚本语言
              • Dryad LINQ可以把LINQ程序转化为分布式计算指令,可以说是一种分布式编程语言
              • Cosmos是Dryad平台下的分布式文件系统,用于存储与分析大量数据集
              • Dryad系统主要用来构建能够用二又树描述的并行程序(错误)
              • Dryad要求所采用策略的建模算法满足 Q>>S 其中Q表示虚节点,S表示资源数
              • Dryad系统通过构建 有向无环图 来描述并行程序,根据程序的要求进行任务调度,自动完成任务在各个节点上的运行
              • 下列属于Dryad系统构架的有 任务管理器(Job manager)守护进程集群、Job Tracker(不属于)
              • 以下关于SCOPE说法
                • SCOPE是运行在Dryad平台上的一种声明式的、可扩展的脚本语言。
                • SCOPE是一种针对大规模数据分析的脚本语言
                • SCPOE支持高度可扩展,用户可以根据需要自定义函数
                • SCPOE不支持使用传统的嵌套SQL表达式(错误)
                • 以下关于Dryad说法
                  • DryadLINQ是一个把LINQ程序转化为分布式指令,以便运行于Dryad的编译器
                  • Dryad算法模型就是一种简化并行计算的编程模型
                  • SCOPE是运行在Dryad平台上的一种声明式的可扩展的脚本语言
                  • Dryad不仅可以运行在Windows HPC Server系统还兼容Linux系统(错误)
                  • MapReduce与Dryad比较
                    • MapReduce为大规模集群编写应用程序无须顾虑集群的可靠性、可扩展性等问题
                    • MapReduce封装了并行处理、容错处理、本地化计算、均衡负载等细节
                    • 在进行大规模数据处理时,使用.Net平台的用户更倾向于选择Dryad LINQ语言
                    • Dryad不仅可以运行在Windows HPC Server系统还兼容Linux系统(错误)
                    • Dryad的执行过程可以看作一个 二维 管道流的过程
                    • 在windows服务集群扩容时,Dryad集群采用了何种技术让系统扩容比传统方式更佳?
                      • 采用虚结点,将任务程序分为多个虚结点,虚结点的个数要远大于资源数