进入DATE时代,大数据技术成为互联网发展的核心要素之一。与此同时大数据开发工程师的薪资也成为行业内高薪的代表。想从事大数据开发需要掌握多种核心技术:Hadoop、Hive、Storm、Spark、Scala等等。

而且这些技术知识点已经成为大数据工程师进入职场时面试中必备的考点。这里黑马程序员主要和大家分享一下数据仓库工具hive相关的面试题!

1、 Hive 的 join 有几种方式,怎么实现 join 的?

答:有3 种 join 方式:
1)在 reduce 端进行 join,最常用的 join 方式。Map端的主要工作:为来自不同表(文件)的 key/value 对打标签以区别不同来源的记录。然后用连接字段作为 key,其余部分和新加的标志作为 value,最后进行输出。reduce 端的主要工作:在 reduce 端以连接字段作为 key 的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录 (在 map 阶段已经打标志)分开,最后进行笛卡尔。

2)在 map 端进行 join,使用场景:一张表十分小、一张表很大。在提交作业的时候先将小表文件放到该作业的 DistributedCache 中,然后从 DistributeCache 中取出该小表进行 join key / value 解释分割放到内存中(可以放大 Hash Map 等等容器中)。然后扫描大表,看大表中的每条记录的 join key /value 值是否能够在内存中找到相同 join key 的记录,如果有则直接输出结果。

3)SemiJoin,semijoin 就是左边连接是 reducejoin 的一种变种,在 map 端过滤掉一些数据,在网络传输过程中,只传输参与连接的数据,减少了 shuffle的网络传输量,其他和 reduce的思想是一样的。实现:将小表中参与 join 的 key 单独抽取出来通过 DistributeCache 分发到相关节点,在 map 阶段扫描连接表,将 join key 不在内存 hashset 的纪录过滤掉,让参与 join 的纪录通过 shuffle 传输到 reduce 端进行 join,其他和 reduce join 一样。

2、hive 内部表和外部表的区别?内部表:建表时会在 hdfs 创建一个表的存储目录,增加分区的时候,会将数据复制到此location下,删除数据的时候,将表的数据和元数据一起删除。外部表:一般会建立分区,增加分区的时候不会将数据移到此表的 location下,删除数据的时候,只删除了表的元数据信息,表的数据不会删除。

3、 hive 是如何实现分区的?建表语句:create table tablename (id) partitioned by (dt string)增加分区:alter table tablenname add partition (dt = ‘2016-03-06’)删除分区:alter table tablename drop partition (dt = ‘2016-03-06’)

4、 Hive 有哪些方式保存元数据,各有哪些优缺点。
1)存储于 derby 数据库,此方法只能开启一个hive客户端,不推荐使用
2)存储于mysql数据库中,可以多客户端连接,推荐使用。

5、 hive 如何优化?
1)join 优化,尽量将小表放在 join 的左边,如果一个表很小可以采用 mapjoin。
2)排序优化,order by 一个 reduce 效率低,distirbute by +sort by 也可以实现全局排序。

3)使用分区,查询时可减少数据的检索,从而节省时间。

6、 hive 中的压缩格式 RCFile、 TextFile、 SequenceFile 各有什么区别?
TextFile:默认格式,数据不做压缩,磁盘开销大,数据解析开销大
SequenceFile:Hadoop API提供的一种二进制文件支持,使用方便,可分割,可压缩,支持三种压缩,NONE,RECORD,BLOCK。RCFILE 是一种行列存储相结合的方式。首先,将数据按行分块,保证同一个 record 在同一个块上,避免读一个记录读取多个block。其次,块数据列式存储,有利于数据压缩和快速的列存取。数据加载的时候性能消耗大,但具有较好的压缩比和查询响应。7、 hive 相对于Oracle来说有那些优点?
1)存储,hive 存储在 hdfs 上,oracle 存储在本地文件系统。
2)扩展性,hive 可以扩展到数千节点,oracle 理论上只可扩展到 100 台左右。3)单表存储,数据量大 hive 可以分区分桶,oracle 数据量大只能分表。8、 Hive 的 sort by 和 order by 的区别?
order by 会对输入数据做全局排序,只有一个 reduce,数据量较大时,很慢。
sort by 不是全局排序,只能保证每个 reduce 有序,不能保证全局有序,需设置mapred.reduce.tasks>1。

觉得有用的小伙伴可以分享出去给更多需要的人看到哦~

hive 删除分区_数据仓库工具hive面试题集锦(纯干货)相关推荐

  1. sql 分组求和_数据仓库工具–Hive(归纳笔记第六部分:SQL练习)

    写在开头: 本章是Hive教程第六部分,着重于归纳SQL编写. 文章内容输出来源:拉勾教育大数据高薪训练营. 本章将介绍Hive中常见的面试题和自己的解答思路,以供大家训练和记忆. SQL面试题 1. ...

  2. Hadoop技术(三)数据仓库工具Hive

    数据仓库工具Hive 第一章 hive是什么 一 数据仓库工具Hive 二 hive架构 三 Hive执行流程 第二章 Hive的搭建 一 Hive的搭建模式介绍 二 单用户模式搭建 三 多用户模式搭 ...

  3. 【大数据之路5-1】数据仓库工具 Hive

    数据仓库工具 Hive 1. Hive 概述 1. Hive 核心概念 2. Hive 优势 3. Hive 特点 4. Hive 和 RDBMS(关系型数据库)的对比[面试点] 5. Hive 架构 ...

  4. 数据仓库—stg层_数据仓库之Hive快速入门 - 离线实时数仓架构

    数据仓库VS数据库 数据仓库的定义: 数据仓库是将多个数据源的数据经过ETL(Extract(抽取).Transform(转换).Load(加载))理之后,按照一定的主题集成起来提供决策支持和联机分析 ...

  5. (第7篇)灵活易用易维护的hadoop数据仓库工具——Hive

    摘要: Hive灵活易用且易于维护,十分适合数据仓库的统计分析,什么样的结构让它具备这些特性?我们如何才能灵活操作hive呢? 博主福利 给大家推荐一套hadoop视频课程 [百度hadoop核心架构 ...

  6. hive后台启动_数据仓库组件:Hive环境搭建和基础用法

    一.Hive基础简介 1.基础描述 Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取.转化.加载,是一个可以对Hadoop中的大规模存储的数据进行查询和分析存储的组件,Hive数据仓库工 ...

  7. 大数据开发基础入门与项目实战(三)Hadoop核心及生态圈技术栈之3.数据仓库工具Hive基础

    文章目录 1.Hive概述 (1)数仓工具Hive的产生背景 (2)数仓工具Hive与RDBMS对比 (3)数仓工具Hive的优缺点 (4)数仓工具Hive的架构原理 2.Hive安装与配置 (1)安 ...

  8. Hadoop数据仓库工具——Hive

    一.什么是Hive: 1)基于Hadoop的数据仓库解决方案 - 将结构化的数据文件映射为数据库表 - 提供类sql的查询语言HQL(Hive Query Language) - Hive让更多的人使 ...

  9. hive删除分区部分数据

    hive表删除数据不能使用delete from table_name 的SQL语句, 一.删除分区部分数据 insert overwrite table t_finance_tax_bill par ...

最新文章

  1. python使用复合语句def创建函数对象_【收藏】Python实用技巧-成为Pythoner必经之路...
  2. window 添加环境变量
  3. Android Studio中有没有类似于Eclipse中的ctrl+2+L的快捷键? \Android Studio快捷键之代码提示...
  4. 【Python】函数默认参数怎么改变?
  5. 【算法】Dijkstra算法(单源最短路径问题) 邻接矩阵和邻接表实现
  6. l4d2服务器修改武器伤害,辐射4武器伤害及护甲修改图文教程_快吧单机游戏
  7. 地球绕太阳一圈有多远
  8. Executors中的几种线程调用方式
  9. RealityCapture场景建模笔记
  10. applicationContext.xml的头文件
  11. 在计算机领域,美国信息交换标准代码的缩写符号是.,计算机基础在线作业.docx...
  12. 多进程爬取补天的厂商
  13. 【解决】ocam录制失败。 导致: WASRecord: pAudioClient- Initialize failed. (hr=0x80070005
  14. 【每日新闻】雷军:5G+AIoT是下一代的超级互联网
  15. 【Machine Learning】梯度下降算法介绍_02
  16. php验证码有图片没数字,php验证码图片不显示
  17. CentOS 7 多硬盘合并 mergerfs 磁盘合并 + Duf 磁盘容量查看
  18. 洛谷 P2862 [USACO06JAN]把牛Corral the Cows 解题报告
  19. 计算机考证相关的证书
  20. 苹果手机充电孔变松了_用iPhone 12的MagSafe无线充电器给安卓充电?苹果:你想多了|充电器|手机|安卓手机|iphone...

热门文章

  1. elasticsearch date_MySQL数据实时增量同步到Elasticsearch
  2. C/C++混淆点-运算符短路
  3. 求最大公约数——辗转相除法
  4. oracle 查询cpu 100%,Oracle 11g中查询CPU占有率高的SQL
  5. Fiddler无所不能——之测试开发攻城狮必备神器
  6. Clob类型转换为String
  7. 围观神龙架构首次开箱,现场直播暴力拆机
  8. 给iOS项目中添加图片,并通过UIImageView引用和显示该UIImage图片
  9. YII2 实现后台操作记录日志
  10. JavaScript和jQuery的学习