这里写自定义目录标题
Hadoop大数据基础
单选
- Hadoop作者是( )
A. Martin Fowler
B. Kent Beck
C. Doug cutting
D. Bruce Eckel
C
- 大数据的数据量现在已经达到了哪个级别?( )
A. GB
B. TB
C. PB
D. ZB
C
- 2003年,Google公司发表了主要讲解海量数据的可靠存储方法的论文是?( )
A. “The Google File System”
B. “MapReduce: Simplified Data Processing on Large Clusters”
C. “Bigtable: A Distributed Storage System for Structured Data”
D. “The Hadoop File System”
A
- 2004年,Google公司发表了主要讲解海量数据的高效计算方法的论文是?( )
A. “The Google File System”
B. “MapReduce: Simplified Data Processing on Large Clusters”
C. “Bigtable: A Distributed Storage System for Structured Data”
D. “The Hadoop File System”
B
- 2006年,Google公司发表了用来处理海量数据的一种非关系型数据库的论文是?( )
A. “The Google File System”
B. “MapReduce: Simplified Data Processing on Large Clusters”
C. “Bigtable: A Distributed Storage System for Structured Data”
D. “The Hadoop File System”
C
- 对于GFS架构,下面哪个说法是错误的?( )
A. GFS Master节点管理所有的文件系统所有数据块。
B. GFS存储的文件都被分割成固定大小的块,每个块都会被复制到多个块服务器上(可靠性)。块的冗余度默认为3。
C. GFS Master还管理着系统范围内的活动,比如块服务器之间的数据迁移等
D. GFS Master与每个块服务器通信(发送心跳包),发送指令,获取状态
A
- 下面哪个选项不是HDFS架构的组成部分?( )
A. NameNode
B. DataNode
C. SecondaryNameNode
D. GFS
D
- 狭义的Hadoop是一个适合大数据分布式存储和分布式计算的平台,不包括下面哪个组件?( )
A. HDFS
B. MapReduce
C. Yarn
D. HBase
D
- 与Hadoop 1.x相比,Hadoop 2.x采用全新的架构,最明显的变化就是增加了哪个组件?( )
A. MapReduce
B. Pig
C. HBase
D. Yarn
D
- 建立在Hadoop文件系统之上的分布式的列式数据库?( )
A. HBase
B. Hive
C. YARN
D. Mahout
A
- 下面哪个选项不属于Google的三驾马车?( )
A. HDFS
B. MapReduce
C. BigTable
D. GFS
A
- 下列哪项通常是集群的最主要的性能瓶颈
A. CPU
B. 网络
C. 磁盘
D. 内存
C
- 下列哪个不是Hadoop运行的模式
A. 单机版
B. 伪分布式
C. 分布式
D. 联机模式
D
- Hadoop版本演进过程中,Hadoop2.0比Hadoop1.0有了很多的优化,下面哪项不属于Hadoop2.0?( )
A. 加入HDFS的 NameNode Federation和YARN
B. YARN基于cgroup的内存和磁盘IO隔离
C. 支持NameNode HA
D. Wire-compatibility特性
B
- Hadoop版本演进过程中,Hadoop3.0比Hadoop2.0有了很多的优化,下面哪项不属于Hadoop3.0?( )
A. JDK版本的最低依赖从1.7变成了1.8
B. 支持多个Standby状态的NameNode
C. 支持NameNode HA
D. datanode内部添加了负载均衡
C
- Hadoop更适合哪些场景?( )
A. 离线分析
B. 复杂数据
C. 少量数据
D. 在线分析
A
- 下图是GFS的架构图,图中标(*)的地方应该是?( )
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7MUPEiAd-1622814088905)(.\Hadoop总库.assets\clip_image002-1598254201842.jpg)]
A. HRegionServer
B. HMaster
C. TabletServer
D. ChunkServer
D
多选
- 下面哪些是大数据的基本特征?( ABCD )
A. 数据体量大
B. 数据类型多
C. 处理速度快
D. 价值密度低
- Hadoop能够使用户轻松开发和运行处理大数据的应用程序,那它主要有下面哪些特点( ABCD )
A. 高可靠性
B. 高扩展性
C. 高效性
D. 高容错性
- 在思维方式方面,大数据完全颠覆了传统的思维方式?( ABC )
A. 全羊而非抽样
B. 效率而非精确
C. 相关而非因果
D. 演绎推理而非归纳总结
- Hadoop大数据有哪两大核心技术?( AD )
A. 分布式存储
B. 数据采集
C. 可视化
D. 分布式处理
判断
- Google的在大数据解决方案是开源的。
A. True
*B. False
- GFS分布式文件系统有两个基本组成部分,一个是客户端(Client),一个是服务端(Server)
A. True
B. False
A
- 上传的数据块保存在GFS上,在保存过程中需要水平复制,水平复制需要考虑两个要求:可靠性. 可用性
A. True
B. False
A
- HDFS的采用了“分而治之”的思想。
A. True
B. False
B
- MapReduce是的最早提出是Google为了解决PageRank的问题
A. True
B. False
A
- Hbase是非关系型数据库,是面向列的。
A. True
B. False
A
- 如果NameNode意外终止,SecondaryNameNode会接替它使集群继续工作。( )
A. True
B. False
B
- Hadoop是Java开发的,所以MapReduce只支持Java语言编写( )
A. True
B. False
B
- Hadoop支持数据的随机写。( )
A. True
B. False
B
- Hadoop1.0和2.0都具备完善的HDFS HA策略。(×)
A. True
B. False
B
- Hadoop源自始于2002年的Apache Lucene项目( )
A. True
B. False
B
- Google的论文《Google File System》提到:还依赖一个高可用的. 序列化的分布式锁服务组件,叫Chubby( )
A. True
B. False
B
- Region Server是Google的论文《Bigtable:一个分布式的结构化数据存储系统》中描述的BigTable的组成部分( )
A. True
B. False
B
- Google的GFS论文是主要是为了解决PageRank(网页排名)的问题( )
A. True
B. False
B
问答
- 请描述 Hadoop 副本冗余存储策略(机架感知)。
答:
默认为副本数为3
第一个副本:放置在上传文件的数据节点;如果是集群外提交,则随机挑选一台磁盘不太满. CPU不太忙的节点。
第二个副本:放置在与第一个副本不同的机架的节点上。
第三个副本:与第二个副本相同机架的其他节点上。
更多副本:随机节点
- 什么是Failover?
答:
Failover是指故障切换,一个主节点失效而无法运作时,另一个节点可自动接手原失效系统所执行的工作。
- 从组成上,描述MapReduce 1 与MapReduce 2的区别:
答:
(1)作业调度和任务监控在MapReduce1中由JobTracker完成。在MapReduce2中,作业调动由ResourceManager完成。任务监控由Application Master完成。
(2)MapReduce1的TaskTracker与MapReduce2的NodeManager职责类似。
(3)资源调配单元在MapReduce1是Slot,而在YARN中是Container。
- 请先图形描述Hadoop生态圈的主要组成,再用文字简单描述各个组成。
答:
生态圈图如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xkrc02Pz-1622814088908)(.\Hadoop总库.assets\clip_image002-1598256138534.jpg)]
各个组成如下:
HDFS: 分布式文件系统
YARN: 资源管理和调度器
MapReduce: 分布式并行编程模型
HBase: Hadoop上的非关系型的分布式数据库
Hive: Hadoop上的数据仓库
Pig :一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin
Flume: 一个高可用的,高可靠的,分布式的海量日志采集. 聚合和传输的系统
Sqoop: 用于在Hadoop与传统数据库之间进行数据传递
Zookeeper: 提供分布式协调一致性服务
Ambari Hadoop:快速部署工具,支持Apache Hadoop集群的供应. 管理和监控
Mahout 提供一些可扩展的机器学习领域经典算法的实现。
Hadoop环境设置
单选
- 下面的配置项配置在hadoop哪个配置文件?( A )
hadoop.tmp.dir
/home/hadoop/hadoop/tmp
A. core-site.xml
B. hdfs-site.xml
C. mapred-site.xml
D. yarn-site.xml
- 端口50070默认是Hadoop哪个服务的端口?( A )
A. NameNode
B. DataNode
C. SecondaryNameNode
D. Yarn
- Hadoop完全分布模式配置免密登录是要?( C )
A. 实现主节点到其他节点免密登录
B. 实现从节点到主节点的免密登录
C. 主节点和从节点任意两个节点之间免密登录
D. 以上都不是
- 安装Hadoop时,发现50070对应的页面无法打开,可以通过下面哪个命令查看某个端口(TCP或UDP)是否在监听?( B )
A. ps
B. netstat
C. ping
D. ifconfig
- 下面哪个目录保存了Hadoop集群的命令(比如启动Hadoop)?( B )
A. bin
B. sbin
C. etc
D. share
- 把公钥追加到授权文件的命令是?( A )
A. ssh-copy-id
B. ssh-add
C. ssh
D. ssh-keygen
- 采用用户user1安装hadoop伪分布式时,解压hadoop安装包采用下面命令:
sudo tar -zxvf hadoop-2.7.3.tar.gz -C ~
运行ls -al命令显示
drwxr-xr-x 11 root root 4096 Aug 3 01:06 hadoop-2.7.3
如果要修改hadoop-2.7.3目录的权限,采用下面哪个命令才有效而且最佳?( D )
A. chown user1:user1 hadoop-2.7.3
B. chown -R user1:user1 hadoop-2.7.3
C. sudo chmod -R 777 hadoop-2.7.3
D. sudo chown -R user1:user1 hadoop-2.7.3
- 下列哪个属性是hdfs-site.xml中的配置?( B )
A. fs.defaultFS
B. dfs.replication
C. mapreduce.framework.name
D. yarn.resourcemanager.address
- Hadoop的配置目录在哪里?( D )
A. /etc/hosts
B. /etc/hadoop
C. $HADOOP_HOME/conf
D. $HADOOP_HOME/etc/hadoop
- 安装Hadoop集群时,在哪个文件指定从机是哪些机器?( B )
A. datanode
B. slaves
C. yarn-site.xml
D. core-site.xml
- Hadoop环境设置配置中需要配置哪些文件?( A )
(1) hadoop-env.sh
(2)core-site.xml
(3)hdfs-site.xml
(4)mapred-site.xml
(5)mapred-site.xml.template
(6)yarn-site.xml
A. (1) . (2) . (3) . (4) . (6)
B. (2) . (3) . (4) . (5) . (6)
C. (1) . (3) . (4) . (5) . (6)
D. (1) . (2) . (3) . (4) . (5)
多选
- 启动HDFS后,jps能看到哪些守护进程?( ABD )
A. DataNode
B. NameNode
C. NodeManager
D. SecondaryNameNode
- 启动YARN后,jps能看到哪些守护进程?( BC )
A. DataNode
B. NodeManager
C. ResourceManager
D. NameNode
判断
- SecondaryNameNode 应与 NameNode 部署到一个节点 ( )
A. True
B. False
B
- 安装Hadoop时,配置项”dfs.replication”是配置在文件core-site.xml ( )
A. True
B. False
B
- 查看Linux ip的命令是ifconfig ( )
A. True
B. False
A
- 每次启动Hadoop都要格式化文件系统 ( )
A. True
B. False
B
- 启动Hadoop所有进程的命令是start-all.sh ( )
A. True
B. False
A
- 设置免密登录需要先用ssh-keygen生成一对密钥 ( )
A. True
B. False
A
- SecondaryNameNode 是 NameNode 的热备份 ( )
A. True
B. False
B
- datanode负责存储数据 ( )
A. True
B. False
A
- 修改~/.bashrc文件保存后,修改的内容能立即生效( )
A. True
B. False
B
- 在/etc/hosts文件映射ip和主机名称 ( )
A. True
B. False
A
- 安装Hadoop时,配置项” fs.defaultFS”是配置在文件core-site.xml( )
A. True
B. False
A
- hadoop安装模式分为伪分布式模式和完全分布式模式( )
A. True
B. False
B
填空
- Hadoop三种安装模式包括 单机模式_____. 伪分布模式_____. 完全分布式模式________。
- 安装Hadoop,执行hadoop格式化的命令是:hdfs namenode -format________________________________。
- Hadoop安装过程需要实现免密登录,且免密登录采用了非对称加密算法,算法涉及一组密钥对:公钥和私钥,其中,_____公钥________用于加密. ____私钥_________用于解密。
- Hadoop伪分布或完全分布模式安装好后,通过jps命令可以查看进程。进程可分两类,一类进程属于HDFS,进程包括NameNode_. DataNode____________. SecondaryNameNode____________,另一类进程属于YARN,进程的包括_______ResourceManager_______________. NodeManager____________
问答
- 在一台操作系统为Ubuntu16.04机器部署Hadoop伪分布式环境。实现下面功能需要输入什么Linux命令?
(1)查看是否安装了openssh-server
(2)查看机器主机名
(3)检查Hadoop进程是否存在
(4)查看SSH服务的22端口是否在监听(Listen)
答:
(1) dpkg -l |grep openssh-server
(2) hostname
(3) jps
(4) netstat -an |grep 22
- 在三台操作系统为Ubuntu16.04机器(机器名分别是node1. node2. node3)部署Hadoop完全分布式环境,三台机器已经实现免密码登录。实现下面功能需要输入什么Linux命令?
(1)从node1,通过ssh登录到node2
(2)在node2上运行命令,将node1的/home/hadoop/hadoop-2.7.3 拷贝到/home/hadoop下
(3)查看当前机器的磁盘使用量
答:
(1) ssh node2
(2) scp -r node1:/home/hadoop/hadoop-2.7.3 /home/hadoop
或scp -r @node1:/home/hadoop/hadoop-2.7.3 /home/hadoop
(3) df 或df -h
- 做Hadoop免密登录时,运行ssh-copy-id -i ~/.ssh/id_rsa.pub node1 出现错误,提示“ssh: connect to host machineB port 22: Connection refused”,请你分析问题的原因. 并描述问题的解决思路。
答:
(1)可能是openssh-server没有安装好。采用sudo dpkg -l |grep openssh-server确认。
(2)如果已经安装好,再检查服务是否启动。通过netstat -an |grep 22确认端口
(3)再检查node1的配置的IP是否正确,即检查/etc/hosts文件。
- Hadoop有哪三种安装模式. 三种安装模式的特点. 用途是什么?
答:
包括:单机模式. 伪分布模式. 完全分布式模式。
(1)单机模式,特点:没有分布式文件系统HDFS ,MapReduce处理的是本地Linux的文件数据。用途:一般仅用于本地MapReduce程序的调试。
(2)伪分布模式: 特点:具备Hadoop的主要功能。用途:常用于调试程序
(3)完全分布式模式。特点:在多台机器上运行,是真正的分布式环境。用途:常用于生产。
HDFS
单选
- HDFS首先把大数据文件切分成若干个小的数据块,再把这些数据块分别写入不同的节点,这些负责保存文件数据的节点被称为?( B )
A. NameNode
B. DataNode
C. SecondaryNameNode
D. Block
- 名称节点(NameNode)是HDFS的管理者,它的职责有3个方面,下面哪个选项不是NamdeNode的职责?( D )
A. 负责管理和维护HDFS的命名空间(NameSpace)
B. 管理DataNode上的数据块(Block)
C. 接收客户端的请求
D. 负责保存数据块
- 数据节点(DataNode)负责存储数据,一个数据块会在多个DataNode中进行冗余备份,那么HDFS默认存储几份?( C )
A. 1
B. 2
C. 3
D. 5
- 下面哪个选项不属于DataNode的职责?( C )
A. 保存数据块
B. 启动DataNode线程,向NameNode定期汇报数据块信息
C. 管理数据块
D. 定期向NameNode发送心跳信息保持联系
- 向HDFS上传文件,正确的shell命令是?( B )
A. hdfs dfs -get
B. hdfs dfs -put
C. hdfs dfs -appendToFile
D. hdfs dfs -copyToLocal
- 对于HDFS文件读取过程,描述不正确的是?( A )
A. HDFS客户端通过Configuration对象的open()方法打开要读取的文件
B. DistributedFileSystem负责向远程的名称节点(NameNode)发起RPC调用,得到文件的数据块信息,返回数据块列表
C. 通过对数据流反复调用read()方法,把数据从数据节点传输到客户端
D. 当客户端读取完数据时,调用FSDataInputStream对象的close()方法关闭输入流
- HDFS能够在出错的情况下保证数据存储的可靠性,常见的出错情况不包括?( D )
A. 数据节点(DataNode)出错
B. 名称节点(NameNode)出错
C. 数据本身出错
D. 以上选项都不包括
- 考虑到安全和效率,Hadoop设计了机架感知(rack-aware)功能,下面关于机架感知说法正确的是?( C )
A. 三个冗余备份可在同一个机架上
B. 三个冗余备份在不同的机架上
C. 三个冗余备份其中有两个在同一个架构上,另外一个备份在不同的机架上
D. 上述说法都不对
- Hadoop类库中最终面向用户提供的接口类是_____。该类是个抽象类,只能通过类的get方法得到具体类?( B )
A. Configuration类
B. FileSystem类
C. Path类
D. URI类
- 使用HDFS Federation的优点不包括下面哪个选项?( B )
A. NameSpace具有可扩展性
B. DataNode具有可扩展性
C. 性能提升。多个NameNode可以提高读写时的数据吞吐量
D. 隔离性。使用联邦可隔离不同类型的程序,一定程度上可控制资源的分配
- 当NameNode出错时,下面哪个方案描述正确,且是最佳故障恢复和容错方案?( B )
A. 采用SecondaryName定时备份NameNode的fsimage和edits
B. 采用NameNode HA,当一个NameNode出错时,另一个NameNode接管它的工作。
C. 采用NameNode Fedaration,多个Namenode一起工作。
D. 多增加DataNode
- 关于HDFS回收站描述正确的是?( C )
A. HDFS回收站默认开启
B. HDFS回收站中的文件文件像Windows回收站一样,如果不清空回收站,文件会一直保留在回收站。
C. HDFS为每一个用户都创建了回收站,这个类似操作系统的回收站。位置是/user/用户名/.Trash/
D. 用户不能手动清空回收站中的内容
- 关于 SecondaryNameNode的描述,哪项是正确的? ( C )
A. 它是NameNode的热备
B. 它对内存没有要求
C. 它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间
D. SecondaryNameNode应与NameNode部署到一个节点
- HDFS的是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错. 高可靠性. 高可扩展性. 高吞吐率等特征,适合的读写任务是:( C )
A. 一次写入,少次读写
B. 多次写入,少次读写
C. 一次写入,多次读写
D. 多次写入,多次读写
- 使用java-api访问hdfs时,数据块副本数由下面那个决定?( A )
A. client
B. datanode
C. namenode
D. secondarynode
- 下列不属于NameNode的功能(B)。
A.提供名称查询服务
B.保存Block信息,汇报Block信息
C.保存metadata信息
D.metadata信息在启动后会加载到内存
- 采用多副本冗余存储的优势不包含 (D)
A. 加快数据传输速度
B. 容易检查数据错误
C. 保证数据可靠性
D. 节约存储空间
- 下面关于分布式文件系统HDFS的描述正确的是:(A)
A. 分布式文件系统HDFS是谷歌分布式文件系统GFS(Google File System)的一种开源实现
B. 分布式文件系统HDFS比较适合存储大量零碎的小文件
C. 分布式文件系统HDFS是Google Bigtable的一种开源实现
D. 分布式文件系统HDFS是一种关系型数据库
- 以下对数据节点理解错误的是 ( B )
A. 数据节点在名称节点的统一调度下进行数据块的创建. 删除和复制等操作
B. 数据节点通常只有一个
C. 数据节点用来存储具体的文件内容
D. 数据节点的数据保存在磁盘中
- Maven坐标不包含下面的哪一项?( A )
A. scope
B. groupId
C. artifactId
D. version
- HDfS中的block默认保存几份?( A )
A. 3份
B. 2份
C. 1份
D. 不确定
- 下列哪个程序通常与NameNode在一个节点启动?( D )
A. SecondaryNameNode
B. DataNode
C. TaskTracker
D. Jobtracker
- 关于SecondaryNameNode哪项是正确的?( C )
A. 它是NameNode的热备
B. 它对内存没有要求
C. 它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间
D. SecondaryNameNode应与NameNode部署到一个节点
- 一个gzip文件大小75MB,客户端设置Block大小为64MB,请我其占用几个Block?( B )
A. 1
B. 2
C. 3
D. 4
- HDFS有一个gzip文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce任务读取该文件时input split大小为?( B )
A. 64MB
B. 75MB
C. 一个map读取64MB,另外一个map读取11MB
D. 128MB
- 下列哪些提法正确?( C )
A. Hadoop 适合数据的随机读写。
B. Hadoop的数据块大小(Block Size) 是不可以修改的。
C. Hadoop集群默认没有严格的权限管理和安全措施保障。
D. 因为HDFS有多个副本,所以NameNode是不存在单点问题的。
- 通过HDFS哪个命令可以直接清空回收站?( A )
A. hdfs dfs -expunge
B. hdfs dfs -df
C. hdfs dfs -mv
D. hdfs dfs -deleteSnapshot
- 下面哪个程序负责HDFS数据存储?( D )
A. NameNode
B. ResourceManager
C. SecondaryNameNode
D. DataNode
- 在HDFS的DataNode的tmp目录下,运行ls -la看到如下信息:
hadoop@node2:~/hadoop/tmp/dfs/data/current$ ls -al total 16
drwxrwxr-x 3 hadoop hadoop 4096 Sep 27 13:57 .
drwx------ 3 hadoop hadoop 4096 Sep 30 16:08 …
drwx------ 4 hadoop hadoop 4096 Sep 30 16:08 BP-731995760-192.168.1.51-1538027836356
-rw-rw-r-- 1 hadoop hadoop 229 Sep 30 16:08 VERSION
请问,上面的BP-731995760-192.168.1.51-1538027836356 表示的是?( B )
A. HDFS的Cluster ID
B. HDFS的Block Pool ID
C. HDFS的Block ID
D. HDFS的Rack ID
- HDFS检查点(CheckPoint)的作用是可以减少下面哪个组件的启动时间?( B )
A. SecondaryNameNode
B. NameNode
C. DataNode
D. JournalNode
- 下面哪一项不属于DataNode的职责?( C )
A. 存储数据块(Block)
B. 负责客户端对数据块的IO请求
C. 管理DataNode上文件数据块(Block)的均衡
D. 定期向Namenode汇报自身所持有的Block信息
- 如果我们现有一个安装2.7.3版本的Hadoop集群,在不修改Hadoop默认配置的情况下,存储100个每个200M的mp4文件,请问最终会在整个HDFS集群中产生多少个数据块(包括副本)? ( B )
A. 200
B. 600
C. 400
D. 1200
- 以下哪个不是HDFS的进程?( D )
A. SecondaryNamenode
B. Datanode
C. Namenode
D. MRAppMaster/YarnChild
- 假如现在cd到hadoop安装目录下,请问以下哪个命令不正确?( D )
A. sbin/stop-dfs.sh
B. sbin/start-dfs.sh
C. bin/hdfs dfs -cat /mydemo/my.txt
D. sbin/hdfs namenode -format
- HDFS集群中的NameNode职责不包括?( D )
A. 维护HDFS集群的目录树结构
B. 维护HDFS集群的所有数据块的分布. 副本数和负载均衡
C. 响应客户端的所有读写数据请求
D. 负责保存客户端上传的数据
- 关于HDFS集群中的DataNode的描述不正确的是?( A )
A. 一个DataNode上存储一个数据块的多个副本
B. 存储客户端上传的数据的数据块
C. 响应客户端的所有读写数据请求,为客户端的存储和读取数据提供支撑
D. 当Datanode读取数据块的时候,会计算它的校验和(checksum),如果计算后的校验和,与数据块创建时值不一样,说明该数据块已经损坏
- HDFS集群中的DataNode的主要职责是?( C )
A. 维护HDFS集群的目录树结构
B. 维护HDFS集群的所有数据块的分布. 副本数和负载均衡
C. 存储数据块
D. 接收客户端的请求
- 下列关于配置机架感知的相关描述哪项不正确?( B )
A. 如果一个机架出问题,不会影响数据读写和正确性
B. 写入数据的时候多个副本会写到不同机架的 DataNode 中
C. MapReduce 会根据机架的拓扑获取离自己比较近的数据块
D. 数据块的第一个副本会优先考虑存储在客户端所在节点
- Namenode在启动时自动进入安全模式,在安全模式阶段,说法不正确的是?( D )
A. 安全模式目的是在系统启动时检查各个DataNode上数据块的有效性
B. 根据策略对数据块进行必要的复制或删除
C. 当数据块最小百分比数满足的最小副本数条件时,会自动退出安全模式
D. 文件系统允许有修改
- 关于HDFS的文件写入,正确的是?( C )
A. 支持多用户对同一文件的写操作
B. 用户可以在文件任意位置进行修改
C. 默认将文件块复制成三份分别存放
D. 复制的文件块默认都存在同一机架的多个不同节点上
- 下面哪个命令可以实现将HDFS中的文件下载到Linux本地?( A )
A. hdfs dfs -copyToLocal
B. hdfs dfs -put
C. hdfs dfs copyFromLocal
D. hdfs dfs -cp
- 执行命令hdfs dfs -count /mydemo 输出:
2 2 29 /mydemo
请问输出的“2 2 29”三个数字分别代表什么含义?( B )
A. /mydemo下的文件数量. 目录数量. 文件总计大小
B. /mydemo下的目录数量. 文件数量. 文件总计大小
C. /mydemo下的目录数量. 文件总计大小. 文件数量
D. /mydemo下的文件数量. 文件总计大小. 目录数量
- 通过哪个命令可以查看hdfs的状态?( A )
A. hdfs dfsadmin –report
B. hdfs dfsadmin -safemode
C. hdfs dfsadmin -printTopology
D. 以上都不对
多选
- 下面属于HDFS的优点的是(ABC)
A. 处理超大文件。HDFS能够处理TB级甚至PB级的数据。
B. 支持流式数据访问。
C. 低成本运行。HDFS可运行在低廉的商用硬件集群上。
D. 适合处理低延迟的数据访问
E. 适合处理大量的小文件
F. 支持多用户写入及任意修改文件
- 下列关于HDFS对文件分块存储的作用描述正确的是(ABCD)
A. 有利于负载均衡
B. 便于并行处理
C. 最小化寻址开销
D. 支持大规模文件存储
- HDFS只设置一个名称节点带来的局限性包括(ABCD)
A. 隔离问题
B. 命名空间的限制
C. 性能的瓶颈
D. 集群的可用性
- 配置机架感知的下面哪项正确(ABC)
A. 如果一个机架出问题,不会影响数据读写
B. 写入数据的时候会写到不同机架的DataNode中
C. MapReduce会根据机架获取离自己比较近的网络数据
D. 如果一个机架出问题,将无法进行数据读写
- Client端上传文件的时候下列哪项正确(BD)
A. 数据经过NameNode传递给DataNode
B. Client端将文件以Block为单位,管道方式依次传到DataNode
C. Client只上传数据到一台DataNode,然后由NameNode负责Block复制工作
D. 当某个DataNode失败,客户端会继续传给其它DataNode
判断
- 设置参数( dfs.blocksize)为是128M,存在DataNode(数据节点)数据块的大小都是128M( )
A. True
*B. False
- 在数据块传输成功后但客户端没有告诉namenode之前如果namenode宕机那么这个数据块就会丢失( )
*A. True
B. False
- 在流式复制(pipeline)时,逐级传输和响应采用响应队列来等待传输结果。队列响应完成后返回给客户端( )
*A. True
B. False
- 在流式复制(pipeline)时如果有一台或两台(不是全部)没有复制成功,不影响最后结果( )
*A. True
B. False
- NameNode负责管理metadata,client端每次读写请求,它都会从磁盘中读取或则会写入metadata信息并反馈client端。( )
A. True
*B. False
- NameNode本地磁盘保存了Block的位置信息。( )
A. True
*B. False
- Slave节点要存储数据,所以它的磁盘越大越好。( )
A. True
*B. False
- Hadoop默认调度器策略为FIFO,并支持多个Pool提交Job。( )
A. True
*B. False
- 集群内每个节点都应该配RAID,这样避免单磁盘损坏,影响整个节点运行。( )
A. True
*B. False
- 因为HDFS有多个副本,所以NameNode是不存在单点问题的。( )
A. True
*B. False
- HDFS是整个Hadoop生态圈中的基石( )
*A. True
B. False
- 在HDFS HA集群中,两个NameNode都处于活跃状态,这样其中一个NameNode故障时,集群仍然可用( )
A. True
*B. False
- DataNode一旦发生故障将导致整个集群不可用( )
A. True
*B. False
- 上传到HDFS的一个数据块是1M,那么它在HDFS上占用的内存是1M( )
*A. True
B. False
- NameNode管理了两个文件,其中fsimage体现了其最新的状态( )
*A. True
B. False
- 安全模式(Safemode)是HDFS所处的一种特殊状态。处于这种状态时,HDFS只接受读数据请求,不能对文件进行写. 删除等操作( )
*A. True
B. False
- HDFS为每一个用户都创建了类似操作系统的回收站(Trash),当用户删除文件时,文件马上就会被永久性删除( )
A. True
*B. False
- hdfs dfsadmin -disallowSnapshot是开启HDFS快照的命令( )
A. True
*B. False
- HDFS提供了如下两种配额(Quota)命令(这两种命令是管理命令——hdfs dfsadmin)( )
*A. True
B. False
- 当Namenode宕机时SecondaryNamenode能接替Namenode的职责( )
A. True
*B. False
- HDFS在安全模式可以上传文件,但不能删除文件( )
A. True
*B. False
- Client端上传文件到HDFS,数据经过NameNode传递给DataNode( )
A. True
*B. False
- Client只上传数据到一台DataNode,然后由NameNode负责Block复制工作( )
*A. True
B. False
- HDFS检查点(CheckPoint)的作用是可以减少NameNode的启动时间( )
*A. True
B. False
- HDFS Federation,当一个Namenode挂掉了,不会影响其他Namenode( )
*A. True
B. False
填空
- 快照是HDFS 2.x版本新增加的基于某时间点的数据的备份复制。开启快照的命令是:
hdfs dfsadmin -allowSnapshot_______ ,禁用快照的命令是 hdfs dfsadmin -disallowSnapshot___________ 。
- HDFS具有较高的容错性,可以兼容廉价的硬件,它把硬件出错看作一种常态,而不是异常,并设计了相应的机制检测数据错误和进行自动恢复,主要包括以下几种情形:
_____名称节点___________出错. ____数据节点____________出错. _______数据_________出错。
-
HDFS的edits文件和fsimage文件中,_____edits________体现了HDFS最新的状态。
-
SecondaryNameNode默认每隔_____60________分钟,或当edits文件达到____100万_________条事务进行合并。
-
下面的Java代码要获取HDFS的输出流,标①的地方应填 ____ FileSystem.get(conf)__,标②的地方应填 ______client.create(path)。
… //配置 Configuration conf = new Configuration(); conf.set(“fs.defaultFS”, “hdfs://192.168.1.51:9000”); //获取client FileSystem client = ① ; Path path =new Path("/1.txt"); FSDataOutputStream os = ② ; …
问答
- 根据要求写出对应的HDFS shell命令
(1) 在HDFS上创建名为test的目录
(2) 将本地的文件file上传至test目录下
(3) 将本地的文件file1内容追加至test目录下的file中
(4) 查看test的目录信息
(5) 将test下的file文件下载至本地
答:
hdfs dfs -mkdir test
hdfs dfs -put file test或hdfs dfs -copyFromLocal file test
hdfs dfs -appendToFile file1 test/file
hdfs dfs -ls test
hdfs dfs -get file test或hdfs dfs -copyToLocal file test
- 通过HDFS Shell操作命令实现如下功能。
(1)创建一个HDFS目录/mydemo
(2)创建一个空文件/mydemo/file1.txt
(3)将Linux当前目录下的文件data.txt 追加到HDFS文件/mydemo/file1.txt末尾
(4)统计HDFS目录/mydemo下的目录个数, 文件个数, 文件总计大小。
答:
(1)hdfs dfs -mkdir /mydemo
(2)hdfs dfs -touchz /mydemo/file1.txt
(3)hdfs dfs -appendToFile data.txt /mydemo/file1.txt
(4)hdfs dfs -count /mydemo
- 通过HDFS Shell操作命令实现如下功能。
(1) 递归列出HDFS中/mydemo文件夹下的所有子文件或子目录
(2) 将本地目录data.txt文件上传到HDFS的/mydemo目录下
(3) 查看HDFS下/mydemo/data.txt文件中的内容
答:
(1)hdfs dfs -lsr /mydemo
(2)hdfs dfs -put data.txt /mydemo
(3)hdfs dfs -cat /mydemo/data.txt
- 通过HDFS Shell管理命令实现如下功能。
(1)报告文件系统的基本信息和统计信息
(2)退出安全模式
答:
(1)hdfs dfsadmin -report
(2)hdfs dfsadmin -safemode leave
- 通过HDFS Shell管理命令实现如下功能。
(1)获取当前安全模式的状态
(2)限定HDFS中目录/mydemo文件和目录数量之和的最大值为10
答:
(1)hdfs dfsadmin -safemode get
(2)hdfs dfsadmin -setQuota 10 /mydemo
- HDFS编程:创建文件
答:
public static void main(String[] args) throws Exception{
Configuration conf=new Configuration();
URI uri=new URI(“hdfs://XXXXX:XX”);
FileSystem fs=FileSystem.get(uri,conf,“hadoop”);
Path dfs=new Path("/mydir/test2.txt");
FSDataOutputStream os=fs.create(dfs,true);
newFile.writeBytes(“hello,hdfs!”);
os.close();
fs.close();
}
- 请描述HDFS启动的四个阶段。
答:
(1)加载文件的元信息
(2)加载操作日志
(3)保存检查点
(4)自动进入安全模式,检查数据块的副本率是否满足要求。如果满足则退出安全模式。
- 请描述NameNode的职责。
答:
(1)管理维护HDFS
(2)接收客户端的请求:上传. 下载. 创建目录等
(3)维护了两个非常重要的文件
- 请描述DataNode的职责。
答:
(1) 存储数据块;
(2) 负责客户端对数据块的io请求;
(3) 定时和NameNode进行心跳通信,接受NameNode的指令。
- 请描述SecondaryNameNode的职责。
定期地创建命名空间的检查点(CheckPoint)操作:把edits中最新的状态信息合并到fsimage文件中,防止edits过大。
也可以做冷备,对一定范围内数据做快照性备份。
- fsimage保存了NameNode的元信息,这些元信息具体包括哪些?
答:
包含HDFS中的所有目录和文件信息。
对于目录来说,包含的信息主要有修改时间. 访问控制权限等信息。
对于文件来说,包含的信息有修改时间. 访问时间. 访问控制. 块大小和组成一个文件块信息等;
- 谈谈HDFS Federation和 HDFS HA的区别。
答:
NameNode Federation:多个NameNode同时对外提供服务,每个NameNode分管一部分目录,多个NameNode共享底层DN存储。带来的好处:单个NameNode内存和并发压力减小,NameNode彼此隔离,互不影响。缺点:每个NameNode都还是存在单点故障问题的。
HDFS HA:两个NameNode的内存中各自保存一份元数据,只有一个是Active,另一个是Standby。一旦一个宕机,Starndby的节点变成Active,接替原来的NameNode。
- 请文字或图形描述SecondaryName合并edits和fsimage的流程。
答:
(1)生成一个名叫edits.new的文件,用于记录合并过程中产生的日志信息;
(2)SecondaryNamenode将edits文件. 与fsimage文件从NameNode上下载到SecondNamenode上;
(3)将edits文件与fsimage进行合并操作,合并成一个fsimage.ckpt文件;
(4)将生成的合并后的文件fsimage.ckpt文件上传到NameNode上;
(5)在NameNode上,将fsimage.ckpt变成fsimage文件替换NameNode上原有的fsimage文件。将edits.new文件上变成edits文件替换NameNode上原有的edits文件。
或用图形描述如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VZ8ZOEEq-1622814088910)(.\Hadoop总库.assets\clip_image002-1598256163563.jpg)]
- 请描述HDFS文件读取过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1rypp6vz-1622814088912)(.\Hadoop总库.assets\clip_image002.jpg)]
文字描述:
(1)HDFS客户端通过DistributedFileSystem对象的open()方法打开要读取的文件。
(2)DistributedFileSystem负责向远程的名称节点(NameNode)发起RPC调用,得到文件的数据块信息,返回数据块列表。对于每个数据块,NameNode返回该数据块的DataNode地址。
(3)DistributedFileSystem返回一个FSDataInputStream对象给客户端,客户端调用FSDataInputStream对象的read()方法开始读取数据。
(4)通过对数据流反复调用read()方法,把数据从数据节点传输到客户端。
(5)当一个节点的数据读取完毕时,DFSInputStream对象会关闭与此数据节点的连接,连接此文件下一个数据块的最近数据节点。
(6)当客户端读取完数据时,调用FSDataInputStream对象的close()方法关闭输入流。
- 请描述HDFS文件写入的过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q7RoBir7-1622814088913)(.\Hadoop总库.assets\clip_image004.jpg)]
文字描述:
(1)客户端调用DistributedFileSystem对象的create()方法创建一个文件输出流对象。
(2)DistributedFileSystem对象向远程的NameNode节点发起一次RPC调用,NameNode检查该文件是否已经存在,以及客户端是否有权限新建文件。
(3)客户端调用FSDataOutputStream对象的write()方法写数据,数据先被写入缓冲区,再被切分为一个个数据包。
(4)每个数据包被发送到由NameNode节点分配的一组数据节点的一个节点上,在这组数据节点组成的管道上依次传输数据包。
(5)管道上的数据节点按反向顺序返回确认信息,最终由管道中的第一个数据节点将整条管道的确认信息发送给客户端。
(6)客户端完成写入,调用close()方法关闭文件输出流。
(7)通知NameNode文件写入成功。
YARN
单选
- YARN Web界面默认占用哪个端口?( B )
A. 50070
B. 8088
C. 50090
D. 9000
- 下面哪个YARN的描述不正确的是?( B )
A. YARN 指Yet Another Resource Negotiator,是另一种资源协调者
B. YARN只支持MapReduce一种分布式计算模式
C. YARN最初是为了改善MapReduce的实现
D. YARN的引入为集群在利用率. 资源统一管理和数据共享等方面带来了巨大好处
- 下面哪个不属于YARN的架构的组成部分?( A )
A. JobTracker
B. ResourceManager
C. NodeManager
D. Application Master
- YARN哪种调度器采用的是单队列?( C )
A. Capacity Scheduler
B. Fair Scheduler
C. FIFO Scheduler
D. 以上都不是
- 哪种调度器是YARN中默认的资源调度器?( B )
A. FIFO Scheduler
B. Capacity Scheduler
C. Fair Scheduler
D. 以上都不是
- 多用户的情况下,哪个YARN调度器可以最大化集群的吞吐和利用率?( A )
A. Capacity Scheduler
B. FIFO Scheduler
C. Fair Scheduler
D. 以上都不是
- YARN中,任务进度监控是向哪个组件汇报的?( C )
A. ResourceManager
B. NodeManager
C. ApplicationMaster
D. Container
- 下图哪个表示YARN里面的 Fair Scheduler?( A )
A. 如下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nLruiEkr-1622814088914)(.\Hadoop总库.assets\clip_image002-1598253302967.jpg)]
B. 如下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VGtGfHT6-1622814088915)(.\Hadoop总库.assets\clip_image004.gif)]
C. 如下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ppqfz8mz-1622814088915)(.\Hadoop总库.assets\clip_image006.jpg)]
- 关于YARN的说法错误的是?( D )
A. YARN可以支持除了MapReduce之外的其他计算框架
B. YARN是Yet Another Resource Negotiator的缩写
C. YARN可以为上层应用提供统一的资源管理和调度
D. YARN不是通用的资源管理器
- 关于MapReduce1和YARN的对比错误的是?( B )
A. MapReduce1由JobTracker负责作业调度与任务监控
B. YARN的作业调度和任务监控都是由ResourceManager组件完成
C. MapReduce1的任务节点叫做TaskTracker,而Yarn的任务节点为NodeManager
D. MapReduce1的资源调配单元为Slot,而Yarn的资源调配单元为Container
- 以下选项哪个是YARN的组成部分?( A )
A. Container. ResourceManager. NodeManager. ApplicationMaster
B. Container. ResourceManager. NodeManager. ApplicationManager
C. Container. ResourceManager. Scheduler. ApplicationMaster
D. Container. ApplicationManager. NodeManager. ApplicationMaster
- 下列关于YARN的描述错误的是?( C )
A. ResourceManager负责整个系统的资源分配和管理,是一个全局的资源管理器
B. NodeManager是每个节点上的资源和任务管理器
C. ApplicationManager是一个详细的框架库,它结合从ResourceManager 获得的资源和 NodeManager协同工作来运行和监控任务
D. 调度器根据资源情况为应用程序分配封装在Container中的资源
- 下列关于调度器的描述不正确的是?( A )
A. 先进先出调度器可以是多队列
B. 容器调度器其实是多个FIFO队列
C. 公平调度器不允许管理员为每个队列单独设置调度策略
D. 先进先出调度器以集群资源独占的方式运行作业
- YARN哪种调度器采用的是单队列?( A )
A. FIFO Scheduler
B. Capacity Scheduler
C. Fair Scheduler
D. ResourceManager
- 下面对YARN调度器描述正确的是?( D )
A. Capacity Scheduler是一种单队列的调度器
B. Hadoop2.0,Fair Scheduler是YARN中默认的资源调度器
C. 多用户的情况下,Fair Scheduler可以最大化集群的吞吐和利用率
D. Hadoop1.0,FIFO Scheduler是YARN中默认的资源调度器
多选
- YARN有哪几种资源调度器?( ABC )
A. FIFO Scheduler
B. Capacity Scheduler
C. Fair Scheduler
D. Resource Scheduler
- YARN架构的几个组成部分有哪些?( ABCD )
A. Container
B. ResourceManager
C. NodeManager
D. Application Master
- 启动YARN后,jps能看到哪些守护进程?( BC )
A. DataNode
B. NodeManager
C. ResourceManager
D. NameNode
判断
- 在YARN之上可以部署Spark
*A. True
B. False
- 多用户的情况下,Fair Scheduler可以最大化集群的吞吐和利用率
A. True
*B. False
- Hadoop2.0,FIFO Scheduler是YARN中默认的资源调度器
A. True
*B. False
- YARN的FIFO Scheduler采用的是单队列
*A. True
B. False
- 启动YARN的命令是start-yarn.sh
*A. True
B. False
- 启动YARN之后,jps能看到ResourceManager和NodeManager两个守护进程
*A. True
B. False
- Hadoop1.x有YARN组件
A. True
*B. False
- YARN默认的调度器是Fair Scheduler
A. True
*B. False
- 公平调度器是所有队列中的所有任务公平的得到相同资源
A. True
*B. False
- 容器调度器在多用户的情况下,可以最大化集群的吞吐和利用率
*A. True
B. False
- YARN不仅支持MapReduce,还支持Spark,Strom等框架。 ( )
*A. True
B. False
- Container是YARN中资源的抽象,它封装了某个节点上的多维度资源( )
*A. True
B. False
- YARN的三种调度器只有FIFO是属于单队列的。 ( )
*A. True
B. False
- 在YARN的整个工作过程中,Container是属于动态分配的。 ( )
*A. True
B. False
问答
- 请列出YARN三种调度器,并简要说明其工作方法
答:
FIFO Scheduler:
(1)单队列。
(2)先进先出的原则。
Capacity Scheduler:
(1)多队列。
(2)计算能力调度器,选择资源使用量占用最小. 优先级高的先执行。
(3)多用户的情况下,可以最大化集群的吞吐和利用率。
Fair Scheduler:
(1)多队列。
(2)公平调度,所有的 job 具有相同的资源。
MapReduce
单选
- MapReduce的特点不包括:( D )
A. 易于编程
B. 良好的扩展性
C. 高容错性
D. 擅长对PB级以上海量数据进行实时处理
- MapReduce更擅长:( A )
A. 离线计算
B. 实时计算
C. 流式计算
D. DAG(有向图)计算
- MapReduce中,Mapper的个数由什么决定的?( A )
A. SplitInput的个数
B. DataNode的个数
C. 文件切分的数据块的个数
D. 计算机计算能力
- Reducer的个数由什么决定的?( D )
A. DataNode的个数
B. 文件切分的数据块的个数
C. 计算机计算能力
D. Partition分区的个数
- MapTask 或ReduceTask向自己的哪个组件报告进度和状态?( C )
A. ResourceManager
B. NodeManager
C. MRAppMaster
D. Container
- MapReduce的Shuffle过程中哪个操作是最后做的? ( A )
A. 合并
B. 溢写
C. 分区
D. 排序
- 下面关于MapReduce的描述中正确的是?( D )
A. MapReduce程序必须包含Mapper和Reducer
B. MapReduce程序的MapTask可以任意指定
C. MapReduce程序的ReduceTask可以任意指定
D. MapReduce程序的默认数据读取组件是TextInputFormat
- MapReduce编程模型中以下组件哪个是最后执行的? ( C )
A. Mapper
B. Partitioner
C. Reducer
D. RecordReader
- 在MapReduce中,哪个组件如果用户不指定,则不会默认存有的? ( A )
A. Combiner
B. OutputFormat
C. Partitioner
D. InputFormat
- 下列哪种业务场景中,不能直接使用Reducer充当Combiner使用?( B )
A. sum求和
B. avg求平均
C. max求最大值
D. count求计数
- 以下描述不正确的是?( C )
A. SequenceFile可以用来作为小文件的合并存储容器
B. TextInputFormat的key是LongWritable类型的
C. TextInputFormat的key是指该记录在文件中的行号
D. TextInputFormat 是默认InputFormat
- 以下哪个组件可以指定对key进行Reduce分发的策略?( C )
A. RecordReader
B. Combiner
C. Partitioner
D. FileInputFormat
- 执行一个job,如果这个job的输出路径已经存在,那么程序会?( D )
A. 覆盖这个输出路径
B. 抛出警告,但是能够继续执行
C. 创建一个新的输出路径
D. 抛出一个异常,然后退出
- 下列关于MapReduce并行切分或输入输出描述不正确的是?( B )
A. InputFormat中实现的getSplits()可以把输入数据划分为输入分片(InputSplit)
B. 为实现细粒度并行,输入分片(InputSplit)应该越小越好
C. 一台机器可能被指派从输入文件的任意位置开始处理一个分片
D. 输入分片(InputSplit)是一种记录的逻辑划分,而数据块(Block)是对输入数据的物理分割
- MapReduce中,Mapper的输出经过Shuffle后,Reducer获取到的输入<k3,v3>是有序的,且k3互不相同,v3是相同k2的v2组成的集合,这相当于实现了SQL中哪个语句?( D )
A. group by
B. distinct
C. order by
D. 以上都是
- 若不针对MapReduce编程模型中的key和value值进行特别设置,下列哪一项是MapReduce不适宜的运算。 ( D )
A. Max
B. Min
C. Count
D. Average
- MapReduce编程模型,键值对<key, value>的key必须实现哪个接口? ( A )
A. WritableComparable
B. Comparable
C. Writable
D. LongWritable
- 下列关于HDFS为存储MapReduce并行切分和处理的数据做的设计,错误的是 (B)
A. FSDataInputStream扩展了DataInputStream以支持随机读
B. 为实现细粒度并行,输入分片(Input Split)应该越小越好
C. 一台机器可能被指派从输入文件的任意位置开始处理一个分片
D. 输入分片是一种记录的逻辑划分,而HDFS数据块是对输入数据的物理分割
- 下列分区方式哪个不是采用的Hash方式分区 (B)
A. BinaryPartitioner
B. TotalOrderPartitioner
C. HashPartitioner
D. KeyFieldBasedPartitioner
- 在使用MapReduce程序WordCount进行词频统计时,对于文本行“hello hadoop hello world”,经过WordCount程序的Map函数处理后直接输出的中间结果,应该是下面哪种形式:(B)
A. <“hello”,2>. <“hadoop”,1>和<“world”,1>
B. <“hello”,1>. <“hello”,1>. <“hadoop”,1>和<“world”,1>
C. <“hello”,<1,1>>. <“hadoop”,1>和<“world”,1>
D. <“hello”,1,1>. <“hadoop”,1>和<“world”,1>
多选
- 下列关于压缩在MapReduce中的使用描述正确的是(ABCD)
A. 可以对Map任务输出进行压缩
B. 可以对整个作业的输出进行压缩
C. 可以对输入文件进行压缩
D. 如果输入文件是压缩的,MapReduce会在读取文件时自动解压缩
- 下列关于Mapper的描述正确的是(BCD)
A. 一个MapReduce程序只能设置一个Mapper类
B. 一个MapReduce程序可以设置多个Mapper类
C. Mapper任务的个数取决于分片的个数
D. Mapper输出的键值类型与Reducer输入的键值类型要保持一致
判断
- 每个map槽就是一个线程。( )
A. True
*B. False
- Mapreduce的input split就是一个block。( )
A. True
*B. False
- MapReduce程序只能对key排序( )
*A. True
B. False
- MapReduce擅长对PB级以上海量数据进行实时处理( )
A. True
*B. False
- MapReduce只支持对文本类型的数据进行处理( )
A. True
*B. False
- Combiner是一种特殊Reducer,在Mapper端,先执行一次Reducer( )
*A. True
B. False
- 从MapReduce自身的命名特点可以看出,MapReduce由两个阶段组成:Map和Reduce。所有MapReduce程序都必须有Map和Reduce两个阶段( )
A. True
*B. False
- 使用Java开发MapRedcue程序时,要保证Reducer能接收到数据,Mapper只能通过map()方法输出<k2,v2>( )
A. True
*B. False
- MapReduce中,OutputFormat主要用于描述输出数据的格式,采用NullWritable可以省略输出的key或value。( )
*A. True
B. False
- RecordReader规定每个InputSplit的第一条不完整记录划给前一个InputSplit。( )
*A. True
B. False
- Partition的数量决定Reducer的数量。 ( )
*A. True
B. False
- Combiner是一种特殊Reducer。 ( )
*A. True
B. False
- 链式MapReduce计算中,对任意一个MapReduce作业,Map和Reduce阶段可以有无限个Mapper,但Reducer只能有一个。( )
*A. True
B. False
- MapReduce计算过程中,相同的key默认会被发送到同一个reduce task处理。( )
*A. True
B. False
填空
-
MapReduce采用___分而治之___思想,把对大规模数据集的操作,分发给一个主节点管理下的各个子节点共同完成,然后整合各个子节点的中间结果,得到最终的计算结果。
-
Hadoop所有的输入和输出的数据类型必须是hadoop的数据类型,实现___Writable___接口
-
下图是MapReduce 1的架构,标“①”的地方应用填写_________TaskTracker________________。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OIREjCyp-1622814088917)(.\Hadoop总库.assets\clip_image002-1598255469468.jpg)]
-
MapReduce1官方称最大支持节点数 4000__,任务数达到______40000_______时,MapReduce会遇到可扩展瓶颈,而MapReduce 2最的支持节点数扩展达到________10000_______,任务数达到_____100000______。
-
YARN的架构中,______ResourceManager________________负责整个系统的资源分配和管理,是一个全局的资源管理器。主要由两个组件构成:________调度器__________和应用程序管理器。
-
MapReduce是一种简化______并行计算___________的编程模型。
-
MapReduce采用“分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个子节点共同完成,此节点计算并输出的过程称为______map___________任务,然后整合各个子节点的中间结果,得到最终的计算结果,此过程称为_______reduce__________任务。简而言之,MapReduce就是“分散任务___,汇总结果_____”
-
开发MapReduce程序,自定义的类型如果要实现序列化,需要实现接口_____Writable___________。
-
下面是一段MapReduce程序。标①的地方表示提交job,可以填入___________waitForCompletion(true)____________________表示等待任务完成并打印进度,也可以填入__________submit()_____________________则表示提交任务且不等待任务运行结束。
//args:input output
public static void main(String[] args) throws Exception {
Job job = Job.getInstance();
//jar
job.setJarByClass(App.class);
//mapper
job.setMapperClass(MyMapper.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
//reducer
job.setReducerClass(MyReducer.class);
//output
job.setOutputKeyClass(Text.class);//k4
job.setOutputValueClass(IntWritable.class);
FileInputFormat.setInputPaths(job,new Path(args[0]));
FileOutputFormat.setOutputPath(job,new Path(args[1]));
//提交
Job. ① ;
}
问答
- MapReduce模型要点包括哪些?
答:
(1)任务Job = Map + Reduce
(2)Map的输出是Reduce的输入
(3)所有的输入和输出都是<Key,Value>形式。 <k1,v1>是Map的输入,<k2,v2>是Map的输出。<k3,v3>是Reduce的输入,<k4,v4>是Reduce的输出
(4)k2=k3,v3是一个集合,v3的元素就是v2
(5)所有的输入和输出的数据类型必须是hadoop的数据类型
(6)MapReduce处理的数据都是HDFS的数据(或HBase)
- 请用描述任务的运行状态(或进度)在MapReduce中的传递流程。
答:
(1)map任务或reduce任务运行时,向自己的MRAppMaster报告进度和状态。
(2)MRAppMaster形成一个作业的汇聚视图
(3)客户端每秒钟轮询一次MRAppMaster获取最新状态。
- 请简述MapReduce中的Combiner和Partition的作用。
答:
Combiner: 减少Mapper输出到Reducer的数据量,缓解网络传输瓶颈,提高Reducer的执行效率。
Partition: 将Mapper产生的所有<key,value>对分配给不同的Reducer 处理,可以将Reduce阶段的处理负载进行分摊。
- 什么是Shuffle?
答:
MapReduce确保每个reducer的输入都是按键排序的。系统执行排序. 将map输出作为输入传给reducer的过程称为Shuffle。Shuffle是MapReduce奇迹发生的地方。
- 请描述整个MapReduce工作的大致流程。
答:
主要分为八个步骤
(1)对输入文件进行切片规划。
(2)启动相应数量的Map Task进程。
(3)调用InputFormat中的RecordReader,读一行数据并封装为<k1,v1>,并将<k1,v1>传给map函数。
(4)调用自定义的map函数计算,并输出<k2,v2>。
(5)收集map的输出,进行分区和排序(shuffle)。
(6)Reduce Task任务启动,并从map端拉取数据。Reduce Task获取到输入数据<k3,v3>。
(7)Reduce Task调用自定义的reduce函数进行计算,得到输出<k4,v4>。
(8)调用Outputformat的RecordWriter将结果数据输出。
- 根据下面的文件和要求,请画出MapReduce的编程模型并标明k和v。
年级 | 专业 | 人数 |
---|---|---|
2018级 | 大数据专业 | 100 |
2018级 | 软件开发 | 50 |
2017级 | 计算机科学与技术 | 56 |
… | … | … |
要求:统计各个年级的总人数。
答:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cmF9So8V-1622814088917)(.\Hadoop总库.assets\clip_image001-1598255661504.png)]
<k1,v1> :<0,2018级,大数据专业,100> …
<k2,v2>:<2018级,100> …
<k3,v3>:<2018级,list{100,80,50}>…
<k4,v4>:<2018级,230> …
数据类型分别为
k1:LongWritable,偏移量 v1:Text 每行文本
K2:Text,年级 v2:InterWritable 人数
K3:Text,年级 v3:InterWritable V2的集合
K4:Text,年级 v4:InterWritable 每个年级的总人数
- 分析和编写WordCount程序从MapReduce自身的命名特点可以看出,MapReduce由两个阶段组成:Map和Reduce。用户只需要编写map()和reduce()两个函数,即可完成分布式程序的设计。
继承Mapper类实现自己的Mapper类,并重写map()方法。
public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable>{
@Override
protected void map(LongWritable key1, Text value1, Context context)
throws IOException, InterruptedException {
//数据: I love Beijing
String data = value1.toString();
//分词
String[] words = data.split(" ");
//输出 k2 v2
for(String w:words){
context.write(new Text(w), new IntWritable(1));
}
}
}
public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
@Override
protected void reduce(Text k3, Iterable v3,Context context) throws IOException, InterruptedException {
//对v3求和
int total = 0;
for(IntWritable v:v3){
total += v.get();
}
//输出: k4 单词 v4 频率
context.write(k3, new IntWritable(total));
}
}
HBase
单选
- 下列哪种场景不适合采用列式存储?( D )
A. 对于单列,获取频率较高
B. 对于大数据的环境,利于数据压缩和线性扩展
C. 事务使用率不高,数据量非常大
D. 对于更新某些行的频率很高
- 行式存储和列式存储优缺点表述不正确的是?( A )
A. 相比行式存储,列式存储UPDATE比较容易
B. 行式存储列数不能太多,一般不能超过30列
C. 行式存储选择时即使只涉及某几列,所有数据也都会被读取。
D. 列式存储做查询操作,选择完成时,被选择的列要重新组装
- HBase Web Console的默认端口是?( D )
A. 50070
B. 50090
C. 8088
D. 16010
- 下面描述HBase的Region的内部结构不正确的是? ( D )
A. 每个Strore由一个MemStore和0至多个StoreFile组成
B. Region由一个或者多个Store组成
C. MemStore存储在内存中,StoreFile存储在HDFS
D. 每个Store保存一个 Column
- 查看HBase的表的结构,可以通过哪个命令? ( B )
A. list
B. describe
C. status
D. get
- 通过JAVA API操作HBase,哪个JAVA类是操作列簇的?( C )
A. HBaseAdmin
B. HTable
C. HtableDescriptor
D. Scanner
- 下面哪项对HBase的特性描述不正确?( A )
A. 伸缩性:表可以很“高”(数百万个数据行),可以很“宽”(数十亿个列)
B. 自动分区:当表增长时,表会自动分裂成Region,并分布到可用节点上。
C. 线性扩展和对于新节点的自动处理:增加节点,指它指向RegionServer,Region自动负载均衡。
D. 普通商用硬件支持
判断
- Hbase 的Region由一个或者多个Store组成( )
*A. True
B. False
填空
-
______Region________________是HBase中分布式存储和负载均衡的最小单元。
-
HBase列数据属性中,______Timestamp________________作为列数据版本,HBase (0.96版本之后的HBase)每个列默认只存_______1________个数据版本。
-
HBase的安装分________本地模式______________. 伪分布模式______. ________完全分布模式(或集群模式)______________三种。
-
HBase要删除一张表,第一步________disable ______‘表名称’, 第二步 drop’表名称’(注:空格内填HBase Shell的命令)。
问答
- 请采用HBase Shell实现如下功能,并将相关语句写在下方。
(1)创建一个表’student’,它包含列簇’info’,‘score’
(2)往表里增加一条数据,行键是’2018001’,‘info’包含’name’列,值是’Tom’,‘score’包含’math’列,值是’99’
(3)查看整张表’student’的数据。
答:
(1)create ‘student’,‘info’,‘score’
(2)put ‘student’,‘2018001’,‘info:name’,‘Tom’
put ‘student’,‘2018001’,'score:math,‘99’
(3)scan ‘student’
- HBase 已经存在表’emp’,请采用HBase Shell实现如下功能,并将相关语句写在下方。
(1) 获得表的描述
(2) 添加一个列族’job’
(3) 给表中添加一个数据,其rowkey是’999’,列为’job:address’,值为’Beijing’
(4) 查看整张表的数据
答:
(1) desc ‘emp’ 或 describe ‘emp’
(2) alter ‘emp’, ‘job’
(3) put ‘emp’,‘999’,‘job:address’,‘Beijing’
(4) scan ‘emp’
- 如果把HBase看作是一个Key-Value型数据库,哪它的Key是什么?
答:
Table + RowKey + ColumnFamily + Column + Timestamp
- 请用图形描述HBase的体系结构,并文字描述HBase主要组成部分的职责。
答:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h2zrYrYv-1622814088918)(.\Hadoop总库.assets\clip_image002-1598256217120.jpg)]
HMaster,负责表和Region的管理工作
(1)管理用户对表结构的操作
(2)实现不同Region Server之间的负载均衡
(3)Region分裂或合并后,负责重新调整Region的分布。
(4)监控Region Server的工作状态,对发现故障失效的Region Server上的Region进行迁移。
RegionServer:
(1)维护HMaster分配给它的Region
(2)响应Client对Region的读写请求
(3)负责切分正在运行过程中变的过大的Region(Region分裂)
Zookeeper:
(1)保证集群中至少有一个HMaster处于运行状态
(2)存储HBase的schema. 表元数据. Region的寻址入口
Hive
单选
- Hive支持的复杂数据类型不包括: ( D )
A. Array
B. Map
C. Struct
D. List
- 从存储位置上,可以拿Hive与HDFS进行比较,下面说法不正确的是?( C )
A. Hive的表保存到HDFS上是一个目录
B. Hive的分区保存到HDFS上是一个目录
C. Hive的桶保存到HDFS上是一个目录
D. Hive的数据保存到HDFS上是一个文件
- 使用hive的“create table”语句创建表时,如果不指定分隔符,默认的分隔符是:( D )
A. 冒号“:”
B. 逗号“,”
C. 制表符“\t”
D. “\001”,即Ctrl+A
- Hive数据模型不包括:( B )
A. 内部表(托管表)
B. 存储过程
C. 外部表
D. 分区表
- Hive哪一种数据模型,删除表时,存储目录中的数据不会被删除,只是删除与数据的链接?( B )
A. 内部表(托管表)
B. 外部表
C. 分区表
D. 桶表
- 以下哪种不是Hive支持的数据类型?( C )
A. struct
B. int
C. long
D. map
- 下面关于使用hive的描述中不正确的是?( A )
A. hive支持数据删除和修改
B. hive中的join查询只支持等值链接,不支持非等值连接
C. hive中的join查询支持左外连接,不支持右外连接
D. hive默认仓库路径为/user/hive/warehouse/
判断
- Hive支持数据删除和修改( )
A. True
*B. False
- Hive中的join查询只支持等值链接,不支持非等值连接( )
*A. True
B. False
填空
- Hive的Metastore 三种运行模式分别是:Embedded(或嵌入). Local(本地). Remote(远程)__。
- Hive最终都会转化为______MapReduce______________程序来运行。
Pig
单选
- 下列对Pig的描述不正确的是?( B )
A. Pig不要求每一行(tuple)具有相同的列
B. Pig的表不可以嵌套。
C. Pig可以简化MapReduce任务的开发
D. Pig可以看做是Pig Latin到MapReduce的映射器
- Pig复杂数据类型不包括:( B )
A. map
B. set
C. bag
D. tuple
- 下面命令不属于pig命令的是:( C )
A. cd
B. ls
C. df
D. register
- Pig加载存储函数中,哪个函数可以用字段分隔文本格式加载或存储关系?( A )
A. PigStorage
B. BinStorage
C. BinaryStorage
D. TextLoader
- 下面的哪个PigLatin语句可以实现把表保存到文件?( C )
A. load
B. generate
C. store
D. dump
判断
- 如果拿Pig的数据模型与关系型数据库比较,Pig中的数据结构“tuple”可以对应理解为关系型数据库的表( )
A. True
*B. False
填空
- Pig有两种运行模式,一种是本地模式 ,启动的命令是: _______ pig -x local_____________,另一种是_______MapReduce_____________模式,启动的命令是:pig (或 pig -x mapreduce)____。
问答
- 如果一个SQL语句是:select empno,ename,sal from emp查询职工的信息。
如果换用PigLatin语句来实现要查询并显示结果,相应的语句怎样写?
答:
emp2 = foreach emp generate empno,ename,sal;
dump emp2;
- 如果一个SQL语句是:select * from emp where deptno=10;查询10号部门的员工。如果换用PigLatin语句来实现要查询并显示结果,相应的语句怎样写?
答:
emp2 = filter emp by deptno==10;
dump emp2;
- 如果一个SQL语句是:select * from emp order by sal按薪水查询职工的信息。如果换用PigLatin语句来实现要查询并显示结果,相应的语句怎样写?
答:
emp4 = order emp by sal;
dump emp4;
- 如果一个SQL语句是:select * from emp where deptno=10 union select * from emp where deptno=20。如果换用PigLatin语句(且使用到集合运算语句union)来实现要查询并显示结果,相应的语句怎样写?
答:
emp10 = filter emp by deptno==10;
emp20 = filter emp by deptno==20;
emp1020 = union emp10,emp20;
dump emp1020
Flume
单选
- 对Flume描述不正确的是?( B )
A. 一个Agent中可以包含多个Source. Channel和Sink
B. 一个Sink以绑定多个Channel
C. 一个Source可以指定多个Channel
D. Agent是Flume的核心
- Flume中,下面哪一个Source类型的功能是监控某个端口,将流经端口的文本行数据作为Event输入?( D )
A. Avro Source
B. Exec Source
C. Spooling Directory Source
D. Netcat Source
- Flume中,下面哪一个Source类型的基于Unix的命令在标准输出上生产数据?( B )
A. Avro Source
B. Exec Source
C. Spooling Directory Source
D. Netcat Source
判断
- Flume中,一个Sink以绑定多个Channel( )
A. True
*B. False
- Flume的组件类型是固定的,不能自定义( )
A. True
*B. False
- Flume可以将多个Agent顺序连接起来,前面Agent的Sink. 当前Agent的Source需要是Thrift 类型( )
A. True
*B. False
填空
- ______Event______________是Flume处理数据元,可能是一条日志. 一个Avro对象等,通常约4KB大小。
问答
- 请问Flume主要由哪几部分组成?各个部分的作用是什么?
答:
由三部分组成:Source. Sink. Channel
(1). Source:从数据源接收数据;
(2). Sink:传递数据给目的地;
(3). Channel:连接Source和Sink的管道,数据缓存。
Sqoop
单选
- 以前在传统数据库与Hadoop之间,数据传输没有专门的工具,两者数据的互导是比较困难的,_____的出现解决了这个问题?( C )
A. Hive
B. Flume
C. Sqoop
D. Zookeeper
- Sqoop的底层实现是_____?( B )
A. HDFS
B. MapReduce
C. HBase
D. Hadoop
- 将数据从关系型数据库中导出到HDFS上,应当使用命令_____?( A )
A. import
B. export
C. list
D. 以上都不对
- 关于Sqoop数据的导入导出描述不正确的是?( B )
A. 实现从MySQL到Hive的导入导出
B. 实现从MySQL到Oracle的导入导出
C. 实现从HDFS到Oracle的导入导出
D. 实现从HDFS到MySQL的导入导出
- 列出mysql数据库中的所有数据库sqoop命令是?(A)
A. sqoop list-databases –connect
B. sqoop list-tables –connect
C. sqoop create-hive-table –connect
D. sqoop import –connect
- 对Sqoop描述不正确的是?( C )
A. Sqoop的底层实现是MapReduce
B. Sqoop主要采集关系型数据库中数据,常用于离线计算批量处理
C. Sqoop只支持从关系型数据库导入到HDFS,不支持从HDFS导入到关系型数据库。
D. Sqoop脚本最终会变成提交到YARN上的一个个map任务
- 关于Flume与Sqoop的描述不正确的是:( D )
A. Flume用于实时采集日志,一般用于实时计算
B. Sqoop主要采集关系型数据库中数据,常用于离线计算批量处理
C. Sqoop脚本最终会变成提交到YARN上的一个个map任务
D. Sqoop只支持从关系型数据库导入到HDFS,不支持从HDFS导入到关系型数据库。
- Sqoop的哪个命令支持从HDFS导数据到MySQL?( B )
A. import
B. export
C. codegen
D. eval
- Sqoop的哪个命令支持记录sqoop job的元数据信息?( B )
A. merge
B. metastore
C. codegen
D. eval
判断
- Sqoop充分利用了MapReduce的并行特点,以批处理的方式加快数据的传输,同时也借助MapReduce实现了容错
*A. True
B. False
- 用户的Sqoop脚本最终会变成提交到YARN上的一个个reduce任务
A. True
*B. False
- Sqoop中的export命令是将数据导入到集群中
A. True
*B. False
- import-all-tables命令的功能是导入某个数据库下所有表到HDFS中
*A. True
B. False
- 将MySql数据导入到Hadoop集群中不需要任务依赖jar包
A. True
*B. False
- Sqoop支持从HBase导数据到MySQL ( )
A. True
*B. False
- 采用Sqoop将HBase的数据导出到MySQL中,如果不指定分隔符,默认的字段分隔符是’\t’( )
A. True
*B. False
Zookeeper
单选
- Zookeeper服务端默认的对外服务端口是?( C )
A. 8088
B. 3888
C. 2181
D. 2888
- Zookeeper生产环境一般采用多少台机器组成集群?( C )
A. 1
B. 3
C. 奇数台(且大于1)
D. 偶数台(且大于1)
- 下面就Zookeeper的配置文件zoo.cfg的一部分,请问initLimit表示的含义是?( A )
tickTime=2000 initLimit=10 syncLimit=5
A. Leader-Follower初始通信时限
B. Leader-Follower同步通信时限
C. Client-Server通信心跳时间
D. Client-Server初始通信时限
- 关于ZooKeeper的说法错误的是?( D )
A. ZooKeeper是一个高可用的分布式数据管理和协调框架
B. 能够很好的保证分布式环境中数据的一致性
C. 越来越多的分布式系统(Hadoop. HBase. Kafka)中使用ZooKeeper
D. Hadoop的高可用不需要用到ZooKeeper
- ZooKeeper树中节点叫做什么?( A )
A. Znode
B. Zknode
C. inode
D. Zxid
- 关于ZooKeeper顺序节点的说法正确的是?( C )
A. 创建顺序节点的命令为:create /test value1
B. 创建顺序节点时不能连续执行创建命令,否者报错节点已存在
C. 通过顺序节点,可以创建分布式系统唯一ID
D. 顺序节点的序号能无限增加
- 关于ZooKeeper临时节点的说法正确的是?( B )
A. 创建临时节点的命令为:create -s /tmp myvalue
B. 一旦会话结束,临时节点将被自动删除
C. 临时节点不能手动删除
D. 临时节点允许有子节点
- 下列选项哪个不是ZooKeeper的应用场景?( D )
A. Master选举
B. 分布式锁
C. 分布式协调/通知
D. 存储非关系型数据
- 关于ZooKeeper的说法错误的是?( A )
A. ZooKeeper不存在单点故障的情况
B. ZooKeeper服务端有两种重要的角色是Leader和Follower
C. ZooKeeper Leader挂掉之后会自动在其他机器选出新的Leader
D. 客户端可以连接到ZooKeeper集群中任一台机器
- 关于ZooKeeper的特性说法错误的是?( D )
A. 能改变ZooKeeper服务器状态的操作称为事务操作
B. 是版本机制有效避免了数据更新时出现的先后顺序问题
C. 当节点发生变化时,通过watcher机制,可以让客户端得到通知
D. watch能触发多次
- 对Zookeeper的ZNode表达不正确的是?( B )
A. 每个Znode其有一个唯一的路径标识
B. znode适合保存任意长度的数据.
C. znode上都会保存自己的数据内容,同时会保存一系列属性信息.
D. Znode可分为持久节点. 临时节点两类
- 准确说,Zookeeper实现分布式锁使用到Zookeeper的哪些属性或特性?( D )
A. ZNode的顺序号
B. Zookeeper的强一致性
C. ZNode的顺序号和Zookeeper的强一致性
D. ZNode的Watcher. 顺序号和Zookeeper的强一致性
- 采用Zookeeper实现Master选举主要使用到Zookeeper的哪些属性或特性?( B )
A. ZNode的顺序号
B. Zookeeper的强一致性
C. ZNode的版本号
D. ZNode的临时节点
多选
- 下列选项哪些是ZooKeeper的应用场景?( ABCD )
A. Master选举
B. 分布式锁
C. 数据发布与订阅
D. 心跳检测
- ZooKeeper的节点类型有?(ABC)
A. 临时节点
B. 持久节点
C. 顺序节点
D. 监控节点
判断
- ZooKeeper服务端默认的对外服务端口是3888
A. True
*B. False
- ZooKeeper的Znode保存的数据不能超过1MB
*A. True
B. False
- ZooKeeper的close命令会关闭当前连接,可用connect 再次连接,不会退出客户端
*A. True
B. False
- ZooKeeper通过命令“create -s /tmp tmpvalue”可以创建一个临时节点
A. True
*B. False
- Zab为原子消息广播协议,是Zookeeper数据一致性的核心算法
*A. True
B. False
- ZooKeeper Server端中存在一个角色为Leader的节点,其他节点都为Follower
*A. True
B. False
- 进入Zookeeper客户端的命令是zkCli.sh
*A. True
B. False
- 输入help查看ZooKeeper的命令帮助
*A. True
B. False
- ZooKeeper用ls命令查看znode的值
A. True
*B. False
- ZooKeeper的一个应用场景为Hadoop Federation
A. True
*B. False
- 改变ZooKeeper服务器状态的操作称为事务操作。包括数据节点创建与删除. 数据内容更新和客户端会话创建与失效( )
*A. True
B. False
- 通过ZooKeeper Shell设置Watch后,当watch被触发时,将会向客户端发送且发送一个通知,但Watch只能触发一次。如果重新触发需要重新设置Watch ( )
*A. True
B. False
- ZK Failover Controller,又称Zookeeper Failover Controller,简称zkfc,是故障切换控制器。它是一个独立进程( )
*A. True
B. False
填空
-
Zookeeper服务端主要有两种角色,分别是:Leader____. Follower____。
-
ZooKeeper维护着一个________树形层次____________结构,树中节点称为_______ZNode_____________。
-
获取到Zookeeper的ZNode的状态信息如下图所示,其中,cversion表示_______子节点____________的版本号,dataVersion表示______数据节点_____________的版本号,aclVersion表示:_____ACL______________版本号。
cZxid= 0x1b00133dc0 ctime =Tue Jan03 15:44:42CST 2017 mZxid= 0x1d00000063 mtime =Fri Jan06 08:44:25CST 2017 pZxid= 0x1b00133dc0 cversion =0 dataVersion= 11 aclVersion =0 ephemeralOwner= 0x0 dataLength =22 numChildren= 0
- 通过Zookeeper的Shell命令可以操作Zookeeper,其他命令create用于创建ZNode,命令 delete______ 用于删除某个节点。______sync____________用于使客户端视图与Zookeeper一致。
问答
- 通过Zookeeper Shell实现以下功能。
(1)创建临时节点/root,值是test
(2)创建节点/root/child1,值是test1
(3)列出节点/root的有哪些子节点同时列出节点的状态信息
(4)获取节点/root/child1的值
答:
(1)create -e /root test
(2)create /root/child1 test1
(3)ls2 /root
(4)get /root/child1
- 通过Zookeeper Shell实现以下功能。
(1)更新节点/root1的值为value2
(2)删除叶子节点/root1/child1
(3)递归删除子节/root2
答:
(1) set /root1 value2
(2) delete /root1/child1
(3) rmr /root2
- 请列出至少5种Zookeeper使用场景。
答:
(说明:下面中选择5种即可):
Master选举
分布式锁
数据发布与订阅(配置中心)
分布式协调/通知
心跳检测
命名服务(Naming Service)
分布式队列
组服务
工作进度汇报
分布式与数据复制
- Hadoop的HA需要启动哪些进程,他们的作用分别都是什么?
答:
(1)Namenode:管理维护HDFS,响应客户端请求,维护了两个非常重要的文件edits和fsimage
(2)DataNode:存储数据块,负责客户端对数据块的io请求,定时和NameNode进行心跳通信,接受NameNode的指令。
(3)ResourceManager:负责整个系统的资源分配和管理
(4)NodeManager:是每个节点上的资源和任务管理器
(5)JournalNode:两个NameNode数据同步,保存edit log。
(6)Zookeeper:分布式协调管理器
(7)Zkfc:故障切换控制器
- ZooKeeper的数据模型是怎样的。
ZooKeeper的数据模型是一个树形层次结构,如图所示,其中的每个节点称为Znode。指向节点的路径必须使用规范的绝对路径来表示,并且以斜线“/”来分隔。需要注意的是,在ZooKeeper中不允许使用相对路径。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ffzebeoC-1622814088919)(.\Hadoop总库.assets\clip_image002-1598256351638.jpg)]
图 ZooKeeper的树形层次结构
Ambari
单选
- 对集群管理工具Cloudera Manger. Ambari说法不正确的是?( D )
A. Cloudera Manger 由Cloudera公司发布,分为免费版. 收费版
B. Ambari由Hortonwork公司发布,Ambari开源. 免费
C. Cloudera Manger 易用. 稳定,市场占用率高
D. Cloudera Manger免费版本是开源软件
填空
-
Ambari的架构采用的是C/S模型,即:Server/Client模式,能够集中式管理分布式集群的安装配置及部署,主要由两部分组成:__Ambari Server____________和 Ambari Agent。
-
下图是安装Ambari的安装前准备的流程图,下图(3)(4)分别应该填____设置免密登录______________. 安装JDK______ (这两个空格所填内容不分先后)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DKQjwvz6-1622814088919)(.\Hadoop总库.assets\clip_image002-1598255591855.jpg)]
问答
- Ambari提供了对Hadoop更加方便快捷的管理功能,主要包括:
答:
(1)部署Hadoop集群
安装向导化; 可统一管理配置信息
(2)管理Hadoop集群
服务的启动. 停止. 更新配置提供了集中管理
(3)监控Hadoop集群
(4)同时,Ambari 通过一个完整的RESTful API,方便应用系统进行集成。
- Hadoop两大主流集成工具是什么?
当前有两大主流的集群管理工具软件,一是Hortonworks公司的Ambari,另一个是Cloudera公司的Cloudera Manger。两个工具软件的差异如表所示。
集群管理工具软件的对比
工具名 | 所属机构 | 开源性 | 社区支持性 | 易用性. 稳定性 | 市场占有率 |
---|---|---|---|---|---|
Cloudera Manger | Cloudera | 非开源,分为免费版. 收费版 | 不支持 | 易用. 稳定 | 高 |
Ambari | Hortonwork | 开源 | 支持 | 较易用. 较稳定 | 较高 |
- 什么是Ambari?
Ambari工具软件提供了搭建整个Hadoop生态的一站式服务,目前支持HDFS. MapReduce. Hive. HBase. ZooKeeper. Oozie. Pig. Sqoop等诸多Hadoop组件。Ambari虽然只是Hadoop的一个子项目,但现已经是Apache的顶级项目。
Ambari是完全开源的. Hadoop生态的集群部署. 管理. 监控工具,旨在简化Hadoop的管理和使用。它对外提供一套完整的RESTful API,同时提供了一个直观的. 方便快捷的Web管理界面。
Ambari提供了对Hadoop更加方便快捷的管理功能,主要包含如下3个方面。
(1)部署Hadoop集群
Ambari通过一步一步地安装向导,简化了多主机间安装Hadoop服务的过程。
Ambari可统一管理集群中Hadoop各服务的配置信息。
(2)管理Hadoop集群
Ambari为Hadoop集群服务的启动. 停止. 更新配置提供了集中管理。用户界面非常直观,用户可以轻松有效地查看信息并控制集群。
(3)监控Hadoop集群
Ambari为监控Hadoop集群的健康信息. 状态信息提供了一个看板。
Ambari利用指标系统(Ambari Metrics System),实现了对各项指标的采集。
Ambari利用告警框架(Ambari Alert Framework),实现系统告警。当出现你需要注意的信息时会通知你(如节点宕机. 可用的磁盘空间不足等)。
Ambari通过一个完整的RESTful API把监控信息显露出来,使应用程序开发人员和系统集成人员能够轻易地将Hadoop的部署. 管理. 监控能力集成到他们的应用中。
Mahout
判断
- Mahout是Apache旗下的一个开源项目,提供了一些经典的机器学习的算法,皆在帮助开发人员更加方便快捷地创建智能应用程序( )
*A. True
B. False
问答
- Mahout的核心组件是什么?能够实现哪些机器学习任务?
Mahout主要包含以下4部分:
(1)聚类:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程。
(2)分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分类。
(3)推荐过滤:获取用户的购物记录并从中挖掘出用户可能喜欢的事物。
(4)频繁子项挖掘:通过用户的查询记录或购物记录挖掘出经常一起购买的产品。
能够实现哪些机器学习任务.:
能够实现种机器学习算法,分别是协同过滤. 聚类和分类