单选15道,简答5道,论述1道

精简版答案

大数据的概念和特征

参考课件一P13页

  • 大数据,指的是所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。

  • 大数据的三个特点 - 3Vs:

    • Volume( 大量 ) 数据量大,从TB级别跃升到PB级别
    • Variety( 多样 ) 数据类型繁多
    • Velocity(高速)数据的时效性,数据仅在一个短暂的时间范围有价值

大数据的分类

参考课件二P2

  1. 对大数据的数据结构类型分类:非结构化,半结构化,结构化数据,多结构数据。

  2. 对大数据的 数据源 分类:网络(网站、媒体)、机器感知、传感设备、交易、科研等。

  3. 对大数据的 数据存储类型 分类: (1)行导向存储 (2)列导向存储 (3)行列混合导向存储(4)图存储 (5)Key-Value存储(6)内存存储

  4. 对大数据的 数据处理类型 分类:(1)批处理 (2)流处理 (3)迭代处理

云计算的概念、特征。

定义参考课件二P6

  • 定义:云计算是一种模型,它向用户提供了一种随时地、便捷地、随需应变地从可配置计算资源共享池中获取所需资源的方式,资源能够快速供应并释放,使管理资源的工作量和服务提供商的交互减小到最低限度。

    特征来源自网络

  • 特征:1、虚拟化技术2、动态可扩展3、按需部署4、灵活性高5、可靠性高6、性价比高7、可扩展性

Iaas、SaaS、Pass介绍

[答案来源自网络]

  1. IaaS:基础架构即服务,Infrastructure-as-a-service 。IaaS 是云服务的最底层,主要提供一些基础资源。

  2. SaaS:软件即服务,Software-as-a-service。SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用。

  3. PaaS:平台即服务,Platform-as-a-service。PaaS 提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层。

虚拟化技术的概念、特征。

参考自课件二P7

  1. 概念:虚拟化技术是建立云计算架构的基础技术,它使云计算中心的计算资源和存储资源在逻辑结构上相互独立。
  2. 特征:虚拟化技术使用软件的方法重新定义划分了实体资源,将服务器、网络、I/O设备、内存及存储等多种计算机实体资源予以抽象、转换,并以虚拟资源池的形式呈现出来,打破了实体资源结构间不可切割的障碍,消除了实体资源的架设方式、地域或物理组态的限制,实现了虚拟资源的动态分配、灵活调度、跨域共享,不仅提高了资源利用率,同时可服务于各行各业中灵活多变的应用需求。

Hadoop的基本特征及优缺点

参考课件一和课件三P21

  • 基本特征:Hadoop[19][20]是由Apache软件基金会开发的一个开源的可运行在大型分布式集群上的并行编程框架

  • 优点(1)高可靠性。(2)高扩展性。(3)高效性。(4)高容错性。(5)低成本。

  • 缺点:对小块数据处理的速度较慢,数据处理的过程中产生的中间文件比较大时会增加网络传输的开销,它的性能和稳定性有待提高。

Hadoop的运行模式

参考课件一

  1. 单机模式
  2. 伪分布式
  3. 完全分布式

HDFS的概念及特征

参考课件一

  • 概念:Hadoop分布式文件系统,即HDFS,是一种适合运行在廉价硬件上的分布式文件系统。
  • 特征:
    1. 在HDFS文件系统中,一个文件将被分布在集群中的多台机器上存储。
    2. 它是一个高度容错性的系统
    3. 它能提供高吞吐量的数据访问
    4. 它非常适合大规模数据集上的应用

HDFS的处理流程

参考课件一

读文件操作:

  1. 客户端向NameNode发出打开指定文件请求;
  2. NameNode在元数据中找到该文件与DataNode之间数据块的映射关系,并将此数据返回给客户端;
  3. 客户端按照映射关系,向指定DataNode发出读数据请求,并进而获取数据。
  4. 如果第3步出现故障,客户端将根据映射从另外的DataNode 上获取同样的数据,这体现了HDFS的容错能力;
  5. 客户端向NameNode发出关闭文件请求,以结束此次文件读操作。

