oracle中join另一个表后会查询不出一些数据_面试必备 | 8个Hive数据仓工具面试题锦集!...

d1a6bf6c90af161fc973f9e52b1b20e7.gif

是新朋友吗?记得先点蓝字关注我哦~

b42c2df7d3c44328f64c6a8211ff6c3e.gif4360ce356972c365b6e2d209f97cc00e.png

今日课程菜单

Java全栈开发 | Web前端+H5

大数据开发 | 数据分析

 人工智能+Python | 人工智能+物联网

进入数据时代,大数据技术成为互联网发展的核心要素之一。与此同时大数据开发工程师的薪资也成为行业内高薪的代表。想从事大数据开发需要掌握多种核心技术:Hadoop、Hive、Storm、Spark、Scala等等。而且这些技术知识点已经成为大数据工程师进入职场时面试中必备的考点。这里主要和大家分享一下数据仓库工具hive相关的面试题!

82fec7c8c879b71bc148f0667cefe7c0.png

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 一样。

Hive 内部表和外部表的区别?

➡ 内部表:建表时会在 hdfs 创建一个表的存储目录,增加分区的时候,会将数据复制到此location下,删除数据的时候,将表的数据和元数据一起删除。

➡ 外部表:一般会建立分区,增加分区的时候不会将数据移到此表的 location下,删除数据的时候,只删除了表的元数据信息,表的数据不会删除。

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’)

Hive 有哪些方式保存元数据,各有哪些优缺点

➡ 存储于 derby数据库,此方法只能开启一个hive客户端,不推荐使用

➡ 存储于mysql数据库中,可以多客户端连接,推荐使用

hive 如何优化?

➡ join 优化,尽量将小表放在 join 的左边,如果一个表很小可以采用 mapjoin。

➡ 排序优化,order by 一个 reduce 效率低,distirbute by +sort by 也可以实现全局排序。

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

hive 中的压缩格式 RCFile、 TextFile、 SequenceFile 各有什么区别?

➡ TextFile:默认格式,数据不做压缩,磁盘开销大,数据解析开销大。

➡ SequenceFile:Hadoop API提供的一种二进制文件支持,使用方便,可分割,可压缩,支持三种压缩,NONE,RECORD,BLOCK。

➡ RCFILE:是一种行列存储相结合的方式。首先,将数据按行分块,保证同一个 record 在同一个块上,避免读一个记录读取多个block。其次,块数据列式存储,有利于数据压缩和快速的列存取。数据加载的时候性能消耗大,但具有较好的压缩比和查询响应。

hive 相对于 Oracle 来说有哪些优点?

➡ 存储,hive 存储在 hdfs 上,oracle 存储在本地文件系统。

➡ 扩展性,hive 可以扩展到数千节点,oracle 理论上只可扩展到 100 台左右。

➡ 单表存储,数据量大 hive 可以分区分桶,oracle 数据量大只能分表。

Hive 的 sort by 和 order by 的区别!

➡ order by 会对输入数据做全局排序,只有一个 reduce,数据量较大时,很慢。

➡ sort by 不是全局排序,只能保证每个 reduce 有序,不能保证全局有序,需设置mapred.reduce.tasks>1。

34f0dab76c3aecc7defbfcd772d2ea43.png

面试找工作不是一朝一夕就可以完成的事情,而且失败的面试经历未必是坏事,积累面试经验也是一种进步,希望这里可以帮到你。

职坐标大数据开发课程从入门到实战项目,让你快速掌握企业所需前沿技术,助你在6个月挑战高薪入职。

我是小职,记得找我

免费获取最新技术干货教程资源

139b3108eb55f1b9b3b25e99eb61724d.gif2adadb9fbe70b43c8e164b5edfa3fb53.png

小职精选

7个数据分析面试问题点

面试常考,64个数据分析常用术语 !

常见的数据分析面试题总结(一)

数据分析——SQL面试知识点总结

看了它,再也不怕数据分析面试了

程序员面试时这样介绍自己的项目经验,成功率能达到98.99%

2a8045f7179d9f7a80a3dfeb0833c270.png

版权声明:“职坐标在线” 公众号所发布内容,凡未注明"原创“等字样的均来源于网络,如涉及版权问题,请联系本公众号小编进行删除,谢谢!文中部分图片来源于网络。

139b3108eb55f1b9b3b25e99eb61724d.gif

更多精彩内容“阅读原文”

转发你最帅,点赞涨薪快

139b3108eb55f1b9b3b25e99eb61724d.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot-Initializer例子及分析

【README】 1,本文主要编写了 初始化器例子并分析了其调用路径; 2,初始化器的执行顺序 先于 后置处理器; 后置处理器,refer2 springboot:BeanPostProcessor示例及分析_PacosonSWJTU的博客-CSDN博客【RE…

ASP.NET 开发人员不必担心 Node 的五大理由

哦别误会……我真的很喜欢 Node,而且我觉得它提出的概念和模式将在很长一段时间内,对服务端 Web 编程产生深远的影响。即使随着时间的推移 Node 过气了,我们肯定可以从下一个牛逼玩意身上或多或少的感觉到它的影响(不管好的和/或坏的)。而在这…

Spring Boot面试题

转载自 Spring Boot面试题 Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家。问题一 Spring Boot、Spring MVC 和 Spring 有什么区别? SpringFrameSpringFramework 最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就…

