![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hive
bu想起名字
这个作者很懒,什么都没留下…
展开
-
Hive案例总结
Hive案例总结:处理日期的两种方式:substring(orderdate,1,7) = ‘2017-04’year(orderdate) = 2017 and month(orderdate) = 04不能写windows字句的函数:所有的排名函数last_valuefirst_value两种特殊情况当指定ORDER BY缺少WINDOW子句时,WINDOW规范默认为RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW。如果原创 2020-10-03 22:15:16 · 238 阅读 · 1 评论 -
Hive连接第三方dbever
Hive连接第三方dbever简单说就是三步:新建连接,选择hive主机名,端口号10000,用户名库两种选择:使用默认的hive根目录中的jdbc里面的jar包,下载下来,放到dbever的根目录完毕默认的库也可以用,因为比较新密码不需要输入,因为在beeline中也不需要输入line中也不需要输入...原创 2020-10-03 22:14:34 · 222 阅读 · 0 评论 -
Linux环境下MySQL的安装
MySQL的安装:1)检查当前系统是否安装过Mysql[haha@hadoop102 ~]$ rpm -qa|grep mariadbmariadb-libs-5.5.56-2.el7.x86_64 //如果存在通过如下命令卸载[haha @hadoop102 ~]$ sudo rpm -e --nodeps mariadb-libs //用此命令卸载mariadb2)将MySQL安装包拷贝到/opt/module目录下[haha @hadoop102 software]# ll总用原创 2020-10-03 16:21:06 · 66 阅读 · 0 评论 -
Hive窗口函数
Hive窗口函数1)定义窗口函数属于sql中比较高级的函数mysql从8.0版本才支持窗口函数,5.6,5.7都没有窗口函数oracle 里面一直支持窗口函数hive也支持窗口函数以下函数才是窗口函数窗口函数(13个):LEAD LEAD(col,n, default_val):往后第n行数据 col 列名 n 往后第几行 默认为1 默认值 默认nullLAG LAG(col,n,default_val):往前第n行数据 col 列名 n 往前第几行 默认为1原创 2020-10-03 15:59:12 · 1060 阅读 · 0 评论 -
Hive列转行函数
Hive列转行函数select split("a,b,c,d",',');效果:select explode(split("a,b,c,d",','));效果:案例:原始数据moviecategory《疑犯追踪》悬疑,动作,科幻,剧情《Lie to me》悬疑,警匪,动作,心理,剧情《战狼2》战争,动作,灾难需求《疑犯追踪》 悬疑《疑犯追踪》 动作《疑犯追踪》 科幻《疑犯追踪》 剧情《Lie原创 2020-10-03 15:48:33 · 2851 阅读 · 0 评论 -
Hive行转列函数
Hive行转列函数concatselect e.empno,e.ename,e.job,concat(e.empno,e.ename,e.job) from emp e;cancat_ws:concat加强版,但是只能够处理string,所以需要强转select e.empno,e.ename,e.job,concat_ws('-',case(e.empno as string),e.ename,e.job) from emp e;collect_list:多行转一列,不去重select c原创 2020-10-03 15:28:58 · 236 阅读 · 0 评论 -
Hive分桶表&分区表
Hive分桶表&分区表分区表Hive存在的问题:hive中没有索引机制,每次查询的时候,hive会暴力扫描整张表.MySQL具有索引机制.因为没有分区,所以hive搞了一个分区表的机制.在建表的时候,加上分区字段,然后会在表的目录下建立一个个的分区.如果按照天为分区,那么在表目录里就会有每天的目录.分区表的核心就是分目录.分区表的建表create table dept_partition(deptno int, dname string, loc string)partitioned原创 2020-10-03 11:39:04 · 263 阅读 · 0 评论 -
Hive中的排序(order by,sort by,distribute by,cluster by)
Hive中的排序全局排序Order By 全局排序,只有一个reducer 查看有多少个reducer的命令:set mapreduce.job.reduces;发现他的之值是-1.-1是动态变化的,当知道使用的身世orderby的时候,会把-1置为1.每个Reducer内部的排序 Sort By 使用sort by需要指定reduce的个数 set mapreduce.job.reduces = 3;我们在来看看是不是生成了三个文件insert overwrite local d原创 2020-10-03 09:38:00 · 393 阅读 · 0 评论 -
Hive和关系型数据库的区别
Hive和关系型数据库的区别hive和关系型数据库太像了,所以在hive的学习中总是会有一种hive就是数据库的错觉,hive不是数据库。hive是Hadoop的客户端,底层是hdfs,执行引擎是mapreduce,mapreduce执行在yarn上,说白了就是hadoop的客户端包了一层。一、数据更新hive读多写少mysql通常经常需要修改二、数据延迟mysql执行通常都是秒回hive的时间通常要长:hive查询的时候,没有索引,需要扫描整个表,因此延迟比较高mapreduce原创 2020-10-02 21:39:53 · 2718 阅读 · 0 评论 -
Hive的架构原理以及运行原理
Hive的架构原理一、客户端:Hive是Mapreduce的客户端,Hive的客户端有两种方式:CLI:命令行的方式JDBC:这种我们也可以通过java代码来实现,不过一般不这样做。二、四个器解析器:将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,解析器是对sql的语法,表是否存在,以及字段是否存在做检查,hql通过了解析器就说明语法上没有问题编译器:根据AST生成执行计划优化器:对逻辑执行计划进行优化执行器:将逻辑执行计划转换为可以运行的物理计划,对于hive原创 2020-10-02 21:14:47 · 1064 阅读 · 0 评论 -
Hive中开启Map端和Reduce端的压缩
开启Map输出阶段的压缩--(1)开启hive中间传输数据压缩功能set hive.exec.compress.intermediate=true;--(2)开启mapreduce中map的压缩功能set mapreduce.map.output.compress=true;--(3)设置mapreduce中map输出数据的压缩方式set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;原创 2020-08-21 21:08:56 · 386 阅读 · 0 评论 -
Hive的Fetch抓取---为什么hive中执行select,filter,limit不走mapreduce?
Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM emp;在这种情况下,Hive可以简单地读取emp对应的存储目录下的文件,然后输出查询结果到控制台。在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是minimal,该属性修改为more以后,在全局查找、字段查找、limit查找等都不走mapreduce。案例实操:(1)把hive.原创 2020-08-21 18:46:16 · 506 阅读 · 0 评论 -
Hive自定义函数
自定义UDF函数0)需求:自定义一个UDF实现计算给定字符串的长度,例如:hive(default)> select my_len("abcd");41)创建一个Maven工程Hive2)导入依赖<dependencies> <dependency> <groupId>org.apache.hive</groupId> <artifactId>h...原创 2020-08-21 13:57:41 · 122 阅读 · 0 评论 -
Hive面试--排序总结
排序1.全局排序(Order By)Order By:全局排序,只有一个Reducer1)使用 ORDER BY 子句排序ASC(ascend): 升序(默认)DESC(descend): 降序2)ORDER BY 子句在SELECT语句的结尾3)案例实操 (1)查询员工信息按工资升序排列hive (default)> select * from emp order by sal;(2)查询员工信息按工资降序排列hive (default)> sele原创 2020-08-19 09:50:57 · 121 阅读 · 0 评论 -
Hive和数据库比较
由于Hive采用了类似SQL的查询语言HQL,因此很容易将hive理解为数据库。其实从结构上看,hive和数据库除了拥有类似的查询语言,再无类似之处。数据库可以用在Online的应用中,但是hive是为了数据仓库而设计的,清楚这一点,有助于从应用角度理解HIve的特性。1.查询语言由于sql被广泛的应用在数据仓库中,因此,专门针对hive的特性设计了类sql的查询语言hql。2.数据更新hive是针对数据仓库设计的,而数据仓库的内容是读多写少。因此,Hive中不建议对数据的改写,所有的数据都原创 2020-08-17 18:17:26 · 369 阅读 · 0 评论 -
Hive学习--Linux安装Mysql5.7
1)检查当前系统是否安装过Mysql[root@hadoop102 ~]$ rpm -qa|grep mariadbmariadb-libs-5.5.56-2.el7.x86_64 //如果存在通过如下命令卸载[root @hadoop102 ~]$ sudo rpm -e --nodeps mariadb-libs //用此命令卸载mariadb2)将MySQL安装包拷贝到/opt/software目录下[root @hadoop102 software]# ll总用量 52...原创 2020-08-17 16:52:15 · 162 阅读 · 0 评论