写文件操作:

  1. 客户端向NameNode发送创建文件的请求,NameNode计算出该文件与DataNode之间数据块映射关系的元数据,并将此数据返回给客户端;
  2. 客户端按照映射关系,向第一个DataNode发送写数据的请求,并进而写入数据;
  3. HDFS根据映射关系,将同样的数据块写入到另外两个DataNode主机上;
  4. DataNode写数据块成功后,向前一个DataNode返回应答结果;
  5. 第一个DataNode将最终应答结果返回给客户端;
  6. 客户端向NameNode发送关闭文件请求,以结束此次文件写操作。

JobTracker、TaskTracker节点的工作原理及特征

参考课件一

  • JobTracker节点:
    1. 一个集群中只有一个JobTracker进程,它运行在主节点上。该进程负责将应用程序与Hadoop系统对接。
    2. 当执行用户提交的应用程序时,JobTracker负责确定要处理的文件,并为所执行任务分配指定的节点主机。
    3. JobTracker还负责监控所运行的任务。一旦发现某任务失败,将重启该任务。
  • TaskTracker节点:
    1. TaskTracker进程在从节点上,与同样位于从节点的负责存储数据的DataNode进程相结合进行工作。
    2. TaskTracker的作用是独立管理其所在从节点上的任务进程。
    3. 每个从节点上只有一个TaskTracker,但它可以产生多个JVM进程,以并行处理多个Map和Reduce任务。
    4. TaskTracker的一个重要职责是与JobTracker进行定时通讯联络。

DataNode、NameNode节点的工作原理及特征

参考课件一、课件二
1 NameNode

NameNode是一个在HDFS实例中单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode决定是否将文件映射到DataNode上的复制块上。对于最常见的3个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。

2 DataNode

DataNode也是一个在HDFS实例中单独机器上运行的软件。Hadoop 集群包含一个NameNode和大量DataNode。DataNode通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。

DataNode响应来自HDFS客户机的读写请求,同时也来自NameNode 的创建、删除和复制块的命令。NameNode依赖来自每个DataNode的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode可以根据此报告验证块映射和其他文件系统元数据。如果DataNode无法发送心跳消息,NameNode将采取修复措施,重新复制在该节点上丢失的块。

Host、Slave节点特征

[参考自百度]

Host的节点主要是起一个对域名解析到那个虚拟主机进行配置,其name属性即为访问的域名。

作为主节点(Master Node)的主机一个Hadoop集群中只能有一个主节点。

主节点是集群的核心,负责协调和管理对所有从节点的数据访问和计算工作。

作为从节点(Slave Node)的主机

除主节点主机外的所有主机均作为从节点。数据分布在各从节点上,由HDSF进行统一管理。

各从节点还担任着数据的计算工作。此工作由节点上的MapReduce子系统来完成。

MapReduce的优点和特征

参考课件三

  • 优点:
    1. 对硬件低要求
    2. 接口化
    3. 编程语言多样化
    4. 扩展性强
    5. 数据分析低延迟

MapReduce的处理流程

参考课件一

  1. 确定数据块和记录
  2. Mapper任务算法处理
  3. 中间结果本地整合
  4. 分区划分结果为组
  5. Reducer任务整合为单一结果

shuffle & sort的过程

参考课件二

首先,将写入本地存储器的<Key; Value>对(由map任务输出)分为R个区(R的大小由用户定义),并且每个分区对应一个Reduce任务。然后,将这些中间<Key; Value>对的位置通报给master,master负责将信息转发到Reduce worker,当master通知分配了正在运行reduce任务的worker所负责的分区位置(每个map任务产生的中间<Key; Value>对都可能映射到所有R个不同分区)时,Reduce worker先读取它负责的所有中间<Key; Value>对,在对它们进行排序,然后使得相同键的<Key; Value>对聚集在一起。

“心跳”的概念

参考课件一

NameNode会周期性地接收集群中每个DataNode发送过来的心跳包和数据块报告,并根据这个报告验证数据块映射和其他文件系统元数据。如果NameNode能够定时收到DataNode的心跳包,则认为DataNode工作正常。否则将标记那些没有心跳的DataNode为宕机,且不会再发给它们任何新的IO请求。

参考课件二

NameNode依赖来自每个DataNode的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode可以根据此报告验证块映射和其他文件系统元数据。如果DataNode无法发送心跳消息,NameNode将采取修复措施,重新复制在该节点上丢失的块。

