hive 基础知识
文章平均质量分 91
mnasd
这个作者很懒,什么都没留下…
展开
-
hive 元数据信息修改
ALTER TABLE ddw_app_gindex.dau_type10 add columns(pkg string,dau int);UPDATE TBLS T1,DBS T2,SDS T3,PARTITIONS T4,SDS T5SET T5.CD_ID = T3.CD_IDWHERE T2.NAME = 'dw_app_gindex'AND T1.TBL_NAME = ...原创 2018-08-23 10:30:08 · 2855 阅读 · 0 评论 -
[一起学Hive]之三–Hive中的数据库(Database)和表(Table)
在前面的文章中,介绍了可以把Hive当成一个“数据库”,它也具备传统数据库的数据单元,数据库(Database/Schema)和表(Table)。本文介绍一下Hive中的数据库(Database/Schema)和表(Table)的基础知识,由于篇幅原因,这里只是一些常用的、基础的。二、Hive的数据库和表先看一张草图:Hive结构从图上可以看出,Hive作为一个“数据库”,...转载 2018-08-08 13:38:33 · 508 阅读 · 0 评论 -
[一起学Hive]之二–Hive函数大全-完整版
Hive函数大全–完整版现在虽然有很多SQL ON Hadoop的解决方案,像Spark SQL、Impala、Presto等等,但就目前来看,在基于Hadoop的大数据分析平台、数据仓库中,Hive仍然是不可替代的角色。尽管它的相应延迟大,尽管它启动MapReduce的时间相当长,但是它太方便、功能太强大了,做离线批量计算、ad-hoc查询甚至是实现数据挖掘算法,而且,和HBase、Spar...转载 2018-08-08 09:38:10 · 599 阅读 · 0 评论 -
Hive on Spark解析
Hive是基于Hadoop平台的数据仓库,最初由Facebook开发,在经过多年发展之后,已经成为Hadoop事实上的SQL引擎标准。相较于其他诸如Impala、Shark(SparkSQL的前身)等引擎而言,Hive拥有更为广泛的用户基础以及对SQL语法更全面的支持。Hive最初的计算引擎为MapReduce,受限于其自身的Map+Reduce计算模式,以及不够充分的大内利用,MapReduce...转载 2018-08-08 09:28:08 · 6365 阅读 · 0 评论 -
Hive分析窗口函数(四) LAG,LEAD,FIRST_VALUE,LAST_VALUE
继续学习这四个分析函数。注意: 这几个函数不支持WINDOW子句。(什么是WINDOW子句,点此查看前面的文章 )Hive版本为 apache-hive-0.13.1数据准备: cookie1,2015-04-10 10:00:02,url2 cookie1,2015-04-10 10:00:00,url1 cookie1,2015-04-10 10:03:04,1ur...转载 2018-08-03 15:32:56 · 145 阅读 · 0 评论 -
Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK
这两个序列分析函数不是很常用,这里也介绍一下。注意: 序列函数不支持WINDOW子句。(什么是WINDOW子句,点此查看前面的文章 )Hive版本为 apache-hive-0.13.1数据准备: d1,user1,1000 d1,user2,2000 d1,user3,3000 d2,user4,4000 d2,user5,5000 CREATE EXTE...转载 2018-08-03 15:32:03 · 168 阅读 · 0 评论 -
Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
本文中介绍前几个序列函数,NTILE,ROW_NUMBER,RANK,DENSE_RANK,下面会一一解释各自的用途。Hive版本为 apache-hive-0.13.1注意: 序列函数不支持WINDOW子句。(什么是WINDOW子句,点此查看前面的文章 )数据准备: cookie1,2015-04-10,1 cookie1,2015-04-11,5 cookie1,2...转载 2018-08-03 15:29:08 · 188 阅读 · 0 评论 -
Hive分析窗口函数(一) SUM,AVG,MIN,MAX
Hive中提供了越来越多的分析函数,用于完成负责的统计分析。抽时间将所有的分析窗口函数理一遍,将陆续发布。今天先看几个基础的,SUM、AVG、MIN、MAX。用于实现分组内所有和连续累积的统计。Hive版本为 apache-hive-0.13.1数据准备 CREATE EXTERNAL TABLE lxw1234 ( cookieid string, createt...转载 2018-08-03 15:25:08 · 9760 阅读 · 0 评论 -
Hive本地mr
如果在hive中运行的sql本身数据量很小,那么使用本地mr的效率要比分布式的快很多。。比如: hive> select 1 from dual; Total MapReduce jobs = 1 Launching Job 1 out of 1 Number of reduce tasks is set to 0 since there's no reduce...转载 2018-08-03 14:49:26 · 1385 阅读 · 1 评论 -
base64加密解密的hive udf函数
依赖hadoop,hive相关包,源码见附件。https://pan.baidu.com/s/1Ay0kX5Zd_DXUoSijEE8zqw add jar hdfs://nn.dc.sh-wgq/group/p_sdo_data/p_sdo_data_etl/udf/base64.jar; CREATE TEMPORARY FUNCTION encodebase64 AS '...转载 2018-08-03 14:45:43 · 5420 阅读 · 7 评论 -
[一起学Hive]之十八-Hive UDF开发
Hive中,除了提供丰富的内置函数(见[一起学Hive]之二–Hive函数大全-完整版)之外,还允许用户使用Java开发自定义的UDF函数。开发自定义UDF函数有两种方式,一个是继承org.apache.hadoop.hive.ql.exec.UDF,另一个是继承org.apache.hadoop.hive.ql.udf.generic.GenericUDF;如果是针对简单的数据类型(比如...转载 2018-08-15 13:44:25 · 261 阅读 · 0 评论 -
hive中合理使用union all与multi insert
对同一张表的union all 要比多重insert快的多,原因是hive本身对这种union all做过优化,即只扫描一次源表;而多重insert也只扫描一次,但应为要insert到多个分区,所以做了很多其他的事情,导致消耗的时间非常长;希望大家在开发的时候多测,多试!lxw_test3 12亿左右记录数Union all : 耗时7分钟左右 cr...转载 2018-08-03 14:15:24 · 2650 阅读 · 0 评论 -
hive优化之——控制hive任务中的map数和reduce数
一、 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务。主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改);2. 举例:a) 假设input目录下有1个文件a,大小...转载 2018-08-03 14:07:11 · 209 阅读 · 0 评论 -
hive中控制map和reduce数量的简单实现方法
0、先说结论: 由于mapreduce中没有办法直接控制map数量,所以只能曲线救国,通过设置每个map中处理的数据量进行设置;reduce是可以直接设置的。控制map和reduce的参数set mapred.max.split.size=256000000; -- 决定每个map处理的最大的文件大小,单位为Bset mapred.min.split.size.per...转载 2018-08-03 13:35:28 · 1290 阅读 · 0 评论 -
[一起学Hive]之四-Hive的安装配置
其实Hive的安装配置应该放在第二章来介绍,晚了些,希望对Hive初学者有用。三、Hive的安装配置3.1 环境需求Hadoop Client Mysql3.2 下载并解压Hive0.13.1安装包下载地址:http://archive.apache.org/dist/hive/hive-0.13.1/apache-hive-0.13.1-bin.tar.gzcp apac...转载 2018-08-08 13:40:53 · 227 阅读 · 0 评论 -
[一起学Hive]之五-Hive的视图和分区
同关系型数据库一样,Hive中也支持视图(View)和分区(Partition),但与关系型数据库中的有所区别,本文简单介绍Hive中视图和分区的示例。在真实业务场景下,视图的应用比较少,分区使用的非常多,因此建议对分区这块多花的时间来了解。 四、Hive的视图和分区4.1 Hive中的视图和关系型数据库一样,Hive中也提供了视图的功能,注意Hive中视图的特性,和关系型数据...转载 2018-08-08 13:51:52 · 2015 阅读 · 0 评论 -
[一起学Hive]之六-Hive的动态分区
前面文章介绍了Hive中是支持分区的。关系型数据库(如Oracle)中,对分区表Insert数据时候,数据库自动会根据分区字段的值,将数据插入到相应的分区中,Hive中也提供了类似的机制,即动态分区(Dynamic Partition),只不过,使用Hive的动态分区,需要进行相应的配置。先看一个应用场景,源表t_lxw1234的数据如下: SELECT day,u...转载 2018-08-08 13:58:37 · 457 阅读 · 0 评论 -
[一起学Hive]之二十-自定义HiveServer2的用户安全认证
HiveServer2提供了JDBC链接操作Hive的功能,非常实用,但如果在使用HiveServer2时候,不注意安全控制,将非常危险,因为任何人都可以作为超级用户来操作Hive及HDFS数据。比如:在配置HiveServer2的时候,hive.server2.authentication=NONE,表示没有用户认证。使用beeline,模拟成超级用户hadoop,成功连接到HiveS...转载 2018-08-16 10:30:23 · 1019 阅读 · 0 评论 -
连接Hive的客户端界面工具–SQuirrel SQL Client
刚看到一个可以连接Hive的客户端界面工具–SQuirrel SQL Client,试了一下,用起来还行,在这里记录一下安装及使用方法。SQuirrel SQL Client是一个用Java写的数据库客户端,用JDBC统一数据库访问接口以后,可以通过一个统一的用户界面来操作MySQL、PostgreSQL、MSSQL、Oracle、Hive等等任何支持JDBC访问的数据库。使用起来非常方便。而...转载 2018-08-16 10:24:57 · 1810 阅读 · 0 评论 -
Hive存储过程HQL/SQL(二)– 在Hive存储过程中读写MySQL表
通过PL/HQL可以在一个脚本中同时访问多个数据库系统。在实际业务场景中,经常会有需要将Hive和RDBMS中的数据结合分析,比如:往RDBMS中写入Hive分析的审计信息; 从RDBMS中获取一些维表的数据,和Hive表进行关联; 从RDBMS中读取一些配置数据; 往RDBMS中保存Hive的分析结果;在PL/HQL中提供了这个功能,它允许在一个PL/HQL脚本中访问多个数据库系统。...转载 2018-08-16 10:16:47 · 2566 阅读 · 0 评论 -
Hive存储过程HQL/SQL(一)–hplsql命令行
PL/HQL主要是通过命令行工具来执行一个SQL查询语句或者是一个SQL脚本。进入hplsql-0.3.11,执行./ hplsql即可显示命令行的用法: [liuxiaowen@dev hplsql-0.3.11]$ ./hplsql usage: hplsql -d,--define <key=value> Variable subsitution e.g. -...转载 2018-08-16 10:14:36 · 1108 阅读 · 0 评论 -
Hive中创建和调用存储过程及自定义函数
前面的文章《在Hive中实现存储过程–HQL/SQL》中介绍了如何使用HPL/SQL在Hive中实现存储过程,执行类似Oracle PL/SQL的功能。一般的业务场景是数据开发人员开发好一个存储过程,然后周期性的调用,传入不同的参数即可。本文继续介绍如何在Hive中利用HPL/SQL创建和调用存储过程。使用下面的语句创建一个存储过程set_message,它接受一个STRING类型的I...转载 2018-08-16 10:13:33 · 6337 阅读 · 0 评论 -
在Hive中实现存储过程–HQL/SQL
目前版本的Hive中没有提供类似存储过程的功能,使用Hive做数据开发时候,一般是将一段一段的HQL语句封装在Shell或者其他脚本中,然后以命令行的方式调用,完成一个业务或者一张报表的统计分析。好消息是,现在已经有了Hive存储过程的解决方案(HPL/SQL –Procedural SQL on Hadoop),并且在未来的Hive的版本(2.0)中,会将该模块集成进来。该解决方案不仅支持H...转载 2018-08-16 10:12:47 · 1559 阅读 · 0 评论 -
Hive中如何快速的复制一张分区表(包括数据)
Hive中有时候会遇到复制表的需求,复制表指的是复制表结构和数据。如果是针对非分区表,那很简单,可以使用CREATE TABLE new_table AS SELECT * FROM old_table;那么如果是分区表呢?首先想到的办法可能是:先创建一张和old_table结构相同的new_table,包括分区;可以使用CREATE TABLE new_table LIKE ol...原创 2018-08-16 09:57:24 · 1662 阅读 · 0 评论 -
[一起学Hive]之十九-使用Hive API分析HQL的执行计划、Job数量和表的血缘关系
本文介绍使用Hive的API获取一条HQL的最终执行计划,从而获取这条HQL的Job数量,另外,介绍使用API分析一条HQL中所包含的输入表和输出表。这些信息在做元数据管理和Hive表的血缘分析时候很有用。Hive在执行一条HQL的时候,会经过以下步骤:语法解析:Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象 语法树AST Tree; 语义解析:遍历AST ...转载 2018-08-16 09:43:08 · 1135 阅读 · 0 评论 -
Java API 写 Hive Orc文件
接前面的文章 《Java API 读取Hive Orc文件》,本文中介绍使用Java API写Orc格式的文件。下面的代码将三行数据:张三,20李四,22王五,30写入HDFS上的/tmp/lxw1234/orcoutput/lxw1234.com.orc文件中。 package com.lxw1234.test; import java.io.DataIn...转载 2018-08-16 09:27:15 · 822 阅读 · 1 评论 -
Java API 读取Hive Orc文件
Orc是Hive特有的一种列式存储的文件格式,它有着非常高的压缩比和读取效率,因此很快取代了之前的RCFile,成为Hive中非常常用的一种文件格式。在实际业务场景中,可能需要使用Java API,或者MapReduce读写Orc文件。本文先介绍使用Java API读取Hive Orc文件。在Hive中已有一张Orc格式存储的表lxw1234:该表有四个字段:url、word、...转载 2018-08-16 09:26:04 · 1539 阅读 · 0 评论 -
Spark1.4.0-SparkSQL与Hive整合-支持窗口分析函数
Spark1.4发布,除了重量级的SparkR,其中的SparkSQL支持了我期待已久的窗口分析函数(window functions),关于Hive中窗口分析函数的用法可参考 Hive分析函数系列 文章。在我们的数据平台中,90%以上的离线分析任务都是使用Hive实现,其中必然会使用很多窗口分析函数,如果SparkSQL支持窗口分析函数,那么对于后面Hive向SparkSQL中的迁移的工作量...转载 2018-08-08 14:08:34 · 213 阅读 · 0 评论 -
[一起学Hive]之八-使用Hive命令行
Hive提供的几种用户交互接口中,最常用的就是命令行接口。本文简单介绍一下Hive命令行接口(Hive Command Line)及Hive交互Shell(Hive Interactive Shell)的一些使用。七、使用Hive命令行7.1 Hive Command Line输入$HIVE_HOME/bin/hive –H 或者 –help可以显示帮助选项: -d,–defi...转载 2018-08-08 14:06:42 · 1174 阅读 · 0 评论 -
[一起学Hive]之七-向Hive表中加载数据
在Hive中建好表之后,需要将数据加载进来,以便做后续查询分析,本文介绍向Hive表中加载数据的几种方式。6.1 建表时候直接指定如果你的数据已经在HDFS上存在,已经为结构化数据,并且数据所在的HDFS路径不需要维护,那么可以直接在建表的时候使用location指定数据所在的HDFS路径即可。比如: CREATE [EXTERNAL] TABLE t_lxw1234...转载 2018-08-08 14:05:36 · 129 阅读 · 0 评论 -
[一起学Hive]之十七-从Hive表中进行数据抽样-Sampling
在Hive中提供了数据取样(SAMPLING)的功能,用来从Hive表中根据一定的规则进行数据取样,Hive中的数据取样支持分桶表取样和数据块取样。16.1 数据块取样(Block Sampling)block_sample: TABLESAMPLE (n PERCENT)根据输入的inputSize,取样n%。比如:输入大小为1G,TABLESAMPLE (50 PERCENT)将...转载 2018-08-14 16:06:55 · 290 阅读 · 0 评论 -
Hive和SparkSQL自定义UDF中依赖第三方Jar包
当在Hive和SparkSQL中使用的自定义UDF函数需要依赖第三方jar包时,可以将所有jar包通过类似于fatjar等插件打在一起,但显得太麻烦、太累赘了。其实只需要在运行时候将依赖的第三方jar包和udf函数jar包一起添加到CLASSPATH这种即可;这里的SparkSQL指整合了Hive的。Hive中添加第三方JAR包1:启用hive-cli时候,使用–auxpath选项指...转载 2018-08-14 16:05:00 · 3357 阅读 · 1 评论 -
[一起学Hive]之十六-Hive的WEB页面接口-HWI
Hive提供给用户的交互接口一般有三种:Hive命令行(Hive Command Line)、JDBC/ODBC以及Hive WEB Interface(HWI)。对于开发者来说,最常用的是Hive命令行。如果是将Hive开放给数据分析或数据运营人员做即席查询,那么使用Hive WEB页面接口(HWI)应该是比较方便的。本章就介绍一下Hive WEB页面接口(HWI)的配置和使用。以Hive0...转载 2018-08-14 16:00:39 · 681 阅读 · 0 评论 -
Hive学习之路 (十九)Hive的数据倾斜
目录1、什么是数据倾斜? 2、Hadoop 框架的特性 3、主要表现 4、容易数据倾斜情况 5、产生数据倾斜的原因 6、业务场景 (1)空值产生的数据倾斜 (2)不同数据类型关联产生数据倾斜 (3)大小表关联查询产生数据倾斜 正文回到顶部1、什么是数据倾斜?由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点回到顶部2、Hadoop 框...转载 2018-07-29 16:00:31 · 466 阅读 · 0 评论 -
Hive学习之路 (十八)Hive的Shell操作
目录一、Hive的命令行 1、Hive支持的一些命令 2、语法结构 3、示例 二、Hive的参数配置方式 1、Hive的参数配置大全 2、Hive的参数设置方式 正文回到顶部一、Hive的命令行1、Hive支持的一些命令Command Descriptionquit Use quit or exit to leave the inte...转载 2018-07-29 15:28:38 · 584 阅读 · 0 评论 -
Hive学习之路 (十七)Hive分析窗口函数(五) GROUPING SETS、GROUPING__ID、CUBE和ROLLUP
目录概述 数据准备 数据格式 创建表 玩一玩GROUPING SETS和GROUPING__ID 说明 查询语句 查询结果 结果说明 再比如 玩一玩CUBE 说明 查询语句 查询结果 玩一玩ROLLUP 说明 查询语句 正文回到顶部概述GROUPING SETS,GROUPING__ID,CUBE,ROLLUP...转载 2018-07-29 15:23:27 · 702 阅读 · 0 评论 -
Hive学习之路 (十六)Hive分析窗口函数(四) LAG、LEAD、FIRST_VALUE和LAST_VALUE
目录数据准备 数据格式 创建表 玩一玩LAG 说明 查询语句 查询结果 结果说明 玩一玩LEAD 说明 查询语句 查询结果 结果说明 玩一玩FIRST_VALUE 说明 查询语句 查询结果 玩一玩LAST_VALUE 说明 查询语句 查询结果 如果不指定ORDER BY,则默认按照记录在文件中的...转载 2018-07-29 15:22:33 · 1140 阅读 · 0 评论 -
Hive学习之路 (十五)Hive分析窗口函数(三) CUME_DIST和PERCENT_RANK
目录数据准备 数据格式 创建表 玩一玩CUME_DIST 说明 查询语句 查询结果 结果说明 玩一玩PERCENT_RANK 说明 查询语句 查询结果 结果说明 正文 这两个序列分析函数不是很常用,这里也练习一下。回到顶部数据准备数据格式cookie3.txtd1,user1,1000d1,user2,...转载 2018-07-29 15:20:41 · 1778 阅读 · 1 评论 -
Hive学习之路 (十四)Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
目录概述 数据准备 数据格式 创建表 玩一玩NTILE 说明 查询语句 查询结果 比如,统计一个cookie,pv数最多的前1/3的天 玩一玩ROW_NUMBER 说明 分组排序 查询结果 玩一玩RANK 和 DENSE_RANK 查询语句 查询结果 ROW_NUMBER、RANK和DENSE_RANK的区别 正文回到顶部...转载 2018-07-29 15:19:36 · 405 阅读 · 0 评论 -
Hive学习之路 (十三)Hive分析窗口函数(一) SUM,AVG,MIN,MAX
目录数据准备 数据格式 创建数据库及表 玩一玩SUM 查询语句 查询结果 说明 玩一玩AVG 查询语句 查询结果 玩一玩MIN 查询语句 查询结果 玩一玩MAX 查询语句 查询结果 正文回到顶部数据准备数据格式cookie1,2015-04-10,1cookie1,2015-04-11,5co...转载 2018-07-29 15:05:23 · 1849 阅读 · 0 评论