第五阶段学习测试

2023-11-02

逐梦

一、单选题

1、下列各项中,执行流程正确的是:
A.InputFormat-Mapper-Reducer-OutputFormat
B.Mapper-InputFormat-Reducer-OutputFormat
C.InputFormat-Mapper-OutputFormat-Reducer
D.Mapper-InputFormat-OutputFormat-Reducer
【正确答案】A
【答案解析】在MapReduce 的计算过程中,应该是先利用InputFormat对文件进行切片读取数据,然后交给Mapper处理,之后交给Reducer进行规约,最后由OutputFormat来决定输出格式,输出到指定的位置。
2、下列关于跳跃表的说法正确的是:
A.跳跃表适合于查询多而增删少的场景
B.跳跃表是一种典型的以时间换空间的产物
C.跳跃表中新添加的元素一定要提取到上层的跳跃表
D.跳跃表的查询时间复杂度是nlog(n)
【正确答案】A
【答案解析】跳跃表是一种典型的以空间换时间的产物,利用大量的内存来提高查询效率,因此适合于查询多而增删少的场景,因此A正确B错误。在跳跃表中新添加的元素是否提取到上层的跳跃表中要遵循抛硬币原则,所以C错误。跳跃表的查询时间复杂度是log(n),所以D错误。
3、下列关于MapReduce的序列化的说法错误的是:
A.MapReduce之所以要求数据能够被序列化,是因为在计算过程中涉及到数据的存储和传输过程
B.MapReduce的序列化采用的是Java原生序列化机制
C.MapReduce要求序列化的对象中的属性值不能为null
D.MapReduce要求对应的类实现Writable接口之后才能被序列化
【正确答案】B
【答案解析】MapReduce在计算过程中,涉及到spill过程,涉及到MapTask和ReduceTask之间的通信问题,所以要求数据能够被序列化,因此A正确。MapReduce的序列化机制是在AVRO的基础上进行了封装,要求对应的类实现Writable接口,所以B错误,D正确。
4、下列关于Buffer的阐述正确的是:
A.Buffer本质上是利用数组完成数据的存储且针对八种基本类型提供了对应的子类
B.Buffer中有四个重要的位置:position,capacity,mark,limit,其中大小关系为mark<=position<=limit<=capacity
C.Buffer在创建好之后可以随着数据的大小而动态改变
D.Buffer中的flip操作表示重绕缓冲区
【正确答案】B
【答案解析】Buffer底层是利用了数组进行存储,但是针对八种基本类型只提供了七种子类,其中没有针对boolean类型提供子类,所以A错误。在Buffer,mark是标记位,用于标记已经操作的位置,所以不能超过操作位;position是操作位,用于指向要操作的位置,而limit是限制位,用于限定position所能达到的最大位置,所以position<=limit,而capacity是容量位,用于指定容量,在缓冲区创建之初,limit指向容量位,所以B正确。Buffer底层的数组使用final修饰的,所以在Buffer创建好之后容量就不能动态改变了,因此C错误。Buffer中flip表示翻转缓冲区,而重绕缓冲区是rewind操作,所以D错误。
5、下列关于原子广播的说法错误的是:
A.原子广播的主要作用是解决数据的一致性问题
B.原子广播是基于2PC算法进行实现
C.在原子广播中,只要一个follower返回了no给leader,则leader会命令所有的节点都放弃执行这个操作
D.原子广播过程中,能够有效的保证操作提交的顺序性
【正确答案】C
【答案解析】原子广播能够保证所有节点的操作一致从而保证数据的一致性,所以A正确。原子广播是基于了2PC算法进行实现,但是采取了过半性进行改进,所以B正确,C错误。在原子广播过程中,leader接收到操作之后会将操作放入队列发送给follower,所以能够有效的保证操作接收和提交的顺序性,因此D正确。
6、下列关于NIO与BIO的叙述中,说法错误的是:
A.NIO是非阻塞式IO,BIO是阻塞式IO
B.NIO和BIO一样,都是一对一的连接方式
C.NIO基于Channel可以实现双向传输,而BIO是单向传输的
D.NIO适合于高并发短任务场景,而BIO适合于连接少长任务场景
【正确答案】B
【答案解析】NIO是JDK1.4提供的一种同步式非阻塞式IO,BIO是Java提供的一种同步式阻塞式IO,所以A正确。与BIO不同的一点在于,NIO利用Selector进行选择,使用一个或者少量线程处理大量请求,所以NIO是一种一对多的连接方式,所以B错误。NIO中Channel可以实现双向传输,而BIO因为要区分方向来确定是使用输入流还是输出流,所以是单向传输,所以C正确。因为NIO是利用一对多的方式来处理数据,所以如果是长任务场景,则会导致靠后的任务需要等待的事件比较长,所以NIO适合于高并发短任务场景;而因为BIO是一对一的连接,所以如果是高并发场景会导致在服务器端产生的线程量比较多从而加剧服务器的并发压力,所以BIO适合于连接少的长任务场景,所以D正确。
7、在dfs目录中,不包括的子目录是:
A.data
B.name
C.namesecondary
D.secondaryname
【正确答案】D
【答案解析】dfs目录中包含3个子目录:data、name、namesecondary
8、下列关于RPC的说法错误的是:
A.RPC全称是远程过程调用,是一种进程间的通信方式
B.RPC允许程序调用另一个地址空间的过程或函数,而不用程序员显式编码这个远程调用的细节
C.RPC中,一般利用接口作为存根
D.RPC的特点是复杂高效且只能用于特定的场景
【正确答案】D
【答案解析】RPC的特点是简单、通用、高效,所以D错误。
9、下列各项中不属于Shuffle的优化的是:
A.适当增加Combiner过程
B.增大缓冲区
C.增加fetch线程的数量
D.指定sort的方式
【正确答案】D
【答案解析】Shuffle的调优常见的有以下几种方式:调大缓冲区;增大缓冲区阈值;引入combine过程;对final out文件进行压缩;增多fetch的线程数;降低ReduceTask的阈值;提高merge因子
10、Zookeeper中,每一个节点发送的选举信息不包括的内容是:
A.最大事务id
B.选举id
C.逻辑时钟值
D.节点IP
【正确答案】D
【答案解析】选举信息包括:最大事务id,myid(即选举id),逻辑时钟值。
11、下列各项中,关于Zookeeper的节点信息描述正确的是:
A.czxid表示的是节点被修改的事务id
B.cversion表示的是节点被修改的编号
C.dataversion表示的是节点数据的修改次数
D.ephemeralOwner如果为0,则表示当前节点是临时节点
【正确答案】C
【答案解析】cZxid:创建该节点所分配的全局事务idctime:创建时间mZxid:更新该节点数据所分配的全局事务idmtime:更新时间pZxid:子节点的最新事务idcversion:子节点版本,表示对子节点的更改次数dataversion:数据版本,数据每发生一次变化,数据版本增加1aclVersion:ACL的更新次数,实际上是权限更新的次数ephemeralOwner:如果不是临时节点,则此值为0;如果是临时节点,则此值是其会话iddataLength:数据的字节个数numChildren:子节点的个数
12、关于数据仓库和数据库的说法正确的是:
A.两者都是提供了完整的增删改查的能力
B.两个都提供了完整的事务能力
C.两者针对冗余的处理是不同的
D.两者的数据种类都相对单一
【正确答案】C
【答案解析】数据库中数据的种类和来源相对单一,提供了完整的增删改查的能力,且提供了完整的事务能力,但是数据库强调的是避免冗余;数据仓库中数据的种类和来源相对多样,但是只提供了增和查的能力,不支持修改,且一般强调事务,并且在数据仓库中一般会认为的制造冗余(副本)。
13、如果一个Zookeeper集群中,现在的事务id为0x2,此时发生了如下操作:
create /news ‘’
create /news/n01 ‘’
create /log ‘’
set /news ‘’
delete /news/n01
get /news
则news节点的mZxid是:
A.0x5
B.0x6
C.0x7
D.0x8
【正确答案】B
【答案解析】在Zookeeper中,事务id是用于记录全局写操作发生的事务id。而本题中,起始id为2,mZxid表示的是节点数据被修改的事务id,而news节点的数据被修改操作是set /news ‘’,是全局第6个操作,所以事务id为0x6,因此B正确
14、下列关于Yarn的描述正确的是:
A.Yarn的管理结构是ResourceManager直接管理具体的子任务
B.ApplicationMaster如果划分出来5个MapTask以及2个ReduceTask,则会和ResourceManager申请7份资源
C.如果某一个MapTask出现异常退出,则ResourceManager会试图重启这个任务
D.提交的每一个job任务会对应一个ApplicationMaster
【正确答案】D
【答案解析】Yarn的结构是ResourceManager管理ApplicationMaster,ApplicationMaster管理具体的子任务,而当子任务失败的时候,是由ApplicationMaster负责重新启动这个子任务,所以A、C错误。ApplicationMaster在和ResourceManager申请资源的时候是尽量多的申请,所以默认情况下,5个MapTask以及2个ReduceTask会申请17份资源,但是ResourceManager实际上会返回7份资源,所以B错误。
15、关于Kafka的术语,下列说法错误的是:
A.Kafka集群中的每台服务器叫Broker,整个集群由Zookeeper进行管理
B.Kafka采用发布订阅模式,每条消息都要发送到指定的Topic上
C.每个Topic可分为多个Partition,这样可以提高Kafka的并发执行能力
D.Replica用于提高Kafka的扩展性,它分为Leader Replica、Follower Replica
【正确答案】D
【答案解析】Replica的存在是为了保证数据的完整性和可靠性,而不是保证Kakfa的扩展性,器扩展性是由Partition来保证的。因此D错误。
16、下列关于HRegionServer的各个组件描述正确的是:
A.WAL是负责记录日志,采用了局部性原理
B.BlockCache能够有效的保证数据的可靠性
C.目前版本的HBase中,WAL只支持串行写
D.HRegion中,HStore的个数由列族的数量决定
【正确答案】D
【答案解析】WAL负责记录日志,用于保证操作不会丢失,从HBase的0.96版本开始,支持并行写机制,所以A、C错误。BlockCache是读缓存,维系在内存中,采用了局部性原理,所以B错误。
17、下列关于Hadoop的说法正确的是:
A.Hadoop是Apache提供的一套分布式框架
B.Hadoop集群一旦搭建好之后不能动态扩展
C.Hadoop目前的所有版本都是兼容的
D.Hadoop提供的主要功能是存储而不能计算
【正确答案】A
【答案解析】Hadoop是Apache提供的一个开源的、可靠的、可扩展的系统架构,可以利用分布式架构来进行海量数据的存储以及计算。所以A正确,B、D错误。Hadoop目前所有版本中,Hadoop1.0和Hadoop2.0版本是不兼容的,所以B错误。
18、下列各项中,关于SecondaryNameNode的说法正确的是:
A.SecondaryNameNode是NameNode的热备份
B.SecondaryNameNode可以辅助NameNode完成edits文件的滚动
C.如果HDFS集群中不存在SecondaryNameNode,则无法完成edits文件的滚动
D.SecondaryNameNode如果宕机会导致数据丢失
【正确答案】B
【答案解析】SecondaryNameNode只是辅助NameNode进行edits的滚动,但是不能对NameNode进行实时热备,所以A错误,B正确。在HDFS集群中,如果不存在SecondaryNameNode,则edits滚动由NameNode自己完成,所以C错误。因为SecondaryNameNode只是辅助NameNode进行edits的滚动,既不能进行实时热备又不存储具体数据,所以宕机也不会引起数据丢失,因此D错误。
19、下列关于Shuffle说法正确的是:
A.默认情况下,如果一个文件切片是240M,则一定会产生3次的spill过程
B.默认情况下,Spill文件的大小是80M
C.在缓冲区中,数据会进行排序,采用的是快速排序的方式
D.如果溢写文件个数大于等于3个,则在merge过程中一定会进行combine
【正确答案】C
【答案解析】缓冲区的溢写次数和原始数据大小没有关系而是要看MapTask处理之后产生的数据量的大小,所以A错误。Spill文件的大小要考虑序列化因素的影响,所以文件大小不一定是80M,因此B错误。只有在指定了Combiner之后,在merge过程中才可能会产生combine,所以D错误。
20、下列各项中,关于崩溃恢复的说法错误的是:
A.崩溃恢复包含leader丢失之后会选举出新的leader从而保证集群的正常运行
B.崩溃恢复包含节点宕机重启之后能够找回数据
C.崩溃恢复能够有效的保证集群的可用性
D.崩溃恢复中依然存在单点故障
【正确答案】D
【答案解析】崩溃恢复主要包含两个方面的内容:leader丢失之后的再选举以及数据的找回,所以A、B正确。因为崩溃恢复保证leader丢失之后会再选举出一个新的leader,所以不会因为一个leader丢失就导致集群无法服务,有效的避免了单点故障,保证了集群的可用性,所以C正确,D错误。
21、下列关于MapReduce的分区机制,说法正确的是:
A.在MapReduce中,分区的作用是将数据进行分门别类
B.一个分区可以对应多个ReduceTask
C.分区的数量不影响结果文件的数量
D.默认情况下,因为代码中没有显式的指定分区类,所以是不进行分区的
【正确答案】A
【答案解析】在MapReduce中,要求一个分区对应一个ReduceTask,而一个ReduceTask会产生一个结果文件,所以B、C错误。在默认情况下,如果不指定,则MapReduce中的分区类用的是HashPartitioner,所以D错误。
22、下列关于Flume的Channel中,描述错误的是:
A.Memory Channel是内存通道,特点是读写速度快,但是不可靠
B.File Channel是文件通道,特点是读写速度慢,但是可靠
C.JDBC Channel支持MySQL、Oracle等数据库
D.Memory Spillable Channel是内存溢出通道,在存储数据的时候先将数据存入内存,如果内存已满再放入磁盘
【正确答案】C
【答案解析】JDBC Channel目前只支持Derby数据库。
23、下列关于机架感知策略,说法错误的是:
A.HDFS中所谓的机架指的是逻辑机架而不是物理机架
B.HDFS中的机架本质上是一个映射,可以利用Shell或者Python等脚本实现
C.实际开发中,可以将一个或者多个物理机架上的节点映射在一个逻辑机架上
D.HDFS中,不能将一个物理机架上节点映射在多个逻辑机架上
【正确答案】D
【答案解析】因为HDFS中的机架本质上是一个映射,所以可以将一个物理机架上的节点映射到不同的逻辑机架上,因此D错误。
24、在Flume中,如果需要对传输的数据进行一些数据的处理和修改,则需要使用:
A.Selector
B.Interceptor
C.Processor
D.Filter
【正确答案】B
【答案解析】Selector负责数据的分发方式是复制模式或者是路由模式,不能改变数据,所以A错误。Interceptor中提供了正则格式允许对数据进行改动,所以B正确。Processor是输出方式的指定,决定是采用优先输出还是负载均衡方式,不能改变数据,所以C错误。
25、下列关于红黑树的说法正确的是:
A.红黑树本质上是一棵二叉树
B.红黑树适合于增删多而查询少的场景
C.红黑树的查询时间复杂度是nlog(n)
D.在红黑树中,新添的节点的颜色可以是黑色的
【正确答案】A
【答案解析】红黑树是一棵自平衡二叉查找树的体现,是二叉树的一种,所以A正确。因为在红黑树中新添节点可能会导致红黑树自平衡的修正,但是查找却相对快速,所以红黑树适合于查询多而增删少的场景,因此B错误。红黑树的查询时间复杂度是Olog(n),所以C错误。在红黑树中,新添的节点一定是红节点,因为如果是黑节点则会导致黑节点的高度不一致,所以D错误
26、关于Zookeeper的选举机制,说法错误的是:
A.所有的Zookeeper节点在选举刚开始的时候会选举自己成为leader
B.选举过程中会先比较最大事务id,如果最大事务id一致再比较myid
C.在刚开始选举的时候,所有的节点都是follower状态
D.如果一个节点想要成为leader,则这个节点需要胜过至少一半的节点才能选举成功
【正确答案】C
【答案解析】在Zookeeper中,每一个节点刚开始都会选举自己称为leader并且发送自己的选举信息,而此时所有的节点都处于looking/voting状态,在收到选举信息之后会进行比较,先比较最大事务id,最大事务id一致则比较myid,而最后称为leader的节点需要满足过半性,因此A,B,D正确,C错误。
27、下列关于小文件的说法错误的是:
A.在HDFS上存储小文件会产生大量元数据占用大量内存
B.每一个小文件会对应一个切片,则大量小文件会导致产生大量的MapTask
C.目前对于小文件的处理手段只有合并
D.Hadoop Archive是Hadoop提供的一种原生的处理小文件的方式
【正确答案】C
【答案解析】目前市面上行对于小文件的处理手段有2种:合并和打包
28、下列关于NameNode的职能描述错误的是:
A.管理DataNode
B.存储元数据
C.对外接收操作
D.对数据进行切块
【正确答案】D
【答案解析】对数据进行切块是在客户端进行而不是NameNode负责,所以D错误。
29、在Shuffle的merge过程中进行排序使用的排序方式是:
A.冒泡排序
B.归并排序
C.快速排序
D.插入排序
【正确答案】B
【答案解析】merge过程中的排序是将局部有序数据变成整体有序,而冒泡、快速、插入排序都是讲杂乱数据整理成有序数据,效率较低
30、如果一个文件是650M,则在默认情况下,对应的Block和Split的个数为:
A.5,5
B.5,6
C.6,5
D.6,6
【正确答案】C
【答案解析】在默认情况下,Block和Split的大小都是128M,但是需要注意的是在切片过程中由一个切片阈值1.1的问题,所以应该是产生6个Block以及5个Split