Tasktracker利用循环定期向jobtracker发送“心跳(heartbeat)”,“心跳”告知jobtracker它是否还在运行,同时“心跳”还携带很多的信息,例如当前Map任务完成的进度信息。另外,tasktracker作为“心跳”的一部分,会指明它是否已经准备好运行新的任务,如果是,jobtracker会为它分配一个新的任务,并使用“心跳”的返回值与tasktracker进行通信,“心跳充当了两者之间的消息通信

HBase的特征

参考课件一

  1. 大:一个表可以包含上亿行,上百万列
  2. 面向列:面向列(族)的存储和权限控制,列(族)的独立检索
  3. 稀疏:对于为空(Null)的列,不占用存储空间
展开Wang Xing 的答案

1 、大数据的概念和特征

大数据,指的是所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。

大数据的三个特点—3Vs:

- Volume(大量)数据量大,从TB级别跃升到PB级别

-Variety(多样)数据类型繁多

Velocity(高速)数据的时效性,数据仅在一个短暂的时间范围有价值

2 、大数据的分类

·非结构化:文本、图形、声音等

·半结构化:日志

·结构化数据:行列规整的表单数据

·多结构数据:以上三种类型混合的数据

3 、云计算的概念、特征。

云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。

云计算的可贵之处在于高灵活性、可扩展性和高性比等,与传统的网络应用模式相比,其具有如下优势与特点:1、虚拟化技术。

必须强调的是,虚拟化突破了时间、空间的界限,是云计算最为显著的特点,虚拟化技术包括应用虚拟和资源虚拟两种。众所周知,物理平台与应用部署的环境在空间上是没有任何联系的,正是通过虚拟平台对相应终端操作完成数据备份、迁移和扩展等。

2、动态可扩展。

云计算具有高效的运算能力,在原有服务器基础上增加云计算功能能够使计算速度迅速提高,最终实现动态扩展虚拟化的层次达到对应用进行扩展的目的。

3、按需部署。

计算机包含了许多应用、程序软件等,不同的应用对应的数据资源库不同,所以用户运行不同的应用需要较强的计算能力对资源进行部署,而云计算平台能够根据用户的需求快速配备计算能力及资源。

4、灵活性高。

目前市场上大多数IT资源、软、硬件都支持虚拟化,比如存储网络、操作系统和开发软、硬件等。虚拟化要素统一放在云系统资源虚拟池当中进行管理,可见云计算的兼容性非常强,不仅可以兼容低配置机器、不同厂商的硬件产品,还能够外设获得更高性能计算。

5、可靠性高。

倘若服务器故障也不影响计算与应用的正常运行。因为单点服务器出现故障可以通过虚拟化技术将分布在不同物理服务器上面的应用进行恢复或利用动态扩展功能部署新的服务器进行计算。

6、性价比高。

将资源放在虚拟资源池中统一管理在一定程度上优化了物理资源,用户不再需要昂贵、存储空间大的主机,可以选择相对廉价的PC组成云,一方面减少费用,另一方面计算性能不逊于大型主机。

7、可扩展性。

用户可以利用应用软件的快速部署条件来更为简单快捷的将自身所需的已有业务以及新业务进行扩展。如,计算机云计算系统中出现设备的故障,对于用户来说,无论是在计算机层面上,亦或是在具体运用上均不会受到阻碍,可以利用计算机云计算具有的动态扩展功能来对其他服务器开展有效扩展。这样一来就能够确保任务得以有序完成。在对虚拟化资源进行动态扩展的情况下,同时能够高效扩展应用,提高计算机云计算的操作水平。

4 Iaas SaaS Pass 介绍

IaaS:基础设施服务,Infrastructure-as-a-service

IaaS 是云服务的最底层,主要提供一些基础资源。

SaaS:软件服务,Software-as-a-service

SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用。

PaaS:平台服务,Platform-as-a-service

PaaS 提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层。

5 、虚拟化技术的概念、特征。

