Hive基本面试(一)

本文主要介绍了Hive的基本面试知识,包括元数据、Managed Table与External Table的区别、复合数据类型、分区优化以及Map Join等。此外,还讨论了Hive与HBase的区别以及Flume和Kafka的数据可靠性保障措施。对于Hive,强调了动态分区、分区优化和不同文件格式的优缺点。同时,提出了Hive数据分析面试中的分组TopN问题,以及WHERE与HAVING子句的使用场景。
摘要由CSDN通过智能技术生成

一. Hive基本面试

1.什么是metastore.

metadata即元数据。包含database、tabel、column names、partitions信息、bucketing信息等的元数据信息。
元数据默认是存储在Derby中,建议存储在关系型数据库中。

2.metastore安装方式有什么区别.

· 内嵌模式
o 内嵌模式使用的是内嵌的Derby数据库来存储元数据,也不需要额外起Metastore服务。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境。
· 本地元存储
o 本地安装mysql 替代derby存储元数据, 这种安装方式和嵌入式的区别在于,不再使用内嵌的Derby作为元数据的存储介质,而是使用其他数据库比如MySQL来存储元数据。 hive服务和metastore服务运行在同一个进程中,mysql是单独的进程,可以同一台机器,也可以在远程机器上。
· 远程元存储(HiveServer2)
o Hive服务和metastore在不同的进程内,可能是不同的机器,该模式需要将hive.metastore.uris设置为metastore服务器URL,如果有多个metastore服务器,将URL之间用逗号分隔,metastore服务器URL的格式为thrift://127.0.0.1:9083。

3.什么是Managed Table跟External Table.

  1. Hive有两种类型的表Managed Table跟External Table
  2. Managed Table:也被称作Internal table,这种表是hive的默认类型. 如果你在创建表的时候没有指明Managed或者External,那么默认就会给你创建Managed Table.
    a. Managed Table的数据,会存放在HDFS中的特定的位置中,通常是/user/username/hive/warehouse.
    b. 我们可以使用describe formatted table_name命令来查看表的信息.
    在这里插入图片描述

c. 当你删除drop table table_name;删除表时,数据文件也会一并删除.
3. External Table: 特别适用于想要在Hive之外使用表的数据的情况.当你删除External Table时,只是删除了表的元数据,它的数据并没有被删除.
4.什么时候使用Managed Table跟External Table.
· Managed Table:
o 适用于临时创建的中间表.
· External Table
o 适用于数据多部门共享.

5.hive有哪些复合数据类型.

  1. MAP
    a. Map复合数据类型提供了key-value对存储.你可以通过key获取value.
    b. zhangsan Math:90,Chinese:92,English:78
    i. create table score_map(name string,score map<string,int>) map keys terminated by ‘:’;
    ii. select name,score[‘English’],size(score) from score_map;
  2. STRUCT
    a. Struct是不同数据类型元素的集合。
    b. zhangsan Math,90
    i. create table course_struct(name string,course structcourse:string,score:int) collection items terminated by ‘,’;
    ii. select name,course.score,course.course from course_struct;
  3. ARRAY
    a. Array是同类型元素的集合.
    b. zhangsan beijing,shanghai,Hangzhou
    i. create table person_array(name string,work_locations array) collection items terminated by ‘,’;
    ii. select name,work_locations[0],size(work_locations) from person_array;
  4. UNIONTYPE
    a. 它代表一个可以具有属于你所选择的任何数据类型的值的列。
    b. 官方支持不完整,在join查询中,group by或者where字句会失败.目前可以不用这个集合.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值