二、多选题

31、下列关于线程池的说法错误的是:
A.线程池的意义是提高线程的利用率,减少线程的创建和销毁
B.利用线程池可以使服务器端的并发压力降低从而提高服务器的并发性能
C.在线程池中,即使核心线程未满,但是如果有空闲的核心线程,则新来的请求会交给空闲的核心线程
D.核心线程在使用完成之后会被销毁
【正确答案】C,D
【答案解析】线程池的目的是为了通过减少线程的创建和销毁从而提高线程的利用率,并且核心线程在使用完成之后不会被销毁而是会等待下一个请求,所以A正确,D错误。由于线程池的存在,是的服务器端可以利用少量线程去处理大量请求,所以能够一定程度的提高服务器的并发性能,因此B正确。在线程池中,如果核心线程未满,即使有空闲的核心线程,新来的请求也会在线程池中创建一个对应的核心线程而不是交给空闲的核心线程,直到所有的核心线程被创建满为止,所以C错误。
32、Hive中,关于索引的说法正确的是:
A.Hive中的索引需要手动建立
B.如果在Hive表中新添加了数据,会自动建立索引
C.在删除索引表的时候会删除原数据表
D.Hive中可以根据指定的字段建立索引
【正确答案】A,C,D
【答案解析】在Hive中因为不存在主键的概念,所以不会自动建立索引需要手动建立索引,而在建立索引的时候需要指定字段,因此A、D正确。如果向Hive中新添了数据,那么需要手动更新索引表,所以B错误。
33、下列关于Zookeeper的说法正确的是:
A.Zookeeper的节点个数一般为奇数个
B.在Zookeeper集群中,如果新添加的节点的myid比leader的myid要大,那么新添加的节点会称为leader
C.Zookeeper中的过半性能够有效防止脑裂
D.在Zookeeper中,每一个leader都会产生一个递增的编号
【正确答案】A,C,D
【答案解析】Zookeeper的节点个数一般为奇数个,目的是为了使Zookeeper集群在操作过程中容易满足过半性,所以A正确。在Zookeeper集群中,一旦选举出来leader,那么后续添加的节点的事务id以及myid无论是多少,都会称为follower,所以B错误。如果集群产生了分裂,而集群中剩余节点个数不过半数的时候,那么这些节点不选举也不服务,能够有效的防止脑裂,所以C正确。每一个leader产生之后都会分配一个递增的编号,称之为epochid,所以D正确。
34、以下Flume启动指令的参数中,说法正确的是:
A.–conf,简写为–c,表示启动的配置文件所在的路径
B.–name,简写为-n,表示指定agent的名称
C.–file,简写为-f,表示指定要执行的格式文件
D.-Dflume.root.logger,可以简写为-Dlog,表示指定日志格式
【正确答案】A,B,C
【答案解析】- - Dflume.root.logger不能简写,用于表示日志信息输出的方式。
35、大数据的特点包括:
A.数据量大
B.数据增长速度快
C.数据价值密度大
D.数据的真实性
【正确答案】A,B,D
【答案解析】大数据的特点包括:数据量大,数据的种类和样式多,数据增长速度快,数据价值密度低,数据的真实性,连通性,以及动态性,可视化和合法性
36、下列关于job执行流程的准备阶段中,包含的内容有:
A.检查输入输出
B.计算切片
C.设置缓存存根
D.分配MapTask和ReduceTask
【正确答案】A,B,C
【答案解析】Job在准备阶段会包含以下5个操作:检查输入输出路径,提交jar包和配置,计算切片,设置缓存存根以及提交提交jar包
37、Zookeeper集群中,节点状态包括:
A.voting
B.leader
C.follower
D.standalone
【正确答案】A,B,C
【答案解析】在Zookeeper集群中,节点状态包括4种:looking/voting、follower、leader、observer,而standalone是Zookeeper的单机模式中的节点状态而不是集群中的节点状态,所以A,B,C正确,D错误。
38、ZAB协议包括以下:
A.原子广播
B.轮询调度
C.崩溃恢复
D.实时监控
【正确答案】A,C
【答案解析】ZAB协议是针对Zookeeper所专门设计的一套用于原子广播和崩溃恢复的协议
39、下列关于MapReduce的排序机制,说法正确的是:
A.在MapReduce中,默认的会对键进行排序
B.MapReduce中键所对应的类需要实现WritableComparable接口
C.如果两个键的比较结果为0,则两个键会被认为是同一个键,从而导致对应的值分到了一个组
D.在排序过程中,只能对单个属性进行排序
【正确答案】A,B,C
【答案解析】MapReduce中,允许对多个属性进行排序,此时称之为二次排序,所以D错误。
40、下列各项中是Agent的组件的是:
A.Source
B.Channel
C.Selector
D.Sink
【正确答案】A,B,D
【答案解析】Agent一共包含3个组件:Source,Channel和Sink,其中Source中包含子组件Selector和Interceptor
41、Hadoop中包含的模块有:
A.MapReduce
B.Ozone
C.HDFS
D.AVRO
【正确答案】A,B,C
【答案解析】Hadoop目前包含的模块有HDFS,MapReduce,YARN,Ozone以及Submarine
42、下列关于HDFS的写流程,说法错误的是:
A.客户端在写入数据的时候,会选择响应速度最快的节点来进行读取,即“最近”的节点
B.客户端需要自己连接对应的节点写入全部的三个副本
C.数据在写完之后就不能再进行修改了,但是可以继续追加
D.客户端在写完全部数据之后,会通知NameNode关闭文件
【正确答案】A,B
【答案解析】客户端在选择最近的节点,指的是网络拓扑距离最近,所以A错误。客户端在写入的时候只连接一个节点写入一个副本,其余副本由节点之间自动通过pipeline进行备份,所以B错误。HDFS支持的是一次写入多次读取,不支持修改但是支持追加写入,所以C正确。
43、下列关于Flume中EventDrivenSource和PollableSource的说法正确的是:
A.EventDrivenSource是主动型Source
B.PollableSource是被动型Source
C.EventDrivenSource需要自定义线程去获取数据
D.PollableSource已经提供了线程主动拉取数据
【正确答案】C,D
【答案解析】EventDrivenSource是被动型Source,需要自定义线程去获取数据;PollableSource是主动型Source,已经提供了线程去拉去数据。
44、下列关于MapReduce中的Combiner机制阐述正确的是:
A.Combiner能够有效的提高MapReduce的执行效率
B.Combiner是保证结果不变从而减少数据总量
C.Combiner的执行逻辑往往和Reducer是相同的
D.Combiner适合于任何场景下的MapReduce
【正确答案】A,B,C
【答案解析】Combiner是将相同的键对应的值提前进行了合并,减少了shuffle过程中缓冲区和磁盘的交互,所以能够有效的提高效率,因此A正确。Combiner适合于进行求和、求最值等场景,但是如果进行求平均之类的运算,则不适合,所以D错误。
45、下列关于数据倾斜的说法错误的是:
A.数据倾斜本质原因是因为Shuffle过程中分区规则的不合理
B.数据倾斜只会发生在Reduce端
C.目前为止,对于Reduce端的数据倾斜常用的解决方案为:二阶段聚合或者是join
D.数据倾斜会导致MapReduce过程中产生慢任务从而降低效率
【正确答案】A,B
【答案解析】试题解析 数据倾斜的本质原因是因为数据本身就是不均匀的,具有倾斜特性,所以A错误。数据倾斜在Map端以及Reduce端都可能发生,所以B错误。
46、下列关于observer的说法错误的是:
A.observer的特点是不参与选举不参与投票也不监听结果
B.如果一个集群中有15个节点,其中有8个observer,则称为leader的节点需要胜过至少3个节点
C.设置observer可以减少网络对投票结果的影响
D.如果一个集群中有21个节点,其中有14个observer,那么如果有12个observer宕机,则集群就不会在对外提供服务
【正确答案】A,D
【答案解析】observer的忒但是不参与投票不参与选举,但是会监听投票以及选举结果,根据结果执行对应的操作,所以A错误。在Zookeeper集群中,observer不参与投票和选举,因此observer的存活与否不影响集群是否对外操作,而D选项中因为宕机的是12个observer,所以不影响结果,因此D错误。一个节点想要成为leader,只要在参与投票的节点中胜过一半就可以;所以B选项中实际上只有7个节点参与投票,而leader只要胜过3个节点(加上自己本身是4个几点恰好过半)就可以成功,因此B正确。observer适用于网络状态不好的情况下,能够减少因为网络而带来的问题,所以C选项正确。
47、下列关于HDFS的读取流程,说法正确的是:
A.在读取过程中,NameNode在收到客户端的请求之后,会从DataNode中读取数据然后返回给客户端
B.客户端在读取数据的时候,会选择响应速度最快的节点来进行读取,即“最近”的节点
C.客户端在读取完一个Block之后,会进行checksum的验证
D.当读取完最后一个Block之后,客户端会通知NameNode关闭文件
【正确答案】C,D
【答案解析】在读取过程中,NameNode在收到请求之后给客户端返回的是Block地址而不是读取的数据,所以A错误。客户端在选择最近的节点,指的是网络拓扑距离最近,所以B错误。
48、下列关于NIO的说法错误的是:
A.因为NIO是非阻塞式IO,所以NIO用于数据传输的Channel默认是非阻塞的
B.NIO中的Selector是面向通道进行选择,且要求通道非阻塞
C.NIO中,利用Selector可以实现一对多的连接
D.NIO中的Selector适用于长任务场景
【正确答案】A,D
【答案解析】虽然NIO是同步非阻塞式IO,但是NIO中的Channel默认是阻塞的,需要通过configureBlocking方法来手动设置为非阻塞,所以A错。NIO中要求Selector所选择的通道必须是非阻塞的,不然无法完成选择过程以及一对多的连接过程,所以B,C正确。如果利用NIO来完成长任务,会导致后续的任务等待时间过程从而产生任务积压,因此NIO适合于高并发短任务场景而不是长任务场景,所以D错误。
49、下列各项中说法正确的是:
A.在执行hadoop namenode -format之后,hadoop.tmp.dir指定的路径下会产生dfs目录
B.在格式化完成之后,name目录中会产生fsimage文件和edits文件
C.在HDFS中,接收的每一个操作都会分配一个全局递增的编号,称之为是事务id
D.edits_inprogress文件的作用是记录当前正在执行的事务文件。后面的编号是以上一次txid+1来命名的
【正确答案】A,D
【答案解析】hadoop namenode -format是格式化NameNode的指令,在格式化之后,会在指定的路径下产生dfs目录以及dfs的子目录name目录,在name的current目录中此时会包含fsimage、VERSION以及seen_txid三个文件,而在启动之后才会产生edits文件,所以A正确,B错误。在HDFS中,会对每一个接收的写操作分配一个全局递增的事务id,但是读操作不会产生事务id,所以C错误。
50、下列关于删除流程的说法错误的是:
A.客户端在收到ack信号之后,就表示数据此时已经真正从HDFS上移除了
B.在DataNode发送心跳之后,NameNode会进行心跳响应,要求删除对应数据
C.DataNode在接收到心跳响应之后才会删除对应的Block
D.客户端可以要求NameNode删除指定文件中的某段数据
【正确答案】A,D
【答案解析】NameNode在收到请求之后会记录操作修改内存中的元数据,然后给客户端返回ack表示删除成功给,此时只是修改了元数据但是没有真正删除Block,所以A错误。如果要求删除文件中的某段数据这是在对文件内容进行修改,但是HDFS中支持的是一次写入多次读取,不支持修改,所以D错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第五阶段学习测试 的相关文章

  • 猪如何过滤不同的对(对)

    我是猪的新手 我有一个 Pig 脚本 它在两个元素之间生成制表符分隔的对 每行一对 例如 John Paul Tom Nik Mark Bill Tom Nik Paul John 我需要过滤掉重复的组合 如果我使用 DISTINCT 我会
  • Oozie SSH 操作

    Oozie SSH 操作问题 Issue 我们正在尝试在集群的特定主机上运行一些命令 我们为此选择了 SSH Action 我们面对这个 SSH 问题已经有一段时间了 这里真正的问题可能是什么 请指出解决方案 logs AUTH FAILE
  • Namenode高可用客户端请求

    谁能告诉我 如果我使用java应用程序请求一些文件上传 下载操作到带有Namenode HA设置的HDFS 这个请求首先去哪里 我的意思是客户端如何知道哪个名称节点处于活动状态 如果您提供一些工作流程类型图或详细解释请求步骤 从开始到结束
  • 如何在 Hadoop 中将 String 对象转换为 IntWritable 对象

    我想转换String反对IntWritableHadoop 中的对象 任何过程都可以进行转换 IntWritable value new IntWritable Integer parseInt someString 并处理以下可能性par
  • 在 Amazon EMR 上使用 java 中的 hbase 时遇到问题

    因此 我尝试使用作为 MapReduce 步骤启动的自定义 jar 来查询 Amazon ec2 上的 hbase 集群 我的 jar 在地图函数内 我这样调用 Hbase public void map Text key BytesWri
  • 如何通过Python访问Hive?

    https cwiki apache org confluence display Hive HiveClient HiveClient Python https cwiki apache org confluence display Hi
  • 猪参考

    我正在学习 Hadoop Pig 并且我总是坚持引用元素 请查找下面的示例 groupwordcount group chararray words bag of tokenTuples from line token chararray
  • 纱线上的火花,连接到资源管理器 /0.0.0.0:8032

    我正在我的开发机器 Mac 上编写 Spark 程序 hadoop的版本是2 6 spark的版本是1 6 2 hadoop集群有3个节点 当然都在linux机器上 我在idea IDE中以spark独立模式运行spark程序 它运行成功
  • Sqoop - 绑定到 YARN 队列

    因此 使用 MapReduce v2 您可以使用绑定到某些 YARN 队列来管理资源和优先级 基本上通过使用 hadoop jar xyz jar D mapreduce job queuename QUEUE1 input output
  • 更改 Spark Streaming 中的输出文件名

    我正在运行一个 Spark 作业 就逻辑而言 它的性能非常好 但是 当我使用 saveAsTextFile 将文件保存在 s3 存储桶中时 输出文件的名称格式为 part 00000 part 00001 等 有没有办法更改输出文件名 谢谢
  • 名称节点处于安全模式

    我提到了这些问题名称节点处于安全模式 无法离开 https stackoverflow com questions 15803266 name node is in safe mode not able to leave and SafeM
  • 从 HDFS 传出文件

    我想将文件从 HDFS 传输到另一台服务器的本地文件系统 该服务器不在 hadoop 集群中 而是在网络中 我本可以这样做 hadoop fs copyToLocal
  • 如何按行扩展数组值!!使用 Hive SQL

    我有一个有 4 列的表 其中一列 项目 类型是 ARRAY 其他是字符串 ID items name loc id1 item1 item2 item3 item4 item5 Mike CT id2 item3 item7 item4 i
  • 如何找到 JAR:/home/hadoop/contrib/streaming/hadoop-streaming.jar

    我正在练习有关 Amazon EMR 的复数视角视频教程 我被困住了 因为我收到此错误而无法继续 Not a valid JAR home hadoop contrib streaming hadoop streaming jar 请注意
  • 无法验证 serde:org.openx.data.jsonserde.jsonserde

    我编写了这个查询来在配置单元上创建一个表 我的数据最初是 json 格式 所以我已经下载并构建了 serde 并添加了它运行所需的所有 jar 但我收到以下错误 FAILED Execution Error return code 1 fr
  • Hadoop 上的 Sqoop:NoSuchMethodError:com.google.common.base.Stopwatch.createStarted() [重复]

    这个问题在这里已经有答案了 我在 Google Cloud DataProc 上的 hadoop 上运行 sqoop 以通过 Cloud SQL 代理访问 postgresql 但遇到 Java 依赖项错误 INFO First Cloud
  • 是否可以使用 Java 读写 Parquet,而不依赖 Hadoop 和 HDFS?

    我一直在寻找这个问题的解决方案 在我看来 如果不引入对 HDFS 和 Hadoop 的依赖 就无法在 Java 程序中嵌入读写 Parquet 格式 它是否正确 我想在 Hadoop 集群之外的客户端计算机上进行读写 我开始对 Apache
  • 当我将文件存储在 HDFS 中时,它们会被复制吗?

    我是 Hadoop 新手 当我使用以下方式存储 Excel 文件时hadoop fs putcommoad 它存储在HDFS中 复制因子为3 我的问题是 是否需要3份并分别存储到3个节点中 这是 HDFS 工作的漫画 https docs
  • 适用于 Python 3.x 的 Hive 客户端

    是否可以使用 Python 3 x 连接到 hadoop 并运行 hive 查询 我正在使用Python 3 4 1 我发现可以按照这里写的方式完成 https cwiki apache org confluence display Hiv
  • 与文件名中的冒号“:”作斗争

    我有以下代码 用于加载大量 csv gz 并将它们转储到其他文件夹中 并将源文件名作为一列 object DailyMerger extends App def allFiles path File List File val parts

随机推荐

  • 堆的用法总结

    堆 heaps 不是容器 而是一种特别的数据组织方式 堆一般用来保存序列容器 堆很重要 很多不同的计算机进程中都使用了它们 为了弄明白堆是什么 首先需要明白树是什么 因此首先说明树这种数据结构是什么 树是分层排列的元素或节点 每个节点有一个
  • Hive架构及基础知识

    1 用户接口 Client CLI hive shell JDBC ODBC java 访问 hive WEBUI 浏览器访问 hive 2 元数据 Metastore 元数据包括 表名 表所属的数据库 默认是 default 表的拥有者
  • C++多态学习(二)完整定义:什么是多态?

    多态分为静多态和动多态 1 静多态 函数重载 是一种多态现象 通过命名倾轧在编译阶段决定 故称为静多态 2 动多态 动多态 不是在编译器阶段决定 而是在运行阶段决定 故称为动多态 动多态形成的条件如下 1 父类中有虚函数 2 子类overr
  • SpringBoot使用@Async实现多线程异步

    SpringBoot使用 Async实现多线程异步 一 什么是异步 说明 在同步操作中 我们执行到添加数据库的时候 我们必须等待这个方法彻底执行完才能执行 修改数据 完成后 发送短信 完成后 发送消息 等操作 如果插入数据库这个动作执行时间
  • 全新防火墙6.0 单条PPPOE(ADSL)上网配置

    一 组网需求 外网接口使用ADSL拨号 内网为192 168 1 0 24网段 实现基本上网功能 二 网络拓扑 三 配置要点 1 配置接口 wan1口 接ADSL的接口 务必勾选 从服务器重新获得网关 这样ADSL拨号成功后设备会自动生成默
  • 软件工程面试——数据库

    数据库实体的关系 数据库中的实体关系指的是不同实体之间的相互依赖和联系 实体关系是数据库设计中非常重要的一个概念 它是用于描述不同实体之间的关系 连接和交互方式的 在数据库中 一个实体通常指的是一个对象或者一个概念 比如一个人 一个订单或者
  • powerdesigner如何生成数据库表

    1 建立逻辑数据模型 2 构建基础模板 3 转为PDM 4 生成sql文件 数据库设计的步骤是什么
  • C++11新关键字noexcept、override、final把我们的心意告诉编译器

    noexcept告诉编译器不抛异常 异常时一定要处理的 如果一个函数出现异常 它内部不对该异常做处理 异常会一直往上传递 给函数的调用者 到最后一直没有被处理 程序就会终止 调用std terminate 它默认调用std abort vo
  • 以太坊交易信息及event、input、logs、topics等概念机制

    文章目录 一 交易信息获取 1 1 合约事件例子定义 1 2 以太坊交易获取 二 input解析 2 1 input内容解析 2 2 input处理逻辑 三 logs解析 3 1 logs解析代码 四 topics 4 1 概念 4 2 i
  • C++拷贝构造函数

    目录 前言 一 拷贝构造函数 1 概念 2 笔试题 拷贝构造的次数 3 特征 1 拷贝构造函数是构造函数的一个重载形式 2 拷贝构造函数的参数只有一个且必须是类类型对象的引用 使用传值方式编译器直接报错 因为会引发无穷递归调用 那怎么理解无
  • CS294-112 homework2 环境配置 environment configuration

    先把结论 最终结果 放在最前面 结论就是 我没有在windows环境下配起来环境 主要是因为不知道怎么解决C 14的问题 最终是在ubuntu容器里配好了环境 失败经历 这一段是失败的经历 写在这里是为了尽量让有相同经历的人能找到这篇博客
  • java8 List<Map<String, Object>>求和,排序,过滤,分组

    List
  • 2023年第十五届华中杯赛题C 题 空气质量预测与预警

    2023年五一假期期间 数学建模竞赛就有四场 各种比赛各种需求应接不暇 因此 对于本次浅析有不足的地方欢迎大家指出 为了更好的帮助大家华中杯参赛 下面带来 C题详细版思路 由于C题的难度 注定选题人数将不可计数 因此对于每一问求解已经不再是
  • Unity 串口接收的报文不完整?处理方式在这

    Unity 串口通讯接收完整报文并处理 串口通讯 Read 函数的处理 解决问题的过程 对Read 函数的应用 弊端 结束 串口通讯 Unity 中的串口通讯和C 的处理方式基本一致 Serial Read 可以读取缓存区中的十六进制数 S
  • Mybatis - 常用 SQL 语句设计思路及具体实现 - 数据存在则更新,不存在则插入、批量更新、批量插入、连表查询 + - 字段加减法

    目录 序言 一 数据存在则更新 不存在则插入 ON DUPLICATE KEY UPDATE 的具体 xml 用法 虽然有点问题 但没准以后有用到的时候 on duplicate key update 用法总结 二 批量更新 方法 一 方法
  • 数组里的对象去重

    今天分享的是数组对象去重的方式 先看看数组对象的形式 let arrObj name 小红 id 1 name 小橙 id 1 name 小黄 id 4 name 小绿 id 3 name 小青 id 1 name 小蓝 id 4 下面是我
  • [人工智能-深度学习-26]:卷积神经网络CNN - 为啥要卷积神经网络以及卷积神经网络的应用

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 120805258 目录 第1章 全连接
  • c语言动态内存管理

    在C语言中 有几个动态内存管理的函数 分别是malloc calloc realloc和free free free函数用于释放由malloc calloc或realloc函数分配的内存空间 它接受一个指向要释放的内存的指针作为参数 注意
  • 在kali linux里利用SQLmap实现SQL注入

    SQLMap简介 SQLMap 是一个自动化的SQL注入工具 其主要功能是扫描 发现并利用给定URL的SQL注入漏洞 内置了很多绕过插件 支持的数据库是MySQL Oracle PostgreSQL Microsoft SQL Server
  • 第五阶段学习测试

    逐梦 一 单选题 1 下列各项中 执行流程正确的是 A InputFormat Mapper Reducer OutputFormat B Mapper InputFormat Reducer OutputFormat C InputFor