1.下列关于Hive特点总结正确的选项是()

A Hive支持自由的扩展集群的规模,只需要重启服务即可

B Hive支持自定义函数,用户可以根据自己的需求去定义函数

C Hive SQL执行时,需要避免节点出现问题

D Hive 适合处理小批量数据

【B】
A. 错误,Hive一般不需要重启服务就可以扩展集群
B. 正确,用户可以上传自己定义的函数UDF,User Define Function jar包提交至Hive环境,注册后即可使用
C. 错误,Hive具有良好的容错性,节点出现问题,SQL仍然可以成功执行
D. 错误,Hive适合处理大批量、海量数据集

2.下面关于Hive查看表table1的分区的描述正确的是()

A show partitions table1;

B desc table1;

C show create table table1;

D drop table1

A】
A.正确,返回table1的表分区信息
B.错误,返回table1的表描述信息
C.错误,返回table1的建表语句信息
D.错误,删表操作

3.

下面关于Hive描述函数类型描述正确的是()

COUNT;MAX;MIN;LEAD;LAG;SPLIT;EXPLODE;UNIX_TIMESTAMP

A UDF:UNIX_TIMESTAMP;UDAF:COUNT,MAX,MIN,LEAD,LAG;UDTF:SPLIT,EXPLODE

B UDAF:COUNT,MAX,MIN,LEAD,LAG,EXPLODE

C UDF:UNIX_TIMESTAMP,COUNT,MAX,MIN;UDAF:LEAD,LAG;

D UDF:UNIX_TIMESTAMP,SPLIT;UDAF:COUNT,MAX,MIN,LEAD,LAG;UDTF:EXPLODE

【A】
A.正确
B.错误,EXPLODE是UDTF
C.错误,COUNT,MAX,MIN;是UDAF聚合函数
D.错误,SPLIT是UDTF

4.下面关于Hive四种排序方式的区别,描述正确的是()

A order by 是要对输出的结果进行全局排序,多个reducer可以实现全局排序

B sort by 不是全局排序,只是在进入到reducer之前完成排序

C distribute by 指的是按照指定的字段划分到不同的输出reduce文件中,常见使用方式是order by distribute by

D cluster by不仅支持正序排序,也支持逆序排序

【B】
A.错误,全局排序只能在一个reducer中实现,多个reducer只能实现局部有序
B.正确,sort by只能保证局部有序
C.错误,常见使用方式是distribute by order by ,distribute by需要在最前面
D.错误,cluster by只能支持倒序排列

5.下面关于Hive和传统数据库的比较描述正确的是()

A Hive使用了查询语言HQL(Hive Query Language),HQL与SQL没有任何关系

B Hive 和传统数据库除了拥有类似的查询语言,再无类似之处

C Hive 是建立在 Hadoop 之上的,所有 Hive 的数据都是存储在 HDFS 中的,而数据库则可以将数据保存在块设备或者本地文件系统中

D Hive的针对数据仓库设计,针对的是读多写少的场景​​​​​​

【D】
A.错误,HQL与SQL是有关系的,HQL是一种类SQL的语言
B.错误,除了拥有类似的查询语言,还有类似的执行器、解析器,计划器
C.错误,C错误,并不是所有的Hive数据都存储在HDFS中,有部分元数据(Hive meta)是存储在MySQL中的。
D.正确

6.已知数组 trans_cnt[1, 2, 3, 4],trans_cnt[2] 获取的结果为()

A 1

B 2

C 3

D 4

数组的地址从 0 开始,trans_cnt[2] 表示获取索引为 2 的元素,即数组中第三个元素,结果为 3。

7.Hive是为了解决哪类问题()

A 海量结构化日志的数据统计

B 分布式组件调度

C 分布式系统监控

D 分布式系统高可用

【A】
A.正确,Hive是为了解决海量结构化日志的数据统计
B.错误,Hive不是,分布式组件调度常见有xxljob
C.错误,Hive不是,分布式监控常见为普罗米修斯
D.错误,Hive不是,分布式组件常见用ZooKeeper实现

8.下面关于Hive数据倾斜问题描述正确的是()

A 不需要了解业务,对业务进行数据探查无法解决数据倾斜

B 每一个数据倾斜的作业都需要优化

C 小文件合并不会解决数据倾斜的问题