虚拟化技术是建立云计算架构的基础技术,它使云计算中心的计算资源和存储资源在逻辑结构上相互独立。虚拟化技术使用软件的方法重新定义划分了实体资源,将服务器、网络、I/O设备、内存及存储等多种计算机实体资源予以抽象、转换,并以虚拟资源池的形式呈现出来,打破了实体资源结构间不可切割的障碍,消除了实体资源的架设方式、地域或物理组态的限制,实现了虚拟资源的动态分配、灵活调度、跨域共享,不仅提高了资源利用率,同时可服务于各行各业中灵活多变的应用需求。

6 Hadoop 的基本特征及优缺点

(1)高可靠性。Hadoop按位存储和处理数据的能力以及分布式文件系统的备份恢复机制和MapReduce的任务监控保证了分布式处理的可靠性。

(2)高扩展性。Hadoop是在可用的计算机集群间分配数据并完成计算任务的,集群可以方便地扩展到数以千计的节点中。

(3)高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

(4)高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

(5)低成本。Hadoop是开源的,项目的软件成本因此会大大降低。

但是,Hadoop最大缺点是对小块数据处理的速度较慢,数据处理的过程中产生的中间文件比较大时会增加网络传输的开销,它的性能和稳定性有待提高。

7 Hadoop 的运行模式

1.独立(本地)运行模式:无需任何守护进程,所有的程序都运行在同一个JVM上执行。在独立模式下调试MR程序非常高效方便。所以一般该模式主要是在学习或者开发阶段调试使用 。

2.伪分布式模式: Hadoop守护进程运行在本地机器上,模拟一个小规模的集群,换句话说,可以配置一台机器的Hadoop集群,伪分布式是完全分布式的一个特例。

3.完全分布式模式:Hadoop守护进程运行在一个集群上。

8 HDFS 的概念及特征

在HDFS文件系统中,一个文件将被分布在集群中的多台机器上存储。

HDFS与其他分布式文件系统的主要区别是:-它是一个高度容错性的系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用

9 HDFS 的处理流程

10 JobTracker TaskTracker 节点的工作原理及特征

JobTracker:

(1)概述:JobTracker是一个后台服务进程,启动之后,会一直监听并接收来自各个TaskTracker发送的心跳信息,包括资源使用情况和任务运行情况等信息。

(2)JobTracker的主要功能:

1.作业控制:在hadoop中每个应用程序被表示成一个作业,每个作业又被分成多个任务,JobTracker的作业控制模块则负责作业的分解和状态监控。

最重要的是状态监控:主要包括TaskTracker状态监控、作业状态监控和任务状态监控。主要作用:容错和为任务调度提供决策依据。

2.资源管理。

TaskTracker:

(1)TaskTracker概述:TaskTracker是JobTracker和Task之间的桥梁:一方面,从JobTracker接收并执行各种命令:运行任务、提交任务、杀死任务等;另一方面,

将本地节点上各个任务的状态通过心跳周期性汇报给JobTracker。TaskTracker与JobTracker和Task之间采用了RPC协议进行通信。

(2)TaskTracker的功能:

1.汇报心跳:Tracker周期性将所有节点上各种信息通过心跳机制汇报给JobTracker。这些信息包括两部分:

  • 机器级别信息:节点健康情况、资源使用情况等。

  • 任务级别信息:任务执行进度、任务运行状态等。

2.执行命令:JobTracker会给TaskTracker下达各种命令,主要包括:启动任务(LaunchTaskAction)、提交任务(CommitTaskAction)、杀死任务(KillTaskAction)、

杀死作业(KillJobAction)和重新初始化(TaskTrackerReinitAction)。

11 DataNode NameNode 节点的工作原理及特征

NameNode是一个在HDFS实例中单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode决定是否将文件映射到DataNode上的复制块上。对于最常见的3个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。

DataNode也是一个在HDFS实例中单独机器上运行的软件。Hadoop 集群包含一个NameNode和大量DataNode。DataNode通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。

DataNode响应来自HDFS客户机的读写请求,同时也来自NameNode 的创建、删除和复制块的命令。NameNode依赖来自每个DataNode的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode可以根据此报告验证块映射和其他文件系统元数据。如果DataNode无法发送心跳消息,NameNode将采取修复措施,重新复制在该节点上丢失的块。

12 Host Slave 节点特征

