海量数据分布式存储技术-作业三

news/2024/5/20 0:49:45 标签: hadoop, 大数据, hdfs

1.HDFS的名称节点和数据节点的具体功能;

2.HDFS如何减轻中心节点的负担;

3.HDFS设置唯一一个名称节点的局限性表现在哪些方面;

4.HDFS如何探测错误发生以及如何进行恢复;

5.HDFS不发生故障的情况下读文件的过程;

6.HDFS不发生故障的情况下写文件的过程。

1.解:
名称节点负责管理分布式文件系统的命名空间,记录分布式文件系统中的每个文件中各个块所在的数据节点的位置信息;

数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并向名称节点定期发送自己所存储的块的列表。

2.解:

a. 客户端直接从数据节点获取或写入数据,防止了数据都从一个节点输出或写入,避免了单一节点造成了整个集群的瓶颈。

b. HDFS中的块的状态和路径是在整个集群启动的时候获取的,避免了中心节点保存过多冗余的信息,也减轻了中心节点的负担。

c. 中心节点的元数据以log的形式存储,并且会给这个log打上一个快照。一旦集群发生故障,只需要从最近一次的快照开始恢复就行。这样整个集群恢复的速度就会比较快。

3.解:

a.命名空间限制;命名空间中的对象如文件,目录,文件块,数据块,数据节点等这些信息占用一定字节。 NameNode保存全局命名空间,NameNode的内存有上限,因此保存的命名空间的大小有限制。

b.性能瓶颈。整个分布式文件系统的吞吐量受限于单个名称节点的吞吐量。

c.隔离问题。由于集群问题中只有一个名称节点,只有一个命名空间,因此无法对不同应用程序进行隔离。

d.集群可用性。唯一的名称节点发送故障,导致整个集群变得不可用。

4.解:

(1)名称节点出错:

1)把名称节点的元数据信息同步存储到其他文件系统;

2)可以把第二名称节点作为补救措施。

一般可以把这两者结合使用,其他文件系统的元数据信息放到第二名称节点进行恢复,并把第二名称节点作为名称节点使用(这样做仍然会有一部分数据丢失)。

(2)数据节点出错:

数据节点定期向名称节点发送心跳信息,向名称节点报告状态,如果名称节点没有收到某些数据节点时,这时名称节点将这些数据节点标记为宕机,由于这些数据节点不可用导致一些数据块的副本数据量小于冗余因子时,就会启动数据冗余复制,生成新的副本。

(3)数据出错:

网络传输和磁盘错误等因素都会造成数据的错误,客户端读取数据后,会采用md5对数据块进行校验,以正确读取到正确的数据。如果校验出错,客户端就会请求到另外一个数据节点读取该文件块,并向名称节点报告这个文件错误,名称节点会定期检查并重新复制这个块。

5.解:

1)使用HDFS提供的客户端Client,向远程的NameNode发起RPC请求;

2)NameNode会视情况返回文件的部分或者全部block列表,对于每个block,NameNode都会返回有该block拷贝的DataNode地址;

3)客户端Client会选取离客户端最近的DataNode来读取block;如果客户端本身就是DataNode,那么将从本地直接获取数据;

4)读取完当前block的数据后,关闭当前的DataNode链接,并为读取下一个block寻找最佳的DataNode;

5)当读完列表block后,且文件读取还没有结束,客户端会继续向NameNode获取下一批的block列表;

6)读取完一个block都会进行checksum验证,如果读取datanode时出现错误,客户端会通知Namenode,然后再从下一个拥有该block拷贝的datanode继续读。

6.解:

1)使用HDFS提供的客户端Client,向远程的NameNode发起RPC请求;

2)NameNode会检查要创建的文件是否已经存在,创建者是否有权限进行操作,成功则会为文件创建一个记录,否则会让客户端抛出异常;

3)当客户端开始写入文件的时候,客户端会将文件切分成多个packets,并在内部以数据队列“data queue”的形式管理这些packets,并向NameNode申请blocks,获取用来存储replicas的合适的datanode列表,列表的大小根据NameNode中replication的设定而定;

