第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.音频
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、编写测试类来测试序列化和反序列化方法。