第2章 Hadoop分布式文件系统HDFS

文章目录

  • 第2章 Hadoop分布式文件系统HDFS
    • 一:判断题
    • 二:单选题
    • 三:填空题
    • 四:主观题
      • 1:HDFS核心组件有哪些?每个组件的具体功能是什么?
      • 2:为什么HDFS不适合存储小文件?
      • 3:使用FileSystem对象的rename()方法将目录/HDFSJava下mobile.txt文件重命名为newMobile.txt
      • 4:编写Mobile类,使用Hadoop序列化得方式序列化Mobile类,并将序列化的对象反序列化出来,写出实现的三个步骤。

第2章 Hadoop分布式文件系统HDFS

一:判断题

1:Block Size 是不可以修改的

F

2:如果 NameNode 意外终止 ,SecondaryNameNode 会接替它使集群继续工作。

F

3:Hadoop 是 Java 开发的 ,所以 MapReduce 只支持 Java 语言编写

F

4:Cloudera CDH 是不需要付费使用的

T

5:因为 HDFS 有多个副本 ,所以 NameNode 是不存在单点问题的

F

6:Hadoop 默认调度器策略为 FIFO

T

7:Slave 节点要存储数据 ,所以它的磁盘越大越好

F

8:Hadoop 支持数据的随机读写

F

二:单选题

1:HDFS有一个gzip文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce任务读取该文件时input split大小为?

A.64MB

B.75M

C.128M

D.一个map读取64MB,另外一个map读取11MB

2:一个gzip文件大小75MB,客户端设置Block大小为64MB,请我其占用几个Block?

A.1

B.2

C.3

D.4

3:出现在 datanode 的 VERSION 文件格式中但不出现在 namenode 的VERSION文件格式中的是

A.namespaceID

B.storageID

C.storageType

D.layoutVersion

4:Hadoop非常适合在商用硬件上做分布式存储和计算,在Hadoop集群中,负责文件的存储和管理的是?

A.HDFS

B.MapReduce

C.Hive

D.HBase

5:如果我们现有一个安装2.6.5版本的hadoop集群,在不修改默认配置的情况下存储200个每个200M的文本文件,请问最终会在集群中产生多少个数据块(包括副本)?

A.200

B.40000

C.400

D.1200

6:下列不是属于Apache中和Hadoop相关的项目是?

A.Avro

B.Kettle

C.Zookeeper

D.Hive

7:Hadoop最基础的功能是?

A.存储和处理海量数据的能力

B.快速编写程序

C.加快数据的读取

D.数据挖掘

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

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

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

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

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

9:大数据的类型包含结构化数据、半结构化数据和非结构化数据,下列属于结构化数据的是?

A.Excel二维表格

B.图像

C.视频

D.音频

10:数据采集是将数据引入大数据平台的过程,针对不同的数据源需要采取不同的采集方法,网络数据采集适合下列哪类采集方法?

A.ETL工具抽取

B.分布式日志采集系统

C.爬虫、开放API

D.智能传感设备

11:分布式计算,就是通过不断增加处理器的数量在增强单个计算机的计算能力,从而提高处理数据的速度。

A.正确

B.错误

12:大数据时代的出现,在数据分析的发展过程中是必然的,互联网和物联网的发展,是大数据时代出现的技术基础。

A.正确

B.错误

13:下列关于 MapReduce 说法不正确的是 ______

A.MapReduce 是一种计算框架

B.MapReduce 来源于 google 的学术论文

C.MapReduce 程序只能用 java 语言编写

D.MapReduce 隐藏了并行计算的细节 ,方便使用

14:下面与 HDFS 类似的框架是

A.NTFS

B.FAT32

C.GFS

D.EXT3

15:出现在 datanode 的 VERSION 文件格式中但不出现在 namenode 的VERSION文件格式中的是

A.namespaceID

B.storageID

C.storageType

D.layoutVersion

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

A.Client

B.Namenode

C.Datanode

D.Secondary namenode

17:关于 HDFS 的文件写入 ,正确的是

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

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

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

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

18:Hadoop fs 中的-get 和-put 命令操作对象是

A.文件

B.目录

C.两者都是

D.两者都不是

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

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

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

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

D.文件系统允许有修改

20:下面哪个程序负责 HDFS 数据存储

A.NameNode

B.Jobtracker

C.Datanode

D.secondaryNameNode

21:Client 端上传文件的时候下列哪项正确

A.数据经过 NameNode 传递给 DataNode

B.Client 端将文件切分为 Block ,依次上传

C.Client 端不会对文件切分为 Block ,依次上传

D.Client 只上传数据到一台 DataNode ,然后由 NameNode 负责 Block 复制工作

22:以下哪个命令不可以用来操作HDFS文件:

A.hdfs dfs

B.hadoop fs

C.hdfs fs

D.hadoop dfs

三:填空题

1:start-all.sh启动后,Shell命令查看HDFS根目录下的文件

hdfs dfs -ls /

2:start-all.sh启动后,将本地Linux系统目录/home/hadoop/data/下的mobile.txt文件上传到根目录的HDFSShell目录下的命令:

hdfs dfs -put /home/hadoop/data/mobile.txt /HDFSShell

3:统计目录/HDFSShell下文件大小的Shell命令

hdfs dfs -du /HDFSShell

4:启动hadoop所有进程的命令是:

start-all.sh

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

名称节点

,另一类存储具体数据叫

数据节点

四:主观题

1:HDFS核心组件有哪些?每个组件的具体功能是什么?

HDFS核心组件包含:数据块(Block)、元数据节点(NameNode)
、数据节点(DataNode)和从元数据节点(secondaryNameNode)

Block:默认的最基本的存储单位为128M的数据块

NameNode:管理文件系统的命名空间

DataNode:客户端或者元数据信息(NameNode)可以向数据节点
请求写入或者读出数据块,其周期性的向元数据节点回报其储存
的数据块信息。

secondaryNameNode:周期性的将元数据节点命名空间的镜像文件和修改
日志文件合并,以防日志文件过大。

2:为什么HDFS不适合存储小文件?

在HDFS中,访问大量小文件速度远远小于访问几个大文件,HDFS最初是为流式
访问大文件开发的,如果访问大量小文件,需要不断的从一个datanode跳到另
一个datanode,严重影响性能。每一个小文件要占用一个solt,而task启动将
耗费大量时间甚至大部分时间都耗费在启动task和释放task上.

3:使用FileSystem对象的rename()方法将目录/HDFSJava下mobile.txt文件重命名为newMobile.txt

public void rename() throws Exception{
    Path oldPath = new path("/HDFSJava/mobiles.txt");
		Path newPath = new Path("/HDFSJava/newMobiles.txt");
		System.out.println(fileSystem.rename(oldPath,newPath));
}

4:编写Mobile类,使用Hadoop序列化得方式序列化Mobile类,并将序列化的对象反序列化出来,写出实现的三个步骤。

1、编写Mobile实体类。

2、编写序列化工具类,实现序列化和反序列化方法。

3、编写测试类来测试序列化和反序列化方法。

你可能感兴趣的:(hadoop,hadoop)