D 可以适当的通过控制mapper和reducer来控制数据倾斜的问题

【D】
A.错误,对业务数据了如指掌,能够明显的找出问题点,帮助解决数据倾斜问题
B.错误,对作业或者数据计算没有强时间要求的作业,没有优化的必要
C.错误,小文件合并会一定程度的缓解数据倾斜的问题
D.正确,可以用Hive自身的mapper和reducer参数来优化Hive作业的执行效率,缓解数据倾斜的问题

9.下面关于Hive SQL的内外表使用正确的是()

A 在/tmp/path创建外表:CREATE EXTERNAL TABLE ... LOCATION '/tmp/path';

B 在/tmp/path创建外表:CREATE TABLE ... ;

C 创建内表:CREATE EXTERNAL TABLE ... LOCATION '/tmp/path';

D 创建内表:CREATE EXTERNAL TABLE ... ;

【A】
A.正确,创建外表需要声明EXTERNAL以及LOCATION
B.错误,应该为CREATE EXTERNAL TABLE ... LOCATION '/tmp/path';
C.错误,应该为CREATE TABLE ... ;
D.错误,应该为CREATE TABLE ... ;

10.下面关于Hive数据装载描述正确的是()

A 最好使用INSERT插入数据

B 最好使用INSERT OVERWRITE插入数据

C 可以使用LOAD DATA加载

D 什么场景,装载数据使用LOAD DATA效率最低

【C】
A.错误,最好使用LOAD DATA装载数据,因为一行数据INSERT也会调用MapReduce
B.错误,最好使用LOAD DATA装载数据,因为一行数据INSERT也会调用MapReduce
C.正确,最好使用LOAD DATA装载数据,因为一行数据INSERT也会调用MapReduce
D.错误,一行数据INSERT也会调用MapReduce,故LOAD DATA效率较高

11.下面关于Hive SQL的JOIN关键词正确的是()

(1) INNERN JOIN 

(2) JOIN 

(3) OUTER JOIN 

(4) RIGHT JOIN 

(5) CROSS JOIN 

(6) LEFT JOIN

A (2)(4)(5)(6)

B (1)(4)(5)(6)

C (1)(4)(6)

D (3)(4)(6)

【A】
A.正确,INNERN JOIN为JOIN,OUTER JOIN应为FULL OUTER JOIN
B.错误,INNERN JOIN为JOIN
C.错误,INNERN JOIN为JOIN,CROSS JOIN正确为笛卡尔积
D.错误,CROSS JOIN正确为笛卡尔积、OUTER JOIN应为FULL OUTER JOIN、JOIN正确未选择

12.代码select ceil(2.34)的结果是哪一个:

A 2.3

B 2

C 3

D 2.4

答案C

13.下列哪个组件不属于Hive架构()

A MySQL

B TaskManager

C HDFS

D Client

【B】
A.正确,MySQL存储Hive meta信息
B.错误,非Hive架构组件
C.正确,Hive建立于Hadoop文件系统之上
D.正确,Hive提交查询入口为Client

14.下面关于Hive SQL将table2中所有的数据迁移至table1中描述正确的是(),要求一模一样

A INSERT OVERWRITE TABLE table1 PARTITION (dt='{{yyyyMMdd-1d}}') SELECT * FROM table2;

B INSERT OVERWRITE TABLE table1 PARTITION (dt='{{yyyyMMdd-1d}}') SELECT * FROM table2 WHERE dt = '{{yyyyMMdd-1d}}';

C INSERT OVERWRITE TABLE table1 SELECT * FROM table2;

D INSERT OVERWRITE TABLE table1 SELECT * FROM table2 WHERE dt = '{{yyyyMMdd-1d}}';

【B】
A.错误,分区未对齐
B.正确
C.错误,分区未对齐
D.错误,分区未对齐

15.下面关于Hive内外表描述错误的是()

A Hive内表的元数据和数据都由Hive自己管理

B Hive会管理外表的元数据

C 当Hive内表的元数据发生变化时,内表的改动修改不会同步给元数据

D 对外部表的表结构和分区进行修改,需要修复

【C】
A.正确,Hive内表的所有数据都由Hive自己管理
B.正确,Hive只会管理外表的元数据,数据由HDFS自己管理
C.错误,内表元数据修改相关操作等改动会同步给元数据
D.正确,MSCK REPAIR TABLE table_name;

