
Hive
大数据面试指南
微信公众号:大数据面试宝典
修改简历,面试辅导,回复666领取面试宝典资料
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
大数据高频面试题之Hive的数据存储格式
类型texfile:默认的存储格式:普通的文本文件,数据不压缩,磁盘的开销比较大,分析开销大。sequencefile:提供的一种二进制存储格式,可以切割,天生压缩。rcfile:提供的是一种行列混合存储方式,该方式会把相近的行和列数据放在一块儿,存储比较耗时,查询效率高,也天生压缩。orc:是rcfile的一种优化存储。parquet:自定义输入输出格式。具体描述1)texfile普通文本文件(通常默认的就是这个格式)创建表create table if not exists one (原创 2021-04-15 19:10:54 · 613 阅读 · 0 评论 -
大数据高频面试题之Hive表数据的加载与导出
Hive表数据加载1)直接向分区表中插入数据insert into table score3 partition(month =‘201807’) values (‘001’,‘002’,‘100’);2)通过查询插入数据先通过load加载创建一个表(linux) load data local inpath ‘/export/servers/hivedatas/score.csv’ overwrite into table score partition(month=‘201806’);(HD原创 2021-04-15 19:05:21 · 250 阅读 · 0 评论 -
大数据高频面试题之Hive常用函数总结
Hive内部支持大量的函数,可以通过 SHOW FUNCTIONS 查看Hive的内置函数。灵活地运用Hive提供的函数能够极大地节省数据分析成本。Hive函数主要包含数学函数,集合函数,类型转换函数,日期函数,条件函数,字符串函数,聚合函数和表生成函数等。1)数学函数数学函数是Hive内部提供的专门用于数学运算的函数,如round()函数和sqrt()函数等。round()函数主要用来对给定的数字进行四舍五入取近似值,如下所示:hive (default)> SELECT ROUND(5.5)原创 2021-04-14 17:55:50 · 1304 阅读 · 0 评论 -
大数据高频面试题之Hive的分区及其优势
什么是hive分区 : 就是一种对表进行粗略划分的机制,可以实现加快查询速度的组织形式.在使用分区时, 在表目录下会有相应的子目录,当查询时添加了分区谓词,那么该查询会直接定位到相应的子目录中进行查询,避免全表查询,提成查询效率.注意事项:1 . hive的分区使用的表外字段,分区字段是一个伪列但是可以查询过滤。2 . 分区字段不建议使用中文3 . 不太建议使用动态分区。因为动态分区将会使用mapreduce来查询数据,如果分区数量过多将导致namenode和yarn的资源瓶颈。所以建议动态分区前原创 2021-04-13 14:45:10 · 1022 阅读 · 0 评论 -
大数据高频面试题之Hive的严格模式
Hive提供了一个严格模式,可以防止用户执行那些可能意想不到的不好的影响的查询。通过设置属性hive.mapred.mode值为默认是非严格模式nonstrict 。开启严格模式需要修改hive.mapred.mode值为strict,开启严格模式可以禁止3种类型的查询。对于分区表,除非where语句中含有分区字段过滤条件来限制范围,否则不允许执行。换句话说,就是用户不允许扫描所有分区。进行这个限制的原因是,通常分区表都拥有非常大的数据集,而且数据增加迅速。没有进行分区限制的查询可能会消耗令人不可接受的原创 2021-04-13 14:41:30 · 167 阅读 · 0 评论 -
大数据高频面试题之如何合理设置Reduce的数量
1.调整reduce个数方法一(1)每个Reduce处理的数据量默认是256MBhive.exec.reducers.bytes.per.reducer=256000000(2)每个任务最大的reduce数,默认为1009hive.exec.reducers.max=1009(3)计算reducer数的公式N=min(参数2,总输入数据量/参数1)2.调整reduce个数方法二在hadoop的mapred-default.xml文件中修改设置每个job的Reduce个数set mapre原创 2021-04-13 14:38:36 · 574 阅读 · 0 评论 -
大数据高频面试题之Hive的小文件合并
(1)在map执行前合并小文件,减少map数:CombineHiveInputFormat具有对小文件进行合并的功能(系统默认的格式)。HiveInputFormat没有对小文件合并功能。set hive.input.format= org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;(2)在Map-Reduce的任务结束时合并小文件的设置:在map-only任务结束时合并小文件,默认trueSET hive.merge.mapfiles = tr原创 2021-04-13 14:35:15 · 117 阅读 · 0 评论 -
大数据高频面试题之Hive怎么解决数据倾斜
场景: MR中,shuffle阶段的一个key值对应了很多值,那么就会将这么多值分到一个分区中hive中,两个表做join maptask中一个任务处理的时间明显大于其他task的时间 就是出现了数据倾斜的问题开启数据倾斜时负载均衡set hive.groupby.skewindata=true;思想:就是先随机分发并处理,再按照 key group by 来分发处理。操作:当选项设定为 true,生成的查询计划会有两个 MRJob。第一个 MRJob 中,Map 的输出结果集合会随机分布到 Re原创 2021-04-13 14:30:37 · 160 阅读 · 0 评论 -
大数据高频面试题之Hive的自定义函数
1)Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展。2)当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)。3)根据用户自定义函数类别分为以下三种:UDF:User-Defined-Function,用户自定义函数,数据是一进一出,功能类似于大多数数学函数或者字符串处理函数;UDAF:User-Defined Aggregation Function,用户自定原创 2021-04-13 14:26:49 · 163 阅读 · 0 评论 -
大数据高频面试题之HiveSQL的转化过程
Hive是如何将SQL转化为MapReduce任务的,整个编译过程分为六个阶段:1.Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象语法树AST Tree;2.遍历AST Tree,抽象出查询的基本组成单元QueryBlock;3.遍历QueryBlock,翻译为执行操作树OperatorTree;4.逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量;5.遍历OperatorTree,翻译为MapR原创 2021-04-08 10:04:14 · 165 阅读 · 0 评论 -
大数据高频面试题之Hive的内部表和外部表
创建表时:创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径, 不对数据的位置做任何改变。删除表时:在删除表的时候,内部表的元数据和数据会被一起删除, 而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。1.未被external修饰的是内部表【managed table】,被external修饰的为外部表【external table】2.内部表数据由Hive自身管理,外部表数据由HDFS管理。3.内部表数据存储在hiv原创 2021-04-08 10:03:16 · 420 阅读 · 0 评论 -
大数据高频面试题之Hive的优缺点
1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。2)避免了去写MapReduce,减少开发人员的学习成本。3)Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。缺点1.Hive的HQL表达能力有限(1)迭代式算法无法表达(2)数据挖掘方面不擅长,由于MapReduce数据处理流程的限制,效原创 2021-04-08 10:02:07 · 581 阅读 · 0 评论 -
Hive的架构组成详解
Hive的架构组成详解如图中所示,Hive通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop中执行,最后,将执行返回的结果输出到用户交互接口。一、概要用户接口:ClientCLI(command-line interface)、JDBC/ODBC(jdbc访问hive)、WEBUI(浏览器访问hive)元数据:Metastore元数据包括:表名、表所属的数据库(默认原创 2021-04-02 23:19:09 · 235 阅读 · 0 评论 -
Hive是什么?
Hive是什么?一、概述Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。而且,hive十分适合数据仓库的统计分析。二原创 2021-04-02 23:17:25 · 376 阅读 · 0 评论 -
Hive分桶表
分桶表将数据按照指定的字段进行分成多个桶中去,说白了就是将数据按照字段进行划分,可以将数据按照字段划分到多个文件当中去开启hive的桶表功能set hive.enforce.bucketing=true;设置reduce的个数set mapreduce.job.reduces=3;创建桶表create table course (c_id string,c_name string...原创 2019-12-04 22:14:45 · 1734 阅读 · 0 评论 -
Hive 分区表
分区表:在大数据中,最常用的一种思想就是分治,我们可以把大的文件切割划分成一个个的小的文件,这样每次操作一个小的文件就会很容易了,同样的道理,在hive当中也是支持这种思想的,就是我们可以把大的数据,按照每天,或者每小时进行切分成一个个的小的文件,这样去操作小的文件就会容易得多了创建分区表语法create table score(s_id string,c_id string, s_scor...原创 2019-12-04 22:12:37 · 1749 阅读 · 0 评论 -
Hive 外部表和内部表
外部表:外部表说明:外部表因为是指定其他的hdfs路径的数据加载到表当中来,所以hive表会认为自己不完全独占这份数据,所以删除hive表的时候,数据仍然存放在hdfs当中,不会删掉管理表和外部表的使用场景:每天将收集到的网站日志定期流入HDFS文本文件。在外部表(原始日志表)的基础上做大量的统计分析,用到的中间表、结果表使用内部表存储,数据通过SELECT+INSERT进入内部表。操作...原创 2019-12-04 22:10:17 · 1744 阅读 · 0 评论 -
Hive基本操作
创建数据库与创建数据库表创建数据库操作创建数据库create database if not exists myhive;use myhive;说明:hive的表存放位置模式是由hive-site.xml当中的一个属性指定的<name>hive.metastore.warehouse.dir</name><value>/user/hive/w...原创 2019-12-04 22:07:36 · 1702 阅读 · 0 评论 -
MySQL的join关键字详解
SQL Join联接子句用于在两个或更多在数据库中的表的记录组合。JOIN是通过使用从两个表字段共通的值组合连接起来。MySQL官方只提供了三种join方式,内连接、左连接和右连接,不支持其他的连接关键字。但是可以通过一定的语法将达到其他的连接的效果。1.内连接 inner join最频繁使用的和重要的联接是INNER JOIN。它也被称为一个等值连接。INNER JOIN通过结合基于联接谓...原创 2019-12-04 21:53:50 · 1693 阅读 · 0 评论 -
Hive的使用方式(三种交互方式)
第一种交互方式:Hive交互shellcd /export/servers/hive-1.1.0-cdh5.14.0bin/hive查看所有的数据库hive (default)> show databases;创建一个数据库hive (default)> create database myhive;使用该数据库并创建数据库表hive (default)> ...原创 2019-11-22 16:28:44 · 2156 阅读 · 0 评论 -
HIVE的安装部署(强烈推荐)
mysql数据库的安装(使用yum源进行安装,强烈推荐)第一步:在线安装mysql相关的软件包yum install mysql mysql-server mysql-devel第二步:启动mysql的服务/etc/init.d/mysqld startchkconfig mysqld on第三步:进入mysql的客户端然后进行授权use mysql;配置远程连接 ...原创 2019-11-22 16:00:53 · 1640 阅读 · 0 评论 -
HIVE的安装部署(不推荐)
HIVE的安装部署我们在此处选择第三台机器作为我们hive的安装机器安装derby版hive直接使用:1、解压hivecd /export/softwarestar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C ../servers/1、直接启动 bin/hivecd ../servers/cd hive-1.1.0-cdh5.14.0/bin...原创 2019-11-22 11:48:54 · 1671 阅读 · 0 评论 -
Hive的基本概念
一、Hive基本概念1.1、Hive简介什么是HiveHive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL)。其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,hive可以理解为一个将SQL转换为MapReduce的任务的工具。为什么使用Hive直接使用hadoop所面临的问题人员...原创 2019-11-22 11:41:38 · 1975 阅读 · 0 评论