host选择的原则是优先让空闲资源处理本节点上的数据,如果节点上没有可处理的数据,则处理同一个机柜上的数据,最坏的情况是处理其他机柜上的数据(当然必须在同一数据中心)。

13 MapReduce 的优点和特征

(1)对硬件低要求,MapReduce模型是面向由数千台中低端计算机组成的大规模集群而设计的,基于此优点MapReduce模型可以在现有的异构集群中很好的运行。

(2)接口化,MapReduce模型通过简单的接口实现了大规模分布式计算的自动并行化,它屏蔽了需要大量并行代码去实现的容错、负载均衡和数据分布等复杂细节,程序员只需关注实际操作数据的Map函数和Reduce函数即可。

(3)编程语言多样化,MapReduce模型支持Java、C、C++、Python、Shell、PHP、Ruby等多种开发语言,程序员可以选择所熟悉的语言编写Map函数和Reduce函数。

(4)扩展性强,它采用的shared-nothing结构保证了其良好的伸缩性,同时,使其具有了各个节点间的松耦合性和较强的容错能力,进而节点可以被任意地从集群中移除,而几乎不影响现有任务的执行。

(5)数据分析低延迟,基于MapReduce模型的数据分析,无需复杂的数据预处理和写入数据库的过程,而是直接基于平面文件进行分析,并且其采用的计算模式是移动计算而非移动数据[3],因此可以将分析延迟最小化。

14 MapReduce 的处理流程

基本流程:

1,大数据经split划分成大小相等的数据块(数据块的大小一般等于HDFS一个块的大小)以及用户作业程序。

2,系统中有一个负责调度的Master节点和许多的Map工作节点,Reduce工作节点

3,用户作业程序提交给Master节点,Master节点寻找合适的Map节点,并将数据传给Map节点,并且Master也寻找合适的Reduce节点并将数据传给Reduce节点

4,Master节点启动Map节点执行程序,Map节点尽可能的读取本地或本机架上的数据块进行计算。(数据本地化是Mapreduce的核心特征)

5,每个Map节点处理读取的数据块,并做一些数据整理,并且将中间结果放在本地而非HDFS中,同时通知Master节点Map工作完成,并告知中间结果的存储位置。

6,Master节点等所有Map工作完成后,开始启动Reduce节点,Reduce节点通过Master节点掌握的中间结果的存储位置来远程读取中间结果。

7,Reduce节点将中间结果处理后将结果输出到一个文件中。

15 shuffle & sort 的过程

首先,将写入本地存储器的<Key; Value>对(由map任务输出)分为R个区(R的大小由用户定义),并且每个分区对应一个Reduce任务。然后,将这些中间<Key; Value>对的位置通报给master,master负责将信息转发到Reduce worker,当master通知分配了正在运行reduce任务的worker所负责的分区位置(每个map任务产生的中间<Key; Value>对都可能映射到所有R个不同分区)时,Reduce worker先读取它负责的所有中间<Key; Value>对,在对它们进行排序,然后使得相同键的<Key; Value>对聚集在一起。

16 、“心跳”的概念

NameNode会周期性地接收集群中每个DataNode发送过来的心跳包和数据块报告,并根据这个报告验证数据块映射和其他文件系统元数据。

如果NameNode能够定时收到DataNode的心跳包,则认为DataNode工作正常

否则将标记那些没有心跳的DataNode为宕机,且不会再发给它们任何新的IO请求。

17 HBase 的特征

(1)海量存储

Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与Hbase的极易扩展性息息相关。正式因为Hbase良好的扩展性,才为海量数据的存储提供了便利。

(2)列式存储

这里的列式存储其实说的是列族存储,Hbase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。(通常建表会只建一个列簇,)

(3)极易扩展

Hbase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)。

通过横向添加RegionSever的机器,进行水平扩展,提升Hbase上层的处理能力,提升Hbsae服务更多Region的能力。备注:RegionServer的作用是管理region、承接业务的访问,这个后面会详细的介绍

通过横向添加Datanode的机器,进行存储层扩容,提升Hbase的数据存储能力和提升后端存储的读写能力。

(4)高并发

由于目前大部分使用Hbase的架构,都是采用的廉价PC,因此单个IO的延迟其实并不小,一般在几十到上百ms之间。这里说的高并发,主要是在并发的情况下,Hbase的单个IO延迟下降并不多。能获得高并发、低延迟的服务。