16.下面关于Hive内外表描述正确的是()

A 建表时候如果不显示声明表的类型,则建表为外表

B 外表使用DROP语句可以删除的很干净

C 外表由Hive自己管理

D 建表时候如果不显示声明表的类型,则建表为内表

【D】
A.错误,默认为内表
B.错误,DROP语句只能删除引用,不能删除外表数据的盘块
C.错误,外表由操作系统存储,Hive并不管理
D.正确,CREAET TABLE默认为内表

17.下面关于Hive SQL编译顺序正确的是() 

(1) 遍历QueryBlock,翻译为执行操作树OperatorTree 

(2) 遍历OperatorTree,翻译为MapReduce任务 

(3) 遍历AST Tree,抽象出查询的基本组成单元QueryBlock 

(4) 逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量 

(5) 物理层优化器进行MapReduce任务的变换,生成执行计划 

(6) 将SQL转化为抽象语法树AST Tree

A (3)(1)(2)(4)(5)(6)

B (5)(3)(1)(2)(4)(5)

C (6)(3)(1)(2)(4)(5)

D (5)(3)(1)(2)(4)(6)

【C】
A.错误,正确顺序(6)(3)(1)(2)(4)(5)
B.错误,正确顺序(6)(3)(1)(2)(4)(5)
C.正确,Hive将SQL转化为MapReduce任务的,整个编译过程分为六个阶段
D.错误,正确顺序(6)(3)(1)(2)(4)(5)

18.关于Hive中窗口函数下列描述正确的是()

A LAG用于统计窗口内往上第n行值,空不计入窗口中

B LEAD用于统计窗口内往下第n行值,空不计入窗口中

C FIRST_VALUE取分组排序后,截止到当前行的第一个值

D LAST_VALUE取分组不需要指定ORDER BY后,截止到当前行的最后一个值

【C】
A.错误,没有过滤的话,空计入窗口内
B.错误,没有过滤的话,空计入窗口内
C.正确,FIRST_VALUE固定取分组排序后的第一个值
D.错误,窗口函数如果不排序的话,默认根据记录在文件中的偏移量进行排序,会出现错误性的结果

19.Hive是由哪家公司开源的()

A Google

B Facebook

C LinkedIn

D Netflix

【B】
B.正确,由Facebook开源

