您的位置:首页 > 大数据 > Hadoop

《大数据基础——基于Hadoop与Spark》课后习题——第三章部分答案

2018-12-18 11:53 3159 查看

仅用于我个人的学习。书籍为人民邮电出版社的《大数据技术基础——基于Hadoop与Spark》。课后习题选择是我个人认为有用的。记录下来是为了督促我学习:)
共好

3.简述HDFS读写文件的基本原理

假设客户端Client要读取一个文件,首先客户端向NameNode发送数据读操作请求,并通过NameNode获得 组成该文件的数据块的位置列表,即知道每个数据块存储在哪些机架的哪些DataNode之中;然后客户端直接从这些DataNode读取文件数据。
同样,当客户端需要写入一个文件的时候,首先向NameNode发送数据写操作请求,包括文件名和目录路径等部分元数据信息。然后,NameNode告诉客户端到哪个机架的哪个数据节点进行具体的数据写入操作。最后,客户端直接将文件数据传输给DataNode,由DataNode的后台程序负责把数据保存到Linux的本地文件系统之中。

5.NameNode如何知道一个DataNode是否正常工作?

通过心跳检测机制
每个DataNode节点周期性地向NameNode发送心跳信号和块状况报告,NameNode接收到心跳信号意味着该DataNode节点正常工作。

网络割裂可能导致一部分DataNode与NameNode失去联系,NameNode通过心跳信号的缺失来检测这一情况,并将这些近期不再发送心跳信号的DataNode标记为宕机,不会再将新的I/O请求发给他们。任何存储在DataNode的数据不再有效。

6.简述HDFS的副本存储策略

比较简单的副本存储策略就是将副本存放在不同的机架上。
在默认情况下,HDFS为数据库生成3个副本。HDFS采取更优的存放策略。
(1)选择某个机架的某个节点存放第一个副本
(2)选择同一机架的另一个节点存放第二个副本
(3)选择不同机架的讴歌几点存放第三个副本

下图为多个机架的服务器组成的集群。
D1/D2表示不同的数据中心
R1/R2/R3/R4表示不同机架
H1~H12表示不同的DataNode

PS H1的机架ID是rack_id=/D1/R1/H1。其他以此类推。

7.简述在NameNode所在的Linux文件系统中的edit日志文件和fsimage文件之间的关系

edit文件用来临时存放HDFS文件的元数据,fsimage是一个加密的二进制镜像文件,保存了HDFS文件的元数据,内容包括NameNode管理的所有DataNode中的文件、数据块以及个数据所在的DataNode的元数据信息。
关系:在客户端向HDFS写入文件时,文件信息会首先被记录在edits文件中,之后当时机成熟时再由NameNode将数据合并到fsimage文件中。

8.假设HDFS数据块为64MB,HDFS副本系数为3。现在需要设置一个HDFS存储系统来存储1PB的视频文件,若所用物理硬盘的容量统一为4TB,则至少需要多少个物理硬盘?在HDFS中,该视频文件实际划分成了多少个数据块?

1PB=1024TB=10242GB = 10243MB= 10244KB = 10245B

至少需要(1024TB*3)/4TB=768个物理硬盘
该视频文件实际划分成了10243/64=16 777 216个数据块

这道题不知道是不是这样做的…欢迎指正QWQ

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: