Bootstrap

Hadoop:HDFS学习巩固——基础习题及编程实战

一 HDFS 选择题

1.对HDFS通信协议的理解错误的是?

A.客户端与数据节点的交互是通过RPC(Remote Procedure Call)来实现的

B.HDFS通信协议都是构建在IoT协议基础之上的

C.名称节点和数据节点之间则使用数据节点协议进行交互

D.客户端通过一个可配置的端口向名称节点主动发起TCP连接,并使用客户端协议与名称节点进行交互

HDFS通信协议构建在TCP/IP协议基础之上

2. HDFS的命名空间不包含:

A. 目录        B. 文件        C. 字节        D. 块

C HDFS的命名空间只有目录、文件、块三部分

3.采用多副本冗余存储的优势不包含:

A.加快数据传输速度            B.保证数据可靠性

C.节约存储空间                D.容易检查数据错误

C 多副本冗余存储的缺点之一就是浪费存储空间

4.分布式文件系统HDFS采用了主从结构模型,由计算机集群中的多个节点构成的,这些节点分为两类,一类存储元数据叫()?另一类存储具体数据叫()?

A.数据节点,名称节点

B.名称节点,主节点

C.名称节点,数据节点

D.从节点,主节点

C 存储元数据的是主节点/名称节点,存储具体数据的是从节点/数据节点

5.数据节点是()

A.NameNode                          B.DataNode

C.SecondaryNameNode         D.Jobtracker

B data就是数据的意思

6. HDFS默认Block Size的大小是()MB。

A. 32          B. 64          C. 128            D. 256

B/C  关于这道题的答案存在争议,主要是和Hadoop的版本有关。Hadoop2.7.3之后是128 MB,2.7.3之前是64MB。大多数教材上是以64MB为答案的,大家可以具体情况具体分析。

7.判断HDFS是否启动成功,可以通过哪个命令?

A.hdfs         B.spark        C.jps       D. start-dfs

C 可以使用jps命令查看当前节点个数,判断HDFS是否成功启动

8.用户在使用HDFS时,仍然可以像普通文件系统那样用文件名去访问文件,以下哪个选项是正确的访问方式?

A.把文件名发送给名称节点,根据文件名在名称节点上找到数据块的实际存储信息,客户端再到数据节点上获取数据

B.把文件名发送给数据节点,根据文件名直接在数据节点上获取数据

C.把文件名发送给名称节点,根据文件名直接在名称节点上获取数据

D.以上说法都不对

A 客户端不直接从名称节点上获取数据,只获取存放数据的数据节点的位置

9.数据节点负责数据的存储和读取,每个数据节点中的数据会被保存在()。

A.各自节点的磁盘文件系统中

B.其他节点的磁盘系统中

C.各自节点的本地Linux文件系统中

D.其他节点的本地Linux文件系统中

10. HDFS中的block默认保存()份。

A. 3        B. 2        C. 1        D. 不确定

11.以下对数据节点理解不正确的是

A.数据节点通常只有一个

B.数据节点的数据保存在磁盘中

C.数据节点在名称节点的统一调度下进行数据块的创建、删除和复制等操作

D.数据节点用来存储具体的文件内容

 A 只有一个的是名称节点

二 HDFS操作题

1.启动hadoop

cd /apps/hadoop/sbin  
./start-all.sh  

2.在HDFS文件系统中建立如下目录:/zhangsan/hadoop 

hadoop fs -mkdir -p /zhangsan/hadoop

3.接着在第3步建立的目录下,创建test文件夹,并使用ls命令查看是否创建成功。

hadoop fs -mkdir -p /zhangsan/hadoop/test
haddop fs -ls -R /

4.将Linux文件系统中的“~/.bashrc”文件上传到HDFS的test文件夹中,并在浏览器中查看文件是否上传成功。

hadoop fs -put ~/.bashrc /zhangsan/hadoop/test

5.将a.txt从hdfs文件系统下载到Linux文件系统。

hadoop fs -get /zhangsan/hadoop/a.txt /home/zhangyu

;