(5)稀疏

稀疏主要是针对Hbase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。

展开Fqq的答案

大数据的概念和特征

在早期,大数据被定义为大量的可视化科学数据[1]。然而,进入大数据时代之后其定义多种多样,[2]将大数据定义为数据量超出当前存储、管理和有效处理技术能力范围的数据;[3-4]定义大数据的特征为3V (Volume、Variety和Velocity),且Gartner研究机构认为大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产;[5]定义大数据是采用一种新形式集成一系列的方法和技术,然后挖掘多种多样的、复杂的、大规模的数据集所蕴含的潜在价值的过程。

  • 大数据,指的是所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。
  • 大数据的五个特点 - 5Vs:
    • Volume( 大量 ) 数据量大,从TB级别跃升到PB级别
    • Variety( 多样 ) 数据类型繁多
      • 非结构化:文本、图形、声音等
      • 半结构化:日志
      • 结构化数据:行列规整的表单数据
      • 多结构数据:以上三种类型混合的数据
    • Velocity(高速)数据的时效性,数据仅在一个短暂的时间范围有价值
    • Value (价值)多种多样的、复杂的、大规模的数据集所蕴含的潜在价值
    • Veracity (真实性)真实性特性中包括可信性、真伪性、来源和信誉、有效性和可审计子特征。

image-20201204132422513

大数据的分类

大数据的类型大致可分为三类:

  • 传统企业数据(Traditional enterprise data):包括 CRM systems的消费者数据,传统的ERP数据,库存数据以及账目数据等。

  • 机器和传感器数据(Machine-generated /sensor data):包括呼叫记录(Call Detail Records),智能仪表,工业设备传感器,设备日志(通常是Digital exhaust),交易数据等。

  • 社交数据(Social data):包括用户行为记录,反馈数据等。如Twitter,Facebook这样的社交媒体平台。

云计算的概念、特征。

  • 定义:云计算是一种模型,它向用户提供了一种随时地、便捷地、随需应变地从可配置计算资源共享池中获取所需资源(例如,网络、服务器、存储、应用、及服务)的方式,资源能够快速供应并释放,使管理资源的工作量和服务提供商的交互减小到最低限度。

  • 特征:
    (1)虚拟化。云计算支持用户在任意位置、使用各种终端获取应用服务。

    (2)规模化整合。云里的资源非常庞大,在一个企业云可以有几十万甚至上百万台服务器,在一个小型的私有云中也可拥有几百台甚至上千台服务器。

    (3)高可靠性。云计算使用了多副本容错技术、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。

    (4)高可扩展性。

    (5)按需服务。云计算是一个庞大的资源池,使用者可以根据需要来进行购买。

    (6)成本低。

Iaas、SaaS、Pass介绍

  按照云计算服务三大服务模式:

  1. IaaS为门户系统提供网络资源、计算资源和存储资源服务,属于桌面云层面。

  2. PaaS为门户系统提供高可用数据库集群服务和应用程序运行及维护所需要的平台资源。

  3. SaaS提供基于SharePoint门户平台的门户集成应用服务。云计算服务SaaS软件平台博云网表示,云计算管理平台对不同的计算资源和服务统一管理,根据门户系统业务需求和访问量的变化,自动地对计算资源进行分配和调度,实现高度“弹性”的缩放和优化使用。

虚拟化技术的概念、特征。

  1. 概念:虚拟化技术是建立云计算架构的基础技术,它使云计算中心的计算资源和存储资源在逻辑结构上相互独立。虚拟化技术使用软件的方法重新定义划分了实体资源,将服务器、网络、I/O设备、内存及存储等多种计算机实体资源予以抽象、转换,并以虚拟资源池的形式呈现出来,打破了实体资源结构间不可切割的障碍,消除了实体资源的架设方式、地域或物理组态的限制,实现了虚拟资源的动态分配、灵活调度、跨域共享,不仅提高了资源利用率,同时可服务于各行各业中灵活多变的应用需求。

  2. 特征:虚拟化技术的分类可从三个角度进行分析:

    (1) 基于应用可划分为:操作系统虚拟化、应用程序虚拟化、桌面虚拟化、存储虚拟化、I/O设备虚拟化、网络虚拟化以及网络功能虚拟化等。其中,网络虚拟化是通过在物理网络中建立多个逻辑网络从而扩充网络的吞吐量,网络功能虚拟化是真正意义上的软件虚拟化,它解耦了云计算中单个虚拟机的某些网络功能系统,将网络功能集中化到某一特定设备上,在通过虚拟化技术提供给各个虚拟机该功能系统的接口。

    (2) 基于应用模式可分为:一对多,将一个服务器划分成多个虚拟服务器;多对一,整合多个虚拟服务器,形成一个资源池;多对多,上述两种方式相结合。

    (3) 基于硬件资源调用模式可分为:全虚拟化,虚拟操作系统与底层硬件完全隔离,由中间的Hypervisor层转化虚拟客户操作系统对底层硬件的调用代码,全虚拟化无需更改客户端操作系统,具有很好的兼容性,典型代表为VMare WorkStation;半虚拟化,在虚拟客户操作系统中加入特定的虚拟化指令,通过这些指令可以直接通过Hypervisor层调用硬件资源,消除了Hypervisor层转换指令的性能开销,典型代表为Microsoft Hyper-V以及Vmware的vSphere;硬件辅助虚拟化,在CPU中加入了新的指令集和处理器运行模式,完成虚拟操作系统对硬件资源的直接调用,典型代表为Intel VT和AMD-V。

Hadoop的基本特征及优缺点

image-20201204020852876

image-20201204020759796

image-20201204020927315

Hadoop的运行模式

image-20201204132240100

HDFS的概念及特征

image-20201204131239885

image-20201204131319000

HDFS的处理流程

JobTracker、TaskTracker节点的工作原理及特征

  1. Jobtracker接收到作业后,将其放在一个内部作业队列里,由作业调度器对其进行调度和初始化,初始化包括创建一个表示正在运行作业的对象,用来封装任务和记录信息(用于跟踪任务的状态和进度)。

    作业调度器依据调度算法调度到该作业时,为作业创建任务运行列表。它首先从文件系统中获取已经计算好的输入分片信息,然后为每个分片创建一个Map任务,另外,创建的Reduce任务数量由mapred.reduce.task属性决定。

DataNode、NameNode节点的工作原理及特征

  1. 工作原理
    2)NameNode

    NameNode是一个在HDFS实例中单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode决定是否将文件映射到DataNode上的复制块上。对于最常见的3个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。

    实际的I/O事务并不经过 NameNode,只有表示DataNode和块的文件映射的元数据经过NameNode。当外部客户机发送请求要求创建文件时,NameNode 会以块标识和该块的第一个副本的DataNode IP地址作为响应。同时NameNode还会通知其他将要接收该块的副本的DataNode。

    NameNode在一个称为FsImage的文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件将存储在NameNode的本地文件系统上。FsImage和EditLog文件同样复制副本,以防文件损坏或NameNode系统丢失。

    3 DataNode

    DataNode也是一个在HDFS实例中单独机器上运行的软件。Hadoop 集群包含一个NameNode和大量DataNode。DataNode通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。

    DataNode响应来自HDFS客户机的读写请求,同时也来自NameNode 的创建、删除和复制块的命令。NameNode依赖来自每个DataNode的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode可以根据此报告验证块映射和其他文件系统元数据。如果DataNode无法发送心跳消息,NameNode将采取修复措施,重新复制在该节点上丢失的块。

  2. image-20201204135629946

  3. 概念

    1. (1)NameNode(仅一个),它在HDFS内部提供元数据服务。存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode),块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。

      (2)DataNode,它为 HDFS 提供存储块。NameNode可以控制所有文件操作。

    image-20201204131917737

image-20201204131926261

image-20201204135002291

Host、Slave节点特征

MapReduce的优点和特征

1 优点

(1)对硬件低要求,MapReduce模型是面向由数千台中低端计算机组成的大规模集群而设计的,基于此优点MapReduce模型可以在现有的异构集群中很好的运行。

(2)接口化,MapReduce模型通过简单的接口实现了大规模分布式计算的自动并行化,它屏蔽了需要大量并行代码去实现的容错、负载均衡和数据分布等复杂细节,程序员只需关注实际操作数据的Map函数和Reduce函数即可。

(3)编程语言多样化,MapReduce模型支持Java、C、C++、Python、Shell、PHP、Ruby等多种开发语言,程序员可以选择所熟悉的语言编写Map函数和Reduce函数。

(4)扩展性强,它采用的shared-nothing结构保证了其良好的伸缩性,同时,使其具有了各个节点间的松耦合性和较强的容错能力,进而节点可以被任意地从集群中移除,而几乎不影响现有任务的执行。

(5)数据分析低延迟,基于MapReduce模型的数据分析,无需复杂的数据预处理和写入数据库的过程,而是直接基于平面文件进行分析,并且其采用的计算模式是移动计算而非移动数据[3],因此可以将分析延迟最小化。

2 缺点

(1)无法达到数据实时处理,虽然MapReduce模型在批量数据分工整合方面具有的快速处理、低延迟等优势,但是其设计初衷是为解决大规模、非实时数据问题,因此在大数据时代,MapReduce并不能满足大数据实时处理的需求。

(2)匹配的应用软件较少,基于MapReduce模型的应用软件相对较少,许多数据分析功能需要用户自主开发,从而导致了使用成本的增加。

(3)程序员负担增加,文件存储格式的设计、模式信息的记录以及数据处理算法的实现等本来可以由数据库管理系统完成,但是MapReduce模型将此类工作全部交由程序员完成,从而导致了程序员的负担过重,因此,程序员水平对MapReduce模型的运行性能起到决定性作用。

(4)I/O代价较高,MapReduce模型的输入数据并不能贯穿整个MapReduce流程,在Map阶段结束后由内存写入本地存储,Reduce阶段的输入数据需要从本地存储读取。MapReduce模型采取的这种基于扫描的处理模式和对中间结果步步处理的执行策略,导致了较高的I/O代价[3]。

(5)处理流程单一,在很多场景中,用户需要对数据进行复杂的操作。这些操作需要对多个MapReduce作业进行级联来完成。但是在作业级联的过程中会产生不必要的分布式文件系统读写以及Map阶段。因为每一个作业在完成之后会将结果输出到分布式文件系统,下一个作业开始的时候又需要从分布式文件系统中读出这些数据,这就造成了极大的资源浪费。

MapReduce的处理流程

image-20201204021825165

shuffle & sort的过程

Shuffle & Sort过程是MapReduce的核心,它确保每个Reducer的输入都按键排序,Shuffle & Sort描述着数据从Map任务输出到Reduce 任务输入的这段过程。在MapReduce作业执行过程中,大部分Map任务与Reduce任务的执行是在不同的节点上,很多情况下Reduce执行时需要跨节点去读取其他节点上的Map任务结果。因此Shuffle & Sort过程至关重要,它需要保证数据完整地从Map端传输到Reduce端,并且在跨节点读取数据时,尽可能地减少对带宽的不必要消耗,同时还要减少磁盘I/O对任务执行的影响。


MapReduce模型的Shuffle&Sort原理如图

image-20201204142542492

首先,将写入本地存储器的<Key; Value>对(由map任务输出)分为R个区(R的大小由用户定义),并且每个分区对应一个Reduce任务。然后,将这些中间<Key; Value>对的位置通报给master,master负责将信息转发到Reduce worker,当master通知分配了正在运行reduce任务的worker所负责的分区位置(每个map任务产生的中间<Key; Value>对都可能映射到所有R个不同分区)时,Reduce worker先读取它负责的所有中间<Key; Value>对,在对它们进行排序,然后使得相同键的<Key; Value>对聚集在一起。

“心跳”的概念

Tasktracker利用循环定期向jobtracker发送“心跳(heartbeat)”,“心跳”告知jobtracker它是否还在运行,同时“心跳”还携带很多的信息,例如当前Map任务完成的进度信息。另外,tasktracker作为“心跳”的一部分,会指明它是否已经准备好运行新的任务,如果是,jobtracker会为它分配一个新的任务,并使用“心跳”的返回值与tasktracker进行通信,“心跳充当了两者之间的消息通信

image-20201204131657862

HBase的特征

image-20201204021655987