synchronized原理_Java并发编程 -- synchronized保证线程安全的原理

线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案&#xff0…

转:Java 7 种阻塞队列详解

转自: Java 7 种阻塞队列详解 - 云社区 - 腾讯云队列(Queue)是一种经常使用的集合。Queue 实际上是实现了一个先进先出(FIFO:First In First Out)的有序表。和 List、Set ...https://cloud.tencent.com/de…

微软Build 2016前瞻:让开发者编写能畅行所有设备的app

本周三,5000名软件开发者将齐聚旧金山莫斯康展览中心参加微软公司年度开发者大会(Build 2016),和往年一样,微软在大会上发布了一系列新的技术支持。 据透露,微软将会让开发人员编写可以在任何Windows设备上…

XSS的那些事儿

转载自 XSS的那些事儿XSS是什么XSS,Cross-site scripting,跨站脚本攻击,为了区分与CSS,起名为XSS。黑客利用网站的漏洞,通过代码注入的方式将一些包含了恶意攻击脚本程序注入到网页中,企图在用户加载网页时…

js 时间戳转换成时间_JavaScript 时间戳转成日期格式

我们在开发中经常需要把时间戳转化成日期格式,但 JavaScript 本身自带的 Date 方法并不像 PHP date 的那么强大。因此,我们就需要自己动手写一个方法。首先我们要先了解下需要用到的 JavaScript 自带的 Date 对象的方法:getDate:获…

java阻塞队列小结

【README】 1,本文介绍了java的7个阻塞队列; 2,阻塞队列的作用 做缓冲作用,如缓冲kafka消息,而不是直接发送给kafka,减少kafka集群的压力;【1】阻塞队列 BlockingQueue 概述 1,队…

来自.NET FM的感谢信

掐指一算,我们的播客 .NET FM 已经上线一周了!!!不过瞅下节节攀升的流量,二位主播一边感叹 .NET 中文社区的热情,一边摸了摸瘪下去的荷包: • 首日访问 > 2000人次 • 五日访问 > 5000人次…

并发场景下MySQL存在的问题及解决思路

转载自 并发场景下MySQL存在的问题及解决思路 目录1、背景2、表锁导致的慢查询的问题3、线上修改表结构有哪些风险?4、一个死锁问题的分析5、锁等待问题的分析6、小结 一、背景对于数据库系统来说在多用户并发条件下提高并发性的同时又要保证数据的一致性一直是数据…

python queue 生产者 消费者_【python】-- 队列(Queue)、生产者消费者模型

队列(Queue)在多个线程之间安全的交换数据信息,队列在多线程编程中特别有用队列的好处:提高双方的效率,你只需要把数据放到队列中,中间去干别的事情。完成了程序的解耦性,两者关系依赖性没有不大。一、队列的类型&…

关于.NET技术前途问题的讨论

我去年曾经在论坛发起过关于.NET技术前途问题这个话题的讨论,也引起了很多同行和朋友的回复,时间过去大半年,自己也有了一些新的理解。本文的目的就是将其中一些精彩的观点整理出来并谈谈自己的观点。 引子 我们都知道微软.NET技术更新速度快…

用枚举enum实现单例

【README】 1,effectivejava 讲到使用 枚举类实现单例的例子,非常好用;2,好处如下: 不用定义私有构造器;不用定义获取单例的方法,如 getInstance() ;通过 枚举类.INSTANCE() 就可以…

前端面试常考系列一

转载自 前端面试常考系列一 一、简述HTML5的优点和缺点? 优点: 1、网络标准统一、HTML5是由W3C推出的。 2、多设备、跨平台 ,移植性强。 3、自适应网页设计。 4、即时更新。 5、新增了几个标签,有助于开发人员定义重要的内容&…

基于轻量型Web服务器Raspkate的RESTful API的实现

在上一篇文章《Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器》中,我们已经了解了Raspkate这一轻量型Web服务器,今天,我们再一起了解下如何基于Raspkate实现简单的RESTful API。 模块 首先让我们了解一下“模块”的概念。Raspkate的…

python股票自动买卖视频教程_十分钟学会用Python交易股票

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼本文通过讲述 [单股票均线策略] 在 Ricequant 量化平台的实现,熟悉平台并快速入门、创建自己的量化策略代码 。难易度:入门级.从一下几点说起;1 确定框架:[单股票均线策略] 的主要策略…

前端面试常考系列二

转载自 前端面试常考系列二 一、外部引用CSS有几种方式,有何区别 外部引用CSS的方式有两种分别是link和import。 区别如下: 1、link是XHTML标签,除了加载CSS外,还可以定义RSS等其它事务;import属于CSS范畴,…

3分钟看完Build2016 Day 1 Keynote

Build 2016 Day 1 Keynote 直播结束,M姐不得不说,没看直播的真心错过了一大波黑科技和充值我软信仰的大好时机,不过别后悔,M姐精选了干货,一次性让你补充信仰。没看的真心会被甩开八条街!! 言归…

js动态给按钮赋id_如何给SHOPIFY店铺添加“立即购买”动态结账按钮

动态结账按钮会根据店铺后台所支持的第三方快速结账付款方式和顾客设备浏览器的记录动态展示快速结帐按钮,比如PayPal Express Checkout、Apple Pay等。当然如果浏览器没有记录或者店铺后台没有支持的快速结帐付款方式,按钮则会显示为“buy it now”。Dy…