20.下面关于Hive metastore的三种模式的描述错误的是(

A Derby方式是内嵌的方式,也是默认的启动方式,一般用于单元测试

B local模式中,使用MySQL 本地部署实现metastore

C remote模式为远程MySQL

D Derby方式在同一时间只能有多个进程连接使用数据库

【D】
A.正确,Derby为内嵌方式
B.正确,MySQL本地部署实现metastore
C.正确,MySQL远程部署实现metastore
D.错误,Derby模式同一时间只能有一个进程连接使用数据库

21.代码select bin(17)与下面结果一致:

A select conv(17,10,2)
B select conv(17,2,10)
C select conv(17,2,16)
D select conv(17,10,16)
正确答案: A 
bin(17):将17转化为2进制 conv(17,10,2):将17从10进制转化为2进制. 即conv(要转换的值,被转换的进制数,要转换成的进制数)

22.下面关于Hive数据倾斜问题的描述正确的是()

A Hive作业长时间执行未结束一定是数据倾斜问题

B 数据倾斜的问题一定是某个reducer的数据输入量远远大于其他reducer数据的输入量

C COUNT(DISTINCT ...) 一定会造成数据倾斜

D 数据倾斜常见的原因就是key分布在mapper上不均匀

B】
A.错误,数据量本身大处理时间也会很久
B.正确,数据倾斜的根本原因
C.错误,和样本特点有关
D.错误,是reducer不是mapper

23.代码select substr('abcdef',2,3)的结果是哪一个:

bc
bcd
cde
其他结果都不对

正确答案: B  

substr(string A, int start, int len)和 substring(string A, int start, int len),用法一样 

功效:返回字符串A从下标start位置开始,长度为len的字符串,字符串下标从1开始

24.下面关于Hive各个格式使用场景描述错误的是()

Parquet对于大型查询的类型是高效的,对于扫描特定表格中的特定列的查询,Parquet特别有用

目前Parquet默认使用gzip压缩格式

ORC可以支持复杂的数据结构(比如Map等)

RCFile是一种行列存储相结合的存储方式

【B】 

A.正确,spark最常见的表格式也是Parquet 

B.错误,默认为snappy 

C.正确,ORC支持多种复杂的数据结构Map、Struct等 

D.正确,行存为块,块为列存相结合

25.在hive中下列哪些命令可以实现去重()

A distinct
B group by
C row_number
D having

正确答案: A B C

26下面关于Hive SQL需要判断table1中有哪些table2中没有的数据,SQL正确的是(),非分区表,返回差异数据的具体id

A SELECT * FROM table1 t1 LEFT JOIN table2 t2 ON t1.id = t2.id WHERE t2.id IS NULL

B SELECT * FROM table1 t1 RIGHT JOIN table2 t2 ON t1.id = t2.id

C SELECT * FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id WHERE t2.id IS NOT NULL

D SELECT * FROM table1 t1 RIGHT JOIN table2 t2 ON t1.id = t2.id WHERE t2.id IS NOT NULL

【A】 

A.正确,通过id左连接table1、table2找出table1中id存在但是table2中id不存在的id 

B.错误,参考A 

C.错误,参考A,JOIN只能找出table1和table2共有的数据 

D.错误,找出的id为table2中id存在但是table1中id不存在的id

27.下面关于Hive外表table1的数据删除描述正确的是()

A DROP TABLE table1;

B TRUNCATE TABLE table1;

C ALTER TABLE table1 RENAME TO table2

D ALTER table1 SET TBLPROPERTIES('EXTERNAL'='FALSE') ; DROP TABLE table1;

【D】 

A.错误,Hive无法删除外表数据,只会删除元数据 

B.错误,Hive无法删除外表数据 

C.错误,是修改表名并不是删除外表 

D.正确,将外表转换为内表,转换后DROP操作会删除元信息和数据

28.在 Hive 中一个查询语句执行后显示的结果为:
20180812  50;20180813  32;20180814 NULL,则最有可能的查询语句是()

A SELECT inc_day,count(task_no) FROM 任务表 WHERE inc_day<=20180814

B SELECT inc_day,count(task_no) FROM 任务表 WHERE inc_day<=20180814 GROUP BY inc_day

C SELECT  inc_day,count(task_no) FROM 任务表 WHERE inc_day<=20180814 ORDER BY inc_day

D SELECT inc_day,count(task_no) FROM 任务表 HAVING inc_day<=20180814 GROUP BY inc_day

正确答案: B

29.已知表emp存在字段name1,以下语句能够正常运行的是哪一个:

A alter table emp rename to emp1
B alter table emp rename emp to emp1
C alter table emp change column name1 to name2
D alter table emp change name name12

正确答案: A

30.下面关于Hive描述正确的是()

A COUNT函数必须开窗口才能使用

B MAX函数是窗口函数

C LEAD函数是聚合函数,不是窗口函数

D MIN函数是聚合函数,不是窗口函数

B】 

A.错误,COUNT函数搭配GROUP BY不需要开窗也能使用 

B.正确,MAX函数是窗口函数,也是聚合函数,UDAF 

C.错误,LEAD函数是聚合函数,也是窗口函数,UDAF 

D.错误,MIN函数是聚合函数,也是窗口函数,UDAF

31.下面关于Hive SQL中INSERT INTO和INSERT OVERWRITE的区别说法正确的是()

A INSERT INTO会覆盖已经存在的数据

B INSERT OVERWRITE会先现将原始表的数据remove,再插入新数据

C INSERT OVERWRITE不考虑原始表的数据,直接追加到表中

D INSERT INTO重复的数据会报错

【B】 

A.错误,不会覆盖 

B.正确,OVERWRITE = 删除 + 插入 

C.错误,INSERT INTO不考虑原始表的数据,直接追加到表中 

D.错误,只会追加不会报错

32.以下表达式书写错误的是()

A year('2015-12-31 12:21')
B month(2015-10-31)
C day('2015-12-11')
D date_sub('2015-12-01',3)

正确答案: B

year(string date)、month(string date)、day(string date)、date_sub(string startdate, int days),参数都是 string 类型。B 选项参数不是 string 类型。

33.下面关于Hive表分区的使用错误的是()

A PARTITIONED BY(xxx)表示根据xxx的内容分区

B INSERT写入分区表的指定分区时,需要改为INSERT INTO table PARTITION (...)

C 分区表即使不在查询里进行分区剪裁,SQL的执行速度也会很快

D 分区表是常见的生产环境使用的表

A.正确,建表语句后跟的属性 

B.正确,写入指定分区 

C.错误,分区表在进行查询的时候需要分区剪裁提速,即使表进行了分区不指定分区查询仍然会遍历所有分区的表,为全表查询 

D.正确,生产环境作业隔天运行常见按照时间分区

34.下面关于Hive SQL创建表时描述正确的是()

A LIKE允许复制表结构和表数据

B COMMENT可以为表与字段增加描述,必须有,不加会报错

C ROW FORMAT 设置行数据压缩格式

D 如果相同名字的表已经存在,则建表抛出异常

【D】

A.错误,LIKE只会复制表结构 

B.错误,COMMENT为备注内容可加可不加、不是阻塞性功能 

C.错误,ROW FORMAT 设置行数据分割格式 

D.正确,需要修改为CREATE TABLE IF NOT EXISTS

35.table1是根据dt分区的数据表,dt例如:20220101,下列加载数据的SQL正确的是(),要求可重跑、写入分区要求当前天执行时写入至前一天的分区

A LOAD DATA INPATH 'filepath' OVERWRITE INTO TABLE table1 PARTITION (dt='{{yyyymmdd}}')

B LOAD DATA INPATH 'filepath' INTO TABLE table1 PARTITION (dt='{{yyyymmdd}}')

C LOAD DATA INPATH 'filepath' INTO TABLE table1 PARTITION (dt='{{yyyyMMdd}}')

D LOAD DATA INPATH 'filepath' OVERWRITE INTO TABLE table1 PARTITION (dt='{{yyyyMMdd-1d}}')

【D】 

A.错误,时间分区错误 

B.错误,时间分区错误、不能重跑 

C.错误,时间分区错误、不可重跑 

D.正确,OVERWRITE可重跑、时间分区为前一天

36.以下哪种不是 Hive 支持的数据类型()

A Struct
B Int
C Map
D Long

​​​​​​​Hive 不支持 Long 类型,支持 TINYINT SMALLINT INT BIGINT。

37.例如Hive建表语句中stored as 的作用是指定表的格式,下列不属于Hive表的常见格式的是() 

create table if not exists textfile_table 

  ueserid STRING, 

  movieid STRING, 

  rating STRING, 

  ts STRING 

row formated delimated fields terminated by '\t' 

stored as textfile;

A PigTable

B ORC

C PARQUET

D TEXTFILE

【A】 

A.错误,非Hive可指定的表格式 

B.正确,常见的表格式 

C.正确,常见的表格式 

D.正确,默认的表格式

38.下面关于Hive格式描述正确的是()

A TEXTFILE存储方式为列存储

B TEXTFILE格式的数据磁盘开销不大

C 使用TEXTFILE时Hive会对数据进行切分

D TEXTFILE格式是Hive的默认存储格式

【D】 

A.错误,TEXTFILE存储方式为行存储 

B.错误,TEXTFILE格式的数据磁盘开销大,数据解析开销大 

C.错误,使用TEXTFILE时Hive无法对数据进行切分,从而无法对数据进行并行操作 

D.正确,未显示声明表的存储格式都是TEXTFILE

39.下面关于Hive 用户自定义函数UDF的描述错误的是()

UDF(User-Defined-Function) 一进一出

UDAF(User- Defined Aggregation Funcation) 聚集函数,多进一出

UDTF(User-Defined Table-Generating Functions) 一进多出

上传UDF jar包至Hive环境即可使用自定义函数

【D】 

A.正确,常见的逻辑判断场景 

B.正确,聚合函数,常见窗口函数,count/max/min 

C.正确,行列转化,如lateral view explore 

D.错误,不仅需要上传jar包,还需要add jar包进行UDF注册才可以使用

40.下面关于查看Hive表信息描述正确的是()

A DESC查看表的描述是以建表语句的形式展示的

B SHOW CREATE TABLE 查看表的描述是以表格的形式展示的

C 使用DESC查看表table1:DESC table1;

D SHOW CREATE TABLE可以查看表的数据

【C】 

A.错误,SHOW CREATE TABLE查看表的描述是以建表语句的形式展示的 

B.错误,DESC查看表的描述是以表格的形式展示的 

C.正确,DESC查看表的表格形式描述信息 

D.错误,SHOW CREATE TABLE只能查看表的描述信息

41.下面关于Hive导表写入指定格式表时的描述正确的是()

A 导表时,如果建表语句指定为ORC格式的表,那么数据会先存储为ORC格式

B 导表时,如果建表语句指定为SequenceFile格式的表,那么数据会先存储为SequenceFile格式

C 导表时,如果建表语句指定为PARQUET格式的表,那么数据会先存储为PARQUET格式

D 导表时,如果建表语句指定为ORC格式的表,那么数据会先存储为TEXTFILE格式

【D】 

A.错误,指定ORC格式则Hive会先导入TEXTFILE格式的数据,再转换为指定格式 

B.错误,指定SequenceFile格式则Hive会先导入TEXTFILE格式的数据,再转换为指定格式 

C.错误,指定PARQUET格式则Hive会先导入TEXTFILE格式的数据,再转换为指定格式 

D.正确,指定ORC格式则Hive会先导入TEXTFILE格式的数据,再转换为指定格式

42.下面关于Hive存储的文件格式描述错误的是()

A ORC格式是Hive一直支持的

B TEXTFILE是Hive的默认存储格式

C SequenceFile是一种二进制存储

D RC是ORC的前身

【A】 

A.错误,ORC格式是Hive 0.11版本以后才支持的 

B.正确,不声明建表格式,就会存储为TEXTFILE 

C.正确,二进制文件,以<key,value>的形式序列化到文件中 

D.正确,ORC效率比RC高,是RC的改良版本

43.下列关于Hive特性归纳正确的选项是() 

(1) 为了数据仓库而设计 

(2) 迭代式算法无法表达 

(3) 数据挖掘方面不擅长 

(4) 分布式拓展能力强,适合高吞吐量、批量、海量数据处理 

(5) 不属于MapReduce框架 

(6) 低容错性 

(1)(2)(3)(4)

(1)(2)(3)(6)

(2)(3)(5)(6)

(1)(2)(3)(4)(6)

【A】 

A. 正确 

B. 错误, (1)(2)(3)(4) 正确,(6)错误,Hive SQL的作业具有高容错性,即使节点出现问题,仍然可以成功执行 

C. 错误, (1)(2)(3)(4) 正确,(5)错误,Hive计算框架是基于MapReduce框架衍生而来;(6)错误,Hive SQL的作业具有高容错性,即使节点出现问题,仍然可以成功执行 

D. 错误, (1)(2)(3)(4) 正确,(6)错误,Hive SQL的作业具有高容错性,即使节点出现问题,仍然可以成功执行

44.下面关于Hive SQL编译描述正确的是()

A Hive SQL的Parser层是为了将SQL转化为执行计划的

B 逻辑层优化器会进行算子转换,优化合并不必要的算子操作

C MapReduce任务是需要遍历QueryBlock后生成的

D 编译器遍历AST Tree,抽象出查询的基本组成单元Operator Tree

【B】 

A. 错误,Hive SQL的Parser层是为了将SQL转化为AST Tree 

B. 正确,逻辑层优化器在算子转化时候优化掉不必要的算子操作,减少shuffle数据量 

C. 错误,MapReduce任务是需要遍历OperatorTree后生成的 

D. 错误, 编译器遍历AST Tree,抽象出查询的基本组成单元QueryBlock

45.下面关于Hive对于Parquet格式的描述正确的是()

A Parquet支持压缩编码:uncompressed, snappy, gzip, lzo

B snappy压缩具有更好的压缩比

C gzip压缩具有更好的性能

D  Hive一直支持Parquet格式

【A】 

A.正确,常见的Parquet格式的压缩编码 

B.错误,snappy压缩具有更好的压缩性能 

C.错误,gzip压缩具有更好的压缩比 

D.错误,Hive 0.13版本才支持Parquet格式

46.下面关于Hive的SequenceFile格式描述正确的是()

A SequenceFile是二进制文件格式,以list的形式序列化到文件中

B SequenceFile存储方式:列存储

C SequenceFile不可分割、压缩

D SequenceFile优势是文件和Hadoop api中的MapFile是相互兼容的

【D】 

A.错误,以<key,value>的形式序列化到文件中 

B.错误,SequenceFile存储方式:行存储 

C.错误,SequenceFile可以进行分割、压缩,常见为Block压缩 

D.正确,可序列化是分布式大数据系统的常见属性

47.下面关于Hive 数据模型描述正确的是()

A Hive的元数据存储在HDFS中

B Hive的数据模型只包含:表、分区

C Hive的默认分隔符是 ^A (\001),使用的是UTF-8的编码

D Hive中的桶一般是文件的形式存在的

【D】 

A.错误,Hive的元数据存储在MetaStore中 

B.错误,表、分区、桶 

C.错误,使用的是ASCii码 

D.正确,Hive中的桶以文件的形式存

48.下面关于Hive内外表描述正确的是()

A 内部表数据由HDFS自身管理,外部表数据由Hive管理;

B 内部表数据存储的位置是hive.metastore.warehouse.dir设置配置(默认:/user/hive/warehouse)

C 外表存储必须指定LOCATION

D 内外表删除时,都会删除元数据和存储

【B】 

A.错误,内部表数据由Hive自身管理,外部表数据由HDFS管理; 

B.正确,Hive config默认设置 

C.错误,外表存储不指定LOCATION时,Hive将在HDFS上的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里 

D.错误,只有内表删除时,才会删除元数据和存储;外表只会删掉元数据

49.下面关于Hive的索引描述正确的是()

A Hive使用了索引加速数据查询

B Hive查询时,命中索引会更快的返回查询结果

C Hive要访问数据中满足条件的特定值时,命中索引则会更快的返回查询结果

D Hive没有索引,在加载数据的过程中不会对数据进行任何处理,因此也没有对数据中的某些Key建立索引

【D】 

A.错误,Hive没有索引,在加载数据的过程中不会对数据进行任何处理 

B.错误,Hive没有索引,在加载数据的过程中不会对数据进行任何处理 

C.错误,Hive没有索引,在加载数据的过程中不会对数据进行任何处理;Hive会根据特定条件扫描符合条件的所有数据 

D.正确

50.已知数组 trans_cnt[1, 2, 3, 4],以下哪一个表达式是求数组的元素数量()

A type(trans_cnt)
B length(trans_cnt)
C coalesce(trans_cnt)
D size(trans_cnt)

length():获取字符串的长度 

coalesce(a1, a2, ......, an):返回a1, a2, ......, an 中遇到的第一个不为 NULL 的值 

size():获取数组的大小

51.下面关于Hive UDF开发描述错误的是()

A Hive有两个不同的接口编写UDF

B org.apache.hadoop.hive.ql. exec.UDF 基础UDF的函数读取和返回基本类型,仅支持Text类型

C org.apache.hadoop.hive.ql.udf.generic.GenericUDF 复杂的GenericUDF可以处理Map、List、Set类型

D UDF处理原则是,输出和输出一对一的关系的函数

【B】 

A.正确,UDF和GenericUDF 

B.错误,支持Hadoop和Hive的基本类型。如,Text、IntWritable、LongWritable、DoubleWritable等 

C.正确 

D.正确,一对一的关系

52.已知表 test(name) 的记录如下:

tom
tom_green
tomly

lily

代码 select * from test where name rlike 'tom.*' 的结果有几条记录()

A 1

B 2

C 3

D 0

rlike 和 like 功能大致一样,它后面支持标准正则表达式语法;

.* 表示匹配 n 个字符,所以 tom、tom_green、tomly 都会查询到。

53.下面关于Hive内外表的区别描述错误的是()

A LOAD加载数据,内外表都会把数据加载至自己指定的路径下

B 内部表不会加载数据到Hive的默认仓库(挂载数据),减少了数据的传输,同时还能和其他外部表共享数据

C 使用外部表,Hive不会修改源数据,不用担心数据损坏或丢失。

D Hive在删除外部表时,删除的只是表结构,而不会删除数据。

【B】 

B.错误,外部表不会加载数据到Hive的默认仓库(挂载数据),减少了数据的传输,同时还能和其他外部表共享数据

54.下面关于Hive查询通常延迟较高的原因描述错误的是()

A 由于没有索引,需要扫描整个表,因此延迟较高

B 由于MapReduce 本身具有较高的响应延迟,因此在利用MapReduce 执行Hive查询时,也会有较高的延迟响应

C 关系型数据库较于Hive底层的文件系统实现,执行延迟较低

D Hive查询延迟较于关系型数据库,延迟响一直都是很高的

【D】 

D.错误,关系型数据比如MySQL数据量超过千万级别查询延迟就会高于Hive

55.下面关于使用hive的描述中不正确的是?

A hive中的join查询只支持等值链接,不支持非等值连接
B hive的表一共有两种类型,内部表和外部表
C hive默认仓库路径为/user/hive/warehouse/
D hive支持数据删除和修改

正确答案: B

56.下面关于Hive中join优化的描述正确的是()

A 大表JOIN小表时,谁先谁后无所谓,执行计划、效率都是一样的

B 大表JOIN小表时,使用mapjoin会极大地提升性能,因为它会将小表存储在磁盘里面供大表读取

C 大表JOIN大表时,不妨可以先尝试将一个表进行表剪裁、列剪裁,将大表JOIN大表的问题转换为大表JOIN小表

D WITH AS 语法可以将查询写入内存中,供其他SQL使用,WITH AS本身支持嵌套子查询

【B、C】 

A.错误,小表在前,将小表放在前,效率会高,hive会将小表进行缓存,且执行计划不一样 

B.正确,mapjoin会将小表的数据写入内存,提升JOIN速度 

C.正确,常见的解决大表JOIN大表问题的思路就是转化为大表JOIN小表 

D.错误,WITH AS句式本身不支持嵌套子查询

57.代码 select bin(17) 的结果是下面哪一个()

A 101
B 10001
​​​​​​​C 111
D 1001

bin(BIGINT a):返回 a 的二进制字符串表示。 

17 的二进制为 10001。

58.下面关于Hive的ORC格式描述正确的是()

A ORC的存储方式:数据按行分块 每块按照列存储

B ORC不可以进行压缩

C RC效率比ORC高,是ORC的改良版本

D ORC格式是Hive默认的建表格式

【A】 

A.正确,ORC文件的规范是数据按行分块,在由块按照列存储 

B.错误,ORC可以进行快速的存取和压缩 

C.错误,ORC效率比RC高,是RC的改良版本 

D.错误,TEXTFILE格式是Hive默认的建表格式

59.在0.13版本前,下面关于Hive SQL描述错误的是 ()

A Hive SQL IN不能跟子查询(在0.13版本以前),0.13后可使用EXISTS

B Hive SQL IN不能跟子查询,可以改为类似SQL:

SELECT a.key, a.valueFROM a LEFT OUTER JOIN b ON (a.key = b.key)WHERE b.key <> NULL;

C Hive SQL IN不能跟子查询,可以改为类似SQL:

SELECT a.key, a.valFROM a LEFT SEMI JOIN b on (a.key = b.key);

D 可以使用,

SELECT a.key, a.value FROM aWHERE a.key EXISTS (SELECT b.key FROM B);

【D】 

A.正确,Hive中IN后不能跟子查询 

B.正确,可以改写为LEFT OUTER JOIN的形式 

C.正确,LEFT SEMI JOIN是一种更高效的实现形式 

D.错误,Hive中IN后不能跟子查询(在0.13版本以前)

60.下面关于Hive描述错误的是()

A TEXTFILE格式的文件就算结合了gzip压缩格式,也无法对数据进行并行操作

B SequenceFile是Hadoop API提供的一种二进制文件支持

C RCFile是一种行存储的格式

D ORC文件是基于RCFile格式的一种优化

【C】 

A.正确,gzip不会对数据进行切分,从而提供并行分析的可能 

B.正确,可序列化是Hadoop API的要求,也是Hadoop系统常见个格式 

C.错误,RCFile是一种行列结合的格式,数据块列存,数据行以块存储 

D.正确,ORC优化的基础是RCFile

61.下面关于Hive架构描述不正确的是()

A Hive中QL是Hive SQL,方便用户完成数据读写

B Hive SerDe是Serializer和Deserializer的缩写,用于序列化和反序列化数据,即读写数据

C Hive MetaStore用户管理Hive的元数据

D Hive MetaStore对外暴露Thrift API,用于元数据的修改

A】 

A.错误,Hive QL是编译器,即解释器Parser、计划器Planner、执行器Execution

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