什么是HDFS?(内含习题)

HDFS: 全称 Hadoop Distributed File System ,即:Hadoop分布式文件系统

HDFS的特性:

HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。

而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。

HDFS是用java编写的,任何支持java的机器都可以运行名字节点或数据节点,利用java语言的超轻便性,很容易将HDFS部署到大范围的机器上。

大部分的HDFS程序对文件操作需要的是一次写多次读取的操作模式。

HDFS是一个主从结构,一个HDFS集群是由一个名字节点,它是一个管理文件命名空间和调节客户端访问文件的主服务器,当然还有一些数据节点,通常是一个节点一个机器,它来管理对应节点的存储。

名字节点用来操作文件命名空间的文件或目录操作,如打开,关闭,重命名等等。它同时确定块与数据节点的映射。

数据节点负责来自文件系统客户的读写请求。数据节点同时还要执行块的创建,删除,和来自名字节点的块复制指令。

HDFS中典型的块大小是64MB,一个HDFS文件可以被被切分成多个64MB大小的块,如果需要,每一个块可以分布在不同的数据节点上。

在HDFS中,fsimage和eidts是NameNode两个非常重要的文件。

其中,fsimage是HDFS文件系统存于硬盘中的元数据检查点,里面记录了自最后一次检查点之前HDFS文件系统中所有目录和文件的序列化信息;而edits保存了自最后一次检查点之后所有针对HDFS文件系统的操作,比如:增加文件、重命名文件、删除目录等等。

 


HDFS经典习题:

HDFS 1.X版本 默认 Block Size的大小是___B___。

A.32MB

B.64MB

C.128MB

D.256MB

 

HDFS是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是 __D____。

A.一次写入,少次读

B.多次写入,少次读

C.多次写入,多次读

D.一次写入,多次读

 

HBase依靠__A____存储底层数据。

A.HDFS

B.Hadoop

C.Memory

D. MapReduce

 

下面与HDFS类似的框架是___C____?

A.NTFS

B.FAT32

C.GFS

D. EXT3

 

HDFS默认的当前工作目录是/user/$USER,fs.default.name的值需要在哪个配置文件内说明  答案:B

A. mapred-site.xml

B. core-site.xml

C. hdfs-site.xml

D. 以上均不是

 

关于Hadoop单机模式和伪分布式模式的说法,正确的是   答案:D

A. 两者都起守护进程,且守护进程运行在一台机器上

B. 单机模式不使用HDFS,但加载守护进程

C. 两者都不与守护进程交互,避免复杂性

D. 后者比前者增加了HDFS输入输出以及可检查内存使用情况

 

HDFS的NameNode负责管理文件系统的命名空间,将所有的文件和文件夹的元数据保存在一个文件系统树中,这些信息也会在硬盘上保存成以下文件:  答案:C

A.日志

B.命名空间镜像

C.两者都是

 

Client在HDFS上进行文件写入时,namenode根据文件大小和配置情况,返回部分datanode信息,谁负责将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块   答案:A

A. Client

B. Namenode

C. Datanode

D. Secondary namenode

 

HDFS无法高效存储大量小文件,想让它能处理好小文件,比较可行的改进策略不包括   答案:D

A. 利用SequenceFile、MapFile、Har等方式归档小文件

B.多Master设计

C. Block大小适当调小

D. 调大namenode内存或将文件系统元数据存到硬盘里

 

关于HDFS的文件写入,正确的是   答案:C

(知识点:在HDFS的一个文件中只有一个写入者,而且写操作只能在文件末尾完成,即只能执行追加操作。默认三份文件块两块在同一机架上,另一份存放在其他机架上。

A. 支持多用户对同一文件的写操作

B. 用户可以在文件任意位置进行修改

C. 默认将文件块复制成三份存放

D. 复制的文件块默认都存在同一机架上

 

Namenode在启动时自动进入安全模式,在安全模式阶段,说法错误的是   答案:D

A. 安全模式目的是在系统启动时检查各个DataNode上数据块的有效性

B. 根据策略对数据块进行必要的复制或删除

C. 当数据块最小百分比数满足的最小副本数条件时,会自动退出安全模式

D. 文件系统允许有修改

 

下列哪个程序通常不与 NameNode 在一个节点启动?( A)。
A . SecondaryNameNode
B . DataNode
C . resourcemanager 
D . nodemanager

 

下列关于HDFS为存储MapReduce并行切分和处理的数据做的设计,错误的是  答案:B

(知识点:每个分片不能太小,否则启动与停止各个分片处理所需的开销将占很大一部分执行时间

A. FSDataInputStream扩展了DataInputStream以支持随机读

B. 为实现细粒度并行,输入分片(Input Split)应该越小越好

C. 一台机器可能被指派从输入文件的任意位置开始处理一个分片

D. 输入分片是一种记录的逻辑划分,而HDFS数据块是对输入数据的物理分割

 

下面哪个程序负责 HDFS 数据存储。答案C

a)NameNode

b)Jobtracker

c)Datanode

d)secondaryNameNode

e)tasktracker

 

 HDfS 中的 block 默认保存几份? 答案A

a)3 份 b)2 份 c)1 份 d)不确定

HDFS  在 hadoop2 默 认 Block Size 是   128MB  

关于 hdfs 元数据,NameNode 维护整个文件系统元数据

关于 hadoop ha 说法,NN 是 HDFS 集群的单点故障点,每一个集群只有一 个 NN。

 

sqoop 实现向 hdfs 系统导入数据使用的命令是( A)。

A . sqoop import

B . sqoop export

C . sqoop connect

D . sqoop jdbc

 

关于 HDFS 写数据流程,下面说法错误的是( B)。
A . 写数据首先需要找NN确定写的位置
B . 如果pipeline一个节点写失败 则重新申请DN节点再写
C . 写数据是以packet为大小进行的,默认64K

D . pipeline反方向会进行数据的ack检验
 

关于 checkpoint,说法正确的是( C)。
A . checkpoint可通过元数据文件的大小进行控制
B . secondarynamenode会将合并好的元数据移动到namenode
C . SecondaryNameNode会将edits文件和fsimage复制到本地(HTTP GET方式)

D . 合并元数据需要大量的磁盘进行文件的合并操作

 

判断:

  • hadoopdfsadmin –report 命令用于检测 HDFS 损坏块。(错误 )
  • 因为 HDFS 有多个副本,所以 NameNode 是不存在单点问题的。(错误 )
  • HDFS的namenode保存了一个文件包括哪些数据块,分布在哪些数据节点上,这些信息也存储在硬盘上。(错误)
  • drop 内部表时,会删除 hdfs 上的文件夹和元数据。(对)
  • –append 参数是将数据追加到 HDFS 上一个已存在的数据集上(对)
  • hdfs 系统不支持数据的修改。(对)
  • 关于 hdfs 元数据,Edits 编辑日志中记录了文件系统的所有操作?(错误 )
  • NameNode 本地磁盘保存了 Block 的位置信息  (错误 )
  • DataNode 通过长连接与 NameNode 保持通信  (错误)

你可能感兴趣的:(大数据)