2018/1/26

一、简答题

用hadoop来做什么?

     Hadoop是一种以一种可靠、高效、可伸缩的方式进行处理,能够对大量数据进行分布式处理的系统框架。

利用Hadoop能够实现文件系统的分级操作。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS按分布式处理的方式对海量数据实现创建、删除、移动或重命名等存储操作,而MapReduce为数据提供计算。

2什么是HDFS,它的存储机制是什么?

  Hadoop实现了一个分布式文件系统,简称HDFS。对外部客户机而言,HDFS就像一个传统的分级文件系统,可以创建、产出、移动或者重命名文件,有时也称为DFS。

   存储机制:1.HDFS中的文件在物理上市分块存储。2.目录结构及文件分块位置信息的管理由Namenode节点承担,Namenode是HDFS集群主节点,负责维护整个HDFS文件系统的目录树,以及每个路径所对应的数据块的信息。3.文件中每个块的存储由Datanode承担。4由Datanode定期想Namenode汇报自身所保存的文件块信息,Namenode负责保持文件副本数量。

3如何配置Hadoop?

  --安装运行环境VM+ubuntu。

  --安装JDK

 --JDK环境变量配置

  --安装Hadoop(下载,解压)

  --配置Hadoop(环境变量配置)

  --启动Hadoop

  --最后测试Hadoop服务

二、填空题

(1)在默认情况下,HDFS块的大小为(64M)。

(2)在大多数情况下,副本系数是3,HDFS的存放策略将第二个副本放在(与存放数据机架最近的机架的某一节点上)。

(3)假设设置的副本数是3,现在系统中有5个副本,那么系统会删除(2)个副本。

(4)在配置文件hdfs-default.xml中定义副本率为(1)时,HDFS将处于安全模式(伪分布)。

(5)下列(B)不属于NameNode的功能。

A.提供名称查询服务B.保存Block信息,汇报Block信息C.保存metadata信息D.metadata信息在启动后会加载到内存

三、简答题

1 HDFS和传统的分布式文件系统相比较,有哪些独特的特性? 

①分片冗余,本地校验。传统的分布式的文件系统会因为分布后的结构不完整,导致系统复杂度加大,并且引入的网络编程,同样导致分布式文件系统更加复杂。而HDFS采用分片冗余,本地校验的方法很好的解决了传统分布式的文件系统的这一问题。数据冗余式存储,直接将多份的分片文件交给分片后的存储服务器去校验。

②准确性高。冗余后的分片文件还有个额外功能,只要冗余的分片文件中有一份是完整的,经过多次协同调整后,其他分片文件也将完整。经过协调校验,无论是传输错误,I/O错误,还是个别服务器宕机,整个系统里的文件是完整的

③弹性好。传统分布式文件系统有个无法回避的问题,因为文件不在一个磁盘导致读取访问操作的延时,而现阶段,HDFS的配置是按照高数据吞吐量优化的,可能会以高时间延时为代价。但万幸的是,HDFS是具有很高弹性,可以针对具体应用再优化。

④优化的副本存放策略。HDFS采用一种称为机架感知的策略来改进数据的可靠性、可用性和网络带宽的利用率。

 2为什么HDFS的块如此之大?     

为了最小化寻址开销。如果块设置得足够大,从磁盘传输数据的时间可以明显大于定位这个块开始位置所需的时间。这样,传输一个由多个块组成的文件的时间取决于磁盘传输速率。

3 HDFS中数据副本的存放策略是什么?

①选择一个本地节点。最优先考虑把正在写入的数据的一个副本保存在这个客户端的数据节点上。

②选择一个本地机架节点如果参考点为空,则从整个集群中随机选择一个合适的数据节点作为此时的本地机架节点;否则就从参考节点所在的机架中随机选择一个合适的数据节点作为此时的本地机架节点,若这个集群中没有合适的数据节点的话,则从已选择的数据节点中找出一个作为新的参考点,如果找到了一个新的参考点,则从这个新的参考点在的机架中随机选择一个合适的数据节点作为此时的本地机架节点;否则从整个集群中随机选择一个合适的数据节点作为此时的本地机架节点。如果新的参考点所在的机架中仍然没有合适的数据节点,则只能从整个集群中随机选择一个合适的数据节点作为此时的本地机架节点

③选择一个远程机架节点。选择一个远程机架节点就是随机的选择一个合适的不在参考点坐在的机架中的数据节点,如果没有找到这个合适的数据节点的话,就只能从参考点所在的机架中选择一个合适的数据节点作为此时的远程机架节点了。

④随机选择若干数据节点。选择若干个数据节点实际上指的是从某一个范围内随机的选择若干个节点。

⑤优化数据传输的路径。

4NameNode和DataNode的功能分别是什么?

Namenode特点:

     ①NameNode是用来管理文件系统命名空间的组件。

   ②一个HDFS集群只有一台NameNode。

   ③NameNode上存放了HDFS的元数据。

   ④元数据保存在NameNode的内存当中,以便快速查询。

DataNode特点:

①块的实际数据存放在DataNode上。

   ②每个块会在本地文件系统产生两个文件,一个是实际的数据文件,另一个是块的附加信息文件,其中包括数据的校验和,生成时间。

     ③DataNode通过心跳包(Heartbeat)与NameNode通讯。

     ④客户端读取/写入数据的时候直接与DataNode通信。