4)开始以pipeline的形式将packet写入所有的repilicas中。开发库把packet以流的方式写入第一个datanode,该datanode把该packet存储之后,再将其传递给此pipeline中的下一个datanode,直到最后一个datanode,这种写数据的方法呈流水线的形式。

5)最后一个datanode成功存储之后会返回一个ack packet,在pipeline里传递至客户端,在客户端的开发库内部维护着“ack queue”,成功收到datanode返回的ack packet后会从“ack queue”移除响应的packet。

6)如果传输过程中,有某个datanode出现了故障,那么当前的pipeline会被关闭,出现故障的datanode会从当前的pipeline中移除,剩余的block会继续剩下的datanode中继续以pipeline的形式传输,同时NameNode会分配一个新的datanode,保持replicas设定的数量。

7)客户端完成数据的写入,会对数据流调用close()方法,关闭数据流;

8)只要写入了dfs.replication.min的副本数(默认为1),写操作就会成功,并且这个块可以在集群中异步复制,直到达到其目标副本数(dfs.replication的默认值为3),因为namenode已经知道文件由哪些块组成,所以它在返回成功前只需要等待数据块进行最小量的复制。


http://www.niftyadmin.cn/n/1399318.html

相关文章

海量数据分布式存储技术-作业四

1.HBase与其他组集成部分的相互关系; 2.阐述HBase和BigTable的底层技术对应关系; 3.阐述HBase和传统关系型数据库的区别; 4.HBase有哪些类型的访问接口; 5.分别解释HBase中行键、列键和时间戳的概念; 6.试述HBase…

海量数据分布式存储技术-作业五

1.试述关系数据库在哪些方面无法满足Web2.0应用的需求; 2.为什么说关系数据库的一些关键特性在Web2.0时代成为“鸡肋”; 3.试述NoSQL数据库的四大类型; 4.试述NoSQL数据库四大类型的典型应用和优缺点; 5.试述CAP理论的具体含义&am…

海量数据分布式存储技术-作业六

1.试述云数据库的概念 2.与传统的软件使用方式相比,云计算这种模式具有哪些明显的优势 3.云数据库有哪些特性 4.试述云数据库的影响 5.试述UMP系统的功能 6.试述UMP系统的组件及其具体作用 7.试述UMP系统实现主从备份的方法 1.解: 云数据是部署和虚拟化在…

海量数据分布式存储技术-作业一

1、信息技术发展史上3 次信息化浪潮及其具体内容; 2、数据产生方式经历的几个阶段; 3、科学研究经历的4个阶段; 4、大数据对思维方式的影响; 5、大数据的关键技术有哪些; 6、大数据产业包含那些层次; …

海量数据分布式存储技术-作业二

一个Hadoop集群中的节点主要有哪些? Hadoop具有哪些特性? Hadoop生态系统以及每个部分的具体功能是什么? fs.default.name是在那个文件中设置的? 列举单机模式和伪分布模式的异同点。 1、解: 一个基本的Hadoop集…

《机器学习》慕课版课后习题-第1章

中国工信出版集团、人民邮电出版社出版的赵卫东、董亮编著的《机器学习》慕课版 第1章 机器学习概述 1.机器学习的发展历史上有哪些主要事件? 解:机器学习发展分为知识推理期、知识工程期、浅层知识期和深度学习几个阶段。 知识推理期时,…

《机器学习》慕课版课后习题-第2章

中国工信出版集团、人民邮电出版社出版的赵卫东、董亮编著的《机器学习》慕课版 第2章 机器学习基本方法 1.什么是标准差、方差和协方差?它们反应了数据的什么内容? 解:标准差描述的是样本集合的各个样本点到均值的距离分布,描…

《机器学习》慕课版课后习题-第3章

中国工信出版集团、人民邮电出版社出版的赵卫东、董亮编著的《机器学习》慕课版 第3章 决策树与分类算法 1.分类解决什么问题? 解:分类算法是利用训练数据集获得分类函数即分类模型(分类器),从而实现将数据集中的样本划分到各个类中。分类…