Hive经典简答题

猿人菌 2021-01-22 18:01:01
hive 经典 答题 简答 简答题


什么是Hive?

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL)。

2.HIve的意义(最初研发的原因)

减少开发人员的开发成本和学习成本。

3.Hive的内部组成模块,作用分别是什么

元数据:描述数据的数据 内部执行流程: 解析器(解析SQL语句)、编译器(把SQL语句编译成MapReduce程序)、优化器(优化MapRedue程序)、执行器(将MapReduce程序运行的结果提交到HDFS)

4.Hive支持的数据格式

Text,SequenceFile,ParquetFile,ORC,RCFILE

5.进入Hiveshell窗口的方式?

第一种交互方式:Hive交互shell(直接通过bin/hive的方式) 第二种交互方式:Hive JDBC服务 1.启动hiveserver2服务 前台:bin/hive --service hiveserver2 2.beeline连接hiveserver2 beeline beeline> !connect jdbc:hive2://node01:10000

6.Hive数据库、表在HDFS上存储的路径时什么?

/user/hive/warehouse

7、like与rlike的区别

like:like是模糊匹配查询 rlike:rlike支持正则表达式。

8.内部表与外部表的区别?

内部表删除将表的元数据和数据同时删除。 外部表的元数据被删除,数据本身不删除。

9.分区表的优点是,分区字段的要求是?

优点: 指定分区查询,提高查询,分析的效率 要求: 分区字段绝对不能出现在数据表以有的字段中。

10、分桶表的优点是,分桶字段的要求是?

优点: 1、对于join的需求,能够起到优化加速的作用。(前提是,join字段设置为分桶字段) 2、用于数据取样(获取/提取数据样本) 要求: 分桶字段必须是表中的字段

11、数据导入表的方式

1.直接向表中插入数据 2.通过查询插入数据 3.多插入模式 4.查询语句中创建表并加载数据 5.创建表时通过location指定加载数据路径

12.数据导出表的方式

1、将查询的结果导出到本地 2、将查询的结果格式化导出到本地 3、将查询的结果导出到HDFS上(没有local) 4、Hadoop命令导出到本地 5 、hive shell 命令导出 6、export导出到HDFS上(全表导出) 7. sqoop导出

13、order by与sort by的区别

order by:全局排序,一个MapReduce sort by: 对每个分区内进行排序,对全局结果集来说不是排序。

14.where 与having的区别?

“Where”是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面不能使用“聚合函数”; “Having”是一个过滤声明,所谓过滤是在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且having后面可以使用“聚合函数”。

15、distribute by何时使用,通常与哪个联合使用?

当需要根据某个字段 进行 分区时 使用 通常与sort by 结合使用(先分区后排序) Hive要求DISTRIBUTE BY语句要写在SORT BY语句之前。

16.Cluster by何时使用?

需要按照某个字段分区同时也按照这个字段进行升序排序时使用cluster by

17. distribute by+sort by(相同字段) 与Cluster by的区别?

distribute by+sort by 方式可以指定正序和倒序 Cluster 只能是正序,无法指定排序方式

18.hive -e/-f/-hiveconf分别是什么意思?

-e从命令行执行指定的HQL -f 执行HQL脚本 -hiveconf 设置hive运行时候的参数配置

19、hive声明参数有哪些方式,优先级是什么?

配置文件<命令行参数<参数声明

20.编写hiveUDF代码,方法名称叫什么?

evaluate

21.企业中hive常用的数据存储格式是什么?常用的数据压缩格式是什么?

存储格式是ORC,ParquetFile格式, 数据压缩格式是snappy

22.hive自定义函数的类型

自定义函数分为三个类别: UDF(User Defined Function):一进一出 UDAF(User Defined Aggregation Function):聚集函数,多进一出(例如count/max/min) UDTF(User Defined Table Generating Function):一进多出,如lateral view explode()

23.Fetch抓取中设置more有什么效果,设置none有什么效果?

设置成more,简单的查询语句不会转化成为MR程序 设置成none,所有查询语句都要转化成为MR程序

24、本地模式有什么好处

在小数据量的前提下 提高了查询效率

25.当一个key数据过大导致数据倾斜时,如何处理

开启Map端聚合和功能开启局部聚合后 hive会创建两个MR 程序 第一个进行数据的局部聚合 第二个进行数据的最终汇总

26、Count(distinct) 的替换语句如何编写

SELECT count(DISTINCT id) FROM bigtable; 替换语句 SELECT count(id) FROM (SELECT id FROM bigtable GROUP BY id) a; 先过滤在管理

27、如何使用分区剪裁、列剪裁

列剪裁: 只拿需要的列 分区剪裁:只拿需要的分区 要什么 拿什么

28.如何理解动态分区调整

以第一个表的分区规则,来对应第二个表的分区规则,将第一个表的所有分区,全部拷贝到第二个表中来,第二个表在加载数据的时候,不需要指定分区了,直接用第一个表的分区即可

29.数据倾斜时,如何将众多数据写入10个文件

(将一个大的任务拆分成多个小任务,再次执行) 设置reduce数量(10) 1:distribute by (字段) 2 distribute by rand()

30.影响map数量的因素

文件很小时候:影响map数量的因素是文件数量 文件很大时候:影响map数量的因素是块的数量

31.reduce数量的计算是什么

公式: N=min(参数2,总输入数据量/参数1) 参数1:每个Reduce处理的最大数据量 参数2:每个任务最大Reduce数量

32.并行执行有什么好处

并行执行使得多个没有依赖关系的任务同时执行,起到了提高查询效率的作用

33.严格模式不能执行哪些命令

1、不允许扫描所有分区 2、使用了order by语句查询,要求必须使用limit语句 3、限制笛卡尔积的查询

34.JVM重用有什么好处

允许多个task使用一个jvm 降低了任务启动的开销,提高了任务的执行效率 (但是,在整个任务结束前,jvm不释放,长时间占用。导致资源不足时,资源浪费)

35. 什么是MR本地模式

任务在提交SQL语句的节点上"本地执行",任务不会分配到集群

36. 什么是本地计算

数据存储到HDFS后,编写分析代码实现计算程序,程序在进行分发时,优先分发放到这个程序所使用到的数据所在的节点上。

37.先join后过滤的优化方案

1.将过滤条件写在join…on 的 on中 SELECT a.id FROM ori a LEFT JOIN bigtable b ON (b.id <= 10 AND a.id = b.id); 2.将过滤条件写在join…on 的join,子查询过滤 SELECT a.id FROM bigtable a RIGHT JOIN (SELECT id FROM ori WHERE id <= 10 ) b ON a.id = b.id;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

版权声明
本文为[猿人菌]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/1778578

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云