判断部分
Read Commited事务隔离级别可以避免覆盖更新问题
是用绑定变量是防止数据库SQL注入的有效手段
MySQL中order by语句可以对多个列进行排序,并且使用索引进行加速
操作系统进程间同步的主要方法有原子操作、信号量机制、自旋锁等
触发器是一个对关联表发出insert、update或delete语句时触发的储存过程 √
若进程处于阻塞状态,当引起阻塞的条件被解除时,进程状态应变为运行状态
并发进程可以同时进入临界区,交替访问临界资源
原语是操作系统中的初始化程序
产生死锁的原因之一是对计算机操作不当,造成计算机死机
在生产者消费者进程中,v操作的次序无关紧要,而p操作次序不能颠倒
进程由程序和数据两部分组成
请求页式存贮管理中,若一个作业要求的全部存贮需求不能满足,该作业只能等待
在分页管理中所产生的内存碎片,最多小于帧的大小
进行程序的相对地址到物理地址的转换,就是地址重定位
段页式存储管理是通过请求调入和替换功能,对内外存进行统一管理,为用户提供了比实际内存容量大的多的物理存储空间
equals方法与==都可以用来判断两个对象是否一样,两个方法没有质的区别,主要体现在效率上面不一样
hive中sum,count,max,min等UDAF,在map端汇总合并优化,所以不怕数据倾斜问题;而count (distinct)在数据量大的情况下,效率较低,很容易倾斜
Spark RDD的partition数和task数正相关
hive做大量数据order by全局排序时,可以适当增加reduce任务数,以提供排序性能
mysql数据库不可重复读侧重于新增或删除,幻读侧重于修改,解决不可重复读的问题需要锁表,解决幻读只需锁住满足条件的行
HiveQL建表语句create table if not exists tabname…,在执行如果已存在表tabname,也不会报错,因为默认会drop表重建
删除Hive外部表时,需要注意它会同时删除Hive表和数据文件
Java基本类型包括:String,boolean,byte,int,long,float,double
往durid导入数据时,不能将timestamp字段作为维度,否则查询结果中该字段为NULL
MapReduce与HBASE两者不可或缺,MapReduce是HBASE可以正常运行的保证 ×
Kafka数据消费延迟后会导致数据从磁盘拉取,容易造成磁盘IO过高,导致Kafka环境不稳定
DataFrame和RDD最大的区别是多了schema
编写一个UDF,需要集成UDF类,并实现evaluate()函数
flink中基本状态有Operator State、Keyed State以及ListState
在数据传输的过程中对数据进行序列化,能够更高效的存储 和传输数据,大大降低CPU的使用率
选择部分
操作系统中关于连续内存分配方式说法错误的是()
A.固定分区分配方式的内存大小相等
B.采用动态可重定位的分配方式可以减少内存碎片
C.采用动态内存分配的时候必须要配置响应的数据机构来管理内存
D.进行内存回收的时候要将相邻的空闲分区合并为一个分区
关于七层IOS网络模型,下列说法错误的是()
A.udp协议属于会话层协议
B.传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输
C.网桥是数据链路层设备
D.应用层为操作系统或网络应用程序提供访问网络服务的接口
一个二叉树的中序遍历是DBEFAC,后续遍历为DFEBCA,则其先序遍历序列为()
A.ABDEFC
B.ABCDEF
C.ADFEBC
D.ABCEFD
下列那种查询无法用B+Tree索引进行优化()
A.select * from test where a=10 and b>5
B.select * from test where a=10 or b>5
C.select * from test where a=10
D.select * from test where a=10 order by b desc
下列关于基于日志的故障恢复的叙述中,正确的是()
A.利用更新日志记录中的改前值可以进行UNDO
B.日志记录有几种,其中一种是事务提交日志记录
C.日志是日志记录的序列,他记录了数据库中所有更新活动
D.事务故障恢复只需要正向扫描日志文件
下面关于TCP/IP协议断开连接的说法错误的是()
A.客户端和服务端都可以发送中断连接请求
B.当客户端发送断开连接请求,客户端收到服务端发送的FIN报文后会进入TIME WAIT状态
C.TCP/IP连接4次挥手才能断开连接
D.当服务端发起断开连接请求,客户端先发送FIN报文到服务端,之后才会发送ACK报文到服务端
若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是()
A一对多
B多对一
C一对一
D多对多
下列有关数据库中的NULL值,说法正确的是()
A.NULL与0的比较可以使用=
B.NULL表示空字符 ‘’
C.NULL与他本身的比较可以用=,<,>或!=
D.NULL是“无数据”或“未知数据”
下列关于Linux操作系统正确的说法是()
A.jobs命令用来查看进程内存的占用情况
B.可以使用chown改变一个文件的读写权限
C.top命令主要是用来查看磁盘可用空间
D.chmod+x a.sh表示可以把a.sh变成可执行
事物的原子性是指()
A.事务中包括的所有操作都要么做,要么不做
B.事务一旦提交,对数据库的改变是永久的
C.事务必须是从使数据库从一个一致性状态变到另一个一致性状态
D.一个事务内部的操作及使用的数据对并发的其他事物是隔离的
MySQL将查询test库stu表的权限授予用户dev,但不允许该用户将此权限授予其他用户。实现该功能的SQL语句是()
A.grant select to test.stu on dev with grant option;
B.grant select to test.stu on dev;
C.grant select on dev to test.stu ;
D.grant select on dev to test.stu with grant option;
关于索引的说法,错误的有:()
B树索引约束所有叶子结点在相同深度
位图索引适用于列的基数少,可枚举,重复值多的场景
B树索引的叶子结点也必须和分支节点一样,是按顺序排列的。
在某些情况下,位图索引比B树索引更适合范围查询
以下SQL语句的作用是()
select count(*) from stu where name like ‘%edu’;
STU表name以edu起始的记录数量
STU表name包含edu关键字的记录数量
STU表name包含edu关键字的全部记录
STU表name以edu结尾的记录数量
关于死锁。下列叙述中正确的是()
使用RC隔离级别事务中不会发生死锁
数据库中唯一防止死锁的方法是禁止两个用户同时操作数据库
死锁是的问题,数据库操作中不存在
并发进行insert也有可能出现死锁
在一个表中可以建立()
多个普通索引,一个唯一索引,多个主键索引
一个普通索引,多个唯一索引,多个主键索引
多个普通索引,多个唯一索引,一个主键索引
多个普通索引,多个唯一索引,多个主键索引
一下哪个业务场景,不依赖大数据计算(包含实时计算,数据挖掘等)领域的技术?()
今天的热搜排行榜第一名是《乐队的夏天》
用户习惯观看游戏直播,给用户展示游戏类广告
用户充值了星钻VIP,解锁了超前点播视频
用户点赞了某明显的直拍小视频,给用户推荐该明星的其他相关的视频
一下哪些不是线程间通信方式()
共享内存
共享寄存器
共享栈
共享堆
当我们需要将抽象与其实现分离以使两者可以独立变化时。使用一下哪种模式()
过滤模式
原型模式
桥模式
适配器模式
select length(NULL),length(’’),length(‘1’)的结果是()
0,0,1
NULL,NULL,1
NULL,0,1
NULL,1,1
TCP采用()技术来实现可靠数据流的传送
超时重传
超时重传和肯定确认
肯定确认(捎带一个报文段的序号)
丢失重传和否定性确认
Java中线程相关的说法,正确的是()
sleep(),yield()是Thread类方法,wait(),notify()是Object方法
调用线程的interrupt()方法,可以实时终止线程执行
wait()方法只能放在synchronized语句块中使用
sleep(),yield(),wait()都会使线程进入阻塞状态
有关spring boot的描述,正确的是()
通过起步依赖解决不同版本jar包的依赖冲突问题
通过自动配置消除大量样板代码,提升开发经验
通过actuator端点提供线上应用可观测性
web应用只能打成war包,非web应用只能打成jar包
发现应用响应慢或无响应,可以使用以下哪个JVM命令查看当前运行状态()
jps
jstack
jmap
jstat
以下关于编译器优化基本块的哪些说法不正确()
可以包含循环后
后序可以有多个基本块
前序可以有多个基本块
可以包含跳转
关于分布式共识算法描述错误的是()
Paxos算法比Multi-Paxos更加高效
在Multi-Paxos中每次写入数据都需要一轮提议流程(prepare-promise过程)
ZAB算法中所有写操作必须通过leader节点
Raft算法需要leader election(选主)过程
下列哪种操作,最容易产生锁等待()
执行alter table对一个1000万行记录的表增加列
执行alter table对一个1000万行记录的表增加索引
执行alter table对一个1000万行记录的表删除索引
执行delete from t where id > n(删除百万行)
有关注解,一下说法正确的是()
元注解是注解的注解,例如@Retention,@Target,@Documented等
所有注解都可以通过反射获取
注解可以继承,子类拥有父类所有注解
注解的成员变量也可以是注解类型
二叉树是非线性数据结构,所以()
他不能用顺序存储结构存储
他不能用链式存储结构存储
顺序存储结构和链式存储结构都能存储
顺序存储结构和链式存储结构都不能使用
有整形数组:int[] x = (7,12,2,35,8),则调用方法Arrays.sort(x)后,数组x中的元素值依次是()
2 7 8 12 35
12 35 8 7 2
35 12 8 7 2
8 7 12 35 2
若一组记录的排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为()
79,46,56,38,40,84
84,79,56,38,40,46
84,79,56,46,40,38
84,56,79,40,46,38
判定一个队列QU(最多元素为m0)为满队列的条件是()
QU -> front == (QU -> rear +1)%m0
QU -> rear - QU -> front -1==m0
QU -> front == QU -> rear
QU -> front == QU -> rear +1
数组Q(n)用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为()
r-f
(n+f-r)%n
n+r-f
(n+r-f)%n
设有两个串p和q,求q在p中首次出现的位置的运算称作()
连接
模式匹配
求子串
求串长
若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1 = n,则pi为()
i
n=i
n-i+1
不确定
数据库类型是按照什么来划分的()
文件形式
数据模型
记录形式
数据存取方法
SQL是什么样的语言,易学习()
过程化
非过程化 √
格式化
导航式
下列哪个是DBMS的基本单位,他是用户定义的一组逻辑一致的程序序列()
程序
命令
事务
文件
HBASE中避免数据分布热点问题,一下做法错误的是()
rowkey增加随机前缀(salting)
rowkey进行hash化
将固定长度或数字格式的rowkey反转
rowkey不做ren’he任何处理,方便查询
关于mapreduce执行过程,下面说法正确的是()
reduce分为copy、reduce两个阶段
数据从环形缓冲区溢出时会进行分区操作
reduce默认只进行内存到磁盘和磁盘到磁盘的合并
shuffle指的是map输出之后到reduce输出之后
HDFS客户端读取数据时,通过什么方法确定文件起始块位置()
通过RPC调用Namenode的方法
请求zookeeper
通过RPC调用SecondaryNamenode的方法
请求datanode
HBASE适合场景中,说法不正确的是()
按照rowkey的海量数据低延时存储、查询和更新
高可用的按照rowkey进行实时随机查询
hbase支持表与表之间的join查询
基于phoenix的多维查询和简单聚合计算
hive中分区(partition)与桶(bucket),下面描述不正确的有()
桶对应不同的文件(细粒度),分区对应不同的文件夹(粗粒度)
分桶是非随机分隔数据,分区是随机分隔数据
分桶是根据列的哈希值进行分隔,分区是根据列值进行数据分隔
在数据量足够大的情况下,分桶的查询效率比分区高
概念模型是现实世界的第一层抽象,以下属于概念模型的是()
层次模型
关系模型
网状模型
实体-联系模型
以下关于Hbase说法错误的是()
每个列族都有一个MemStore
每个列族都有一个BlockCache
一个Hfile只能属于一个列族
kafka使用()实现消息广播机制
consumer
consumer group
broker
partition
hql中union all支持的子句有()
orderByClause
sortByClause
limitClause
groupByClause
flink中Operator Chain属于运行时的一种优化策略,下面关于满足Operator Chain条件描述不正确的是()
Chain策略没有被关闭
Chain Operator属于同一个Share Group
上下游Operator并行度无需一致,可分别指定
下游Operator的输入只有一个上游Operator
在类里,定义一个全局变量:public volatitle static int sum = 0;然后我们启动50个线程,每个线程都对sum+1,那最终的sum输出结果是()
50
1
大于50的不定数
小于等于50的不定数
synchronized关键字可以修饰以下的内容,说法正确的是()
只能修饰代码块,一个方法
只能修饰代码块,修饰一个方法,修饰静态方法
可以修饰代码块,修饰一个方法,i叙事静态方法,修饰一个类
只能修饰一个变量
hive建表语句中,哪个关键词表示外部表()
location
external
partitioned
stored
下面哪个程序负责HDFS数据存储()
refreshNodes
Datanode
JobManager
secondaryNameNode
下面哪个操作肯定是宽依赖()
map
flatmap
reduceByKey
filter
Hive与传统数据库对比,以下不属于Hive特性的是()
存储在HDFS
有复杂的索引
处理数据规模较大
执行延迟较高
DataFrame 和 RDD最大的区别是()
支持科学统计
多了Schema格式
存储方式不一样
支持外部数据源
多选
Spark有几种部署模式()
standalone模式
本地模式
OnYarn模式
On Mesos模式
HDFS客户端往HFDS写数据时,关于副本(replica)选择DataNode描述正确的有()
第一个副本(replica)在客户端所处的DataNode上。如果客户端在集群外,则随机选择一台
第二个副本(replica)与第一个副本在同一组机架,DataNode随机
第三个副本位于不同机架中,DataNode随机
第二个副本和第三个副本在同一机架中,DataNode随机
以下属于正确的优化思路的是()
小文件合并
数据倾斜优化
减少处理数量
尽量扩大map数、reduce数
下列哪些属于列式存储()
Sequence File
RCFile
ORCFlie
Parquet
关于Spark调度,下面说法正确的是()
Spark RDD通过其transaction和action操作,串起来形成了一个DAG,action的调用,触发了DAG的提交和整个job的执行
由DAGScheduler这个全局唯一面向stage的DAG调度器来切分DAG,根据是否shuffle来切成多个小DAG,即stage
MapTask和ResultTask分别可以简单理解为传统MR的Map和Reduce,切分他们的依据本质上就是shuffle
每个stage对应的是多个MapTask或多个ResultTask,这一个stage内的task集合成一个TaskSet类,由TaskSetManager来管理这些task的运行状态,locality处理(比如需要delay scheduling)
四大组件包括哪些()
Spark Streaming
Mlib
Graphx
Spark R
下列关于Kafka的partition描述正确的是()
topic可以划分出多个partition,利用分区机制保证每个partition的数据量不会太大
topic中的多个partition以文件夹的形式保存到broker,每个分区序号从0递增,消息无序列排列
每个partition可以单独发布和消费,为并发操作topic提供了可能
用户可以自定义分区器,根据自定义分区器规则将数据发布至kafka中的不同分区
大数据集群计算资源,资源分配策略原则有()
优先满足最小资源
满足最小资源后,资源池间公平分配
不能超过最大资源限制
当并行执行任务数超过阈值后,不再分配资源
Spark机制中rdd有几种操作类型()
transformation,rdd由一种转为另一种rdd
tuple
action
cronroller
HBASE的特点是()
数据类型丰富:HBASE中的数据支持多种数据类型
无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中的不同的行可以有截然不同的列
面向列:面向列(族)的存储和权限控制,列(族)独立检索
大:一个表可以有数十亿行,上百万列
关于动态分区的描述正确的是()
hive.exex.dynamic.partition = true;表示开启动态分区功能
hive.exec.dynamic.partition.mode = nonstrict;表示允许所有分区都是动态的
hive.exec.max.dynamic.partitions.pernode = 100;表示每个mapper或reduce可以创建的最大攻台分区个数
hive.exec.max.created.files = 10000;表示一个动态分区创建语句可以创建的最大文件个数
关于Flink基础组件描述正确的是()
jobmanager是flink系统的协调者,他负责接收flink job,调度组成job的多个task的执行
taskmanager是实际负责执行计算的worker,在其上执行flink job的一组task
taskmanager负责管理其所在节点上的资源信息,如内存、磁盘、网络,在启动的时候将资源的状态向jobmanager汇报
taskmanager还负责收集job的状态信息
HDFS新老版本中默认Block Size分别是多少()
256M
128M
64M
32M
哪些语句可以正确创建lock对象()
Lock lock = new Lock();
Lock lock = new ReentrantLock();
Lock lock = new ReentrantLock(true);
Lock lock = new ReentrantLock(false);
Flink窗口分类主要有下面哪几种()
滚动窗口Tumbling Window
滑动窗口Sliding Windows
会话窗口Session Window
全局窗口Global Window
问答部分:
请谈一谈对DBA岗位的职责理解,工作内容及核心目标,为达成目标最需具备的因素有哪些?结合自身对数据库的理解,谈谈其对管理运维工作的挑战和机遇。
简述数据库MVCC(多版本并发控制)的原理,以及引入MVCC机制对数据库能带来哪些提升。
pandas中map、apply、applymap的区别