Hive
文章平均质量分 83
Hive的常用操作、HQL句法、问题和解决方案
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
skyWalker_ONLY
专注于HadoopHiveHBase等大数据生态圈,对机器学习算法具有极大兴趣
展开
-
Hive安装与部署
Hive简介Apache Hive是一种数据仓库,对查询和管理分布式存储中的超大数据集提供了很大帮助。Hive是基于Hadoop的,提供了以下功能:l 容易数据提取/转化/加载(ETL)的工具l 利用各种各样数据格式的结构的机制l 访问直接存储在HDFS或者其它存储系统(如HBase)上的文件l 通过MapReduce执行查询Hive定义了简单的类似SQL的查询语言原创 2014-04-13 22:55:31 · 3999 阅读 · 0 评论 -
Hive学习之HiveServer2服务端配置与启动
在之前的学习和实践Hive中,使用的都是CLI或者hive –e的方式,该方式仅允许使用HiveQL执行查询、更新等操作,并且该方式比较笨拙单一。幸好Hive提供了轻客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,两者都允许远程客户端使用多种编程语言如Java、Python向Hive提交请求,取回结果。HiveServe原创 2014-08-01 13:49:38 · 54478 阅读 · 0 评论 -
Hive学习之函数DDL和Show、Describe语句
创建/删除函数创建临时函数下面的语句创建由class_name实现的临时函数,该函数被创建后只能够在当前会话中使用,会话结束后函数失效。实现函数的类可以是Hive类路径中的任意类,可以使用Add Jar语句向Hive类路径添加类。CREATE TEMPORARY FUNCTION function_name AS class_name删除临时函数使用下面的语句可以原创 2014-06-20 14:33:06 · 30061 阅读 · 1 评论 -
Hive学习之HiveServer2 JDBC客户端
HiveServer和HiveServer2都有两种模式,分别为嵌入式和单机服务器模式,对于嵌入式URI为"jdbc:hive://"或者"jdbc:hive2://",单机服务器模式的URI为"jdbc:hive://host:port/dbname"或者"jdbc:hive2://host:port/dbname"。HiveServer使用的JDBC驱动类为org.apache.hadoop.原创 2014-08-04 11:10:14 · 17741 阅读 · 0 评论 -
Hive学习之配置Oracle为Metastore及问题
之前学习了如何配置MySQL做为Hive的Metastore,由于在实际应用环境中统一使用的是Oracle11g,所以需要将MySQL改为Oracle。原本预料只要简单地修改hive-site.xml文件即可,却遇到了在Hive中创建表失败的问题,下面就将遇到的问题及解决方法整理一下。首先修改hive-site.xml文件的内容如下,主要修改的地方为JDBC的URL和驱动类名。 jav原创 2014-07-29 11:25:21 · 4918 阅读 · 5 评论 -
Hive学习之内置数学、日期函数
数学函数下面表格中的函数为Hive的内置数学函数,大部分当参数为NULL时返回NULL。返回类型函数名描述bigint round(double a)返回a经过四舍五入的BIGINT 值doubleround(double a, int d)返回a经过四舍翻译 2014-08-20 13:54:51 · 12990 阅读 · 0 评论 -
Hive学习之抽样(Sampling)
当数据量特别大时,对全体数据进行处理存在困难时,抽样就显得尤其重要了。抽样可以从被抽取的数据中估计和推断出整体的特性,是科学实验、质量检验、社会调查普遍采用的一种经济有效的工作和研究方法。Hive支持桶表抽样和块抽样,下面分别学习。所谓桶表指的是在创建表时使用CLUSTERED BY子句创建了桶的表。桶表抽样的语法如下:table_sample: TABLESAMPLE (BUCKET x原创 2014-09-18 12:59:23 · 27409 阅读 · 0 评论 -
Hive学习之内置条件和字符串函数
条件函数下表为Hive支持的一些条件函数。返回类型函数名描述Tif(boolean testCondition, T valueTrue, T valueFalseOrNull)如果testCondition为真,返回valueTrue,否则返回valueFalseOrNullT翻译 2014-08-22 10:29:28 · 35109 阅读 · 0 评论 -
Hive学习之自定义函数(UDF)
在之前的学习,包括后面的实践和工作中,已经多次使用了Hive的内置函数,即有普通的函数,像cast、lower等,也有聚合函数,比如max,min等,除了这些内置函数,Hive还允许在内置函数不满足业务需求的时候用户自己定义函数。现在就学习如何使用Hive API自定义函数。要想自定义Hive函数,只需要继承org.apache.hadoop.hive.ql.exec.UDF类,并在实现类中定原创 2014-09-09 15:23:03 · 3837 阅读 · 0 评论 -
Hive学习之内置聚合函数
聚合函数下表为Hive内置的聚合函数。返回类型函数名描述BIGINTcount(*) count(expr)count(DISTINCT expr[, expr_.])count(*) – 返回检索到的行的总数,包括含有NULL值的行。count(expr) – 返回expr表达式不是NUL翻译 2014-08-25 17:19:24 · 31621 阅读 · 0 评论 -
Hive学习之连接查询优化(一)
Hive为连接查询提供了一系列的优化方法,包括优化Hive的查询执行计划以改进连接查询的效率和减少用户提示的使用等。Hive可以自动识别很多用例并自动优化它们,Hive在0.11版本中对下面的情况改进了优化器:· 连接查询的一端放进内存中,在新的优化器中:· 放进内存的一端在内存中以哈希表存在· 只有比较大的表需要扫描· 事实翻译 2014-09-22 11:24:39 · 3927 阅读 · 0 评论 -
Hive学习之连接查询优化(二)
星型连接增强功能Hive-0.11.0中优化器的增强功能专注于星型模式配置中连接的有效处理。星型模式连接的初始化工作是受限制的,在该模式中所有维度表在过滤和投影后在同一时间装入内存。一部分维度表装入内存的场景还未实现。连接查询优化可以被分为三部分:· 当使用MAPJOIN时,在只有map的一个作业中执行操作符树中的map连接链。· 自动转换情况的扩展优化(在翻译 2014-09-22 16:43:29 · 5981 阅读 · 0 评论 -
Hive学习之连接查询
Hive支持连接查询,但有一些条件必须遵守,比如只支持相等查询,其它查询如不等式查询则不支持,还支持外连接,左半连接查询。另外Hive支持多于两个表以上的连接查询。下面为Hive连接查询的语法:原创 2014-09-11 14:41:03 · 8632 阅读 · 0 评论 -
Hive学习之Union和子查询
Hive中的Union查询已经使用过多次,但在使用之前都没有系统的学习过Union的语法格式(虽然在使用过程中没有出现过问题),所以现在将这一点补上。Union的语法格式如下:翻译 2014-09-15 16:17:10 · 21269 阅读 · 0 评论 -
Hive学习之Lateral View
Lateral view与UDTF函数如explode()一起使用,UDTF对每个输入行产生0或者多个输出行。Lateral view首先在基表的每个输入行应用UDTF,然后连接结果输出行与输入行组成拥有指定表别名的虚拟表。Lateralview的语法如下:LateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlia翻译 2014-09-15 10:55:03 · 6684 阅读 · 0 评论 -
Hive学习之SELECT语句(二)
ORDER BY从句Hive中的order by从句与SQL中的order by很相似,都支持ASC和DESC,语法格式如下:ORDER BY colName[ASC|DESC]但Hive中的order by有一些限制。在严格模式下(hive.mapred.mode=strict),order by从句后面必须跟着limit从句,如果hive.mapred.mode= nonstric原创 2014-07-08 13:24:53 · 4325 阅读 · 1 评论 -
Hive学习之视图、索引DDL
创建视图 视图是纯逻辑对象并不关联任何存储,下面的语句使用给定view_name名称创建视图,若view_name与现存的表或者视图重名,则出错。CREATE VIEW [IF NOTEXISTS] view_name [(column_name [COMMENT column_comment], ...) ] [COMMENTview_comment][TBLPROPERTIES(p原创 2014-06-17 14:17:27 · 6288 阅读 · 0 评论 -
Hive学习之Hive配置管理
Hive是基于Hadoop的一种数据仓库,对查询和管理分布式存储中的超大数据集提供了很大帮助。正如绝大部分开源软件一样,Hive允许用户调整参数改变Hive的默认行为。用户可以使用下面三种方法中的任意一种对Hive进行配置管理:1. 在Hive的CLI(命令行接口)使用set命令在会话层级为后续语句设置参数值,比如:set hive.exec.scratchdir=/tmp/myd原创 2014-05-16 10:46:17 · 7306 阅读 · 0 评论 -
Hive学习之Metastore及其配置管理
在学习Hive的配置管理参数时,曾将参数分为四类:Hive管理参数、Hive元存储(Metastore)管理参数、与Hadoop交互的管理参数、用于传递运行时信息的参数,当时并没有对Metastore参数进行深入的学习,现在就开始学习这部分的内容。Hive中表和分区的所有元数据都存储在Hive的元存储(Metastore)中。元数据使用JPOX(Java Persistent Objects)原创 2014-05-19 10:13:55 · 27091 阅读 · 0 评论 -
Hive学习之Hive数据库DDL
Hive提供了与SQL相似的数据定义语言(DDL),对于熟悉SQL的人来说,学习Hive的DDL是非常容易得,即使从未接触过SQL的人,学习也不是一件很难的事情。虽然本人对SQL有一定的了解,但绝不敢自称熟悉SQL,所以准备对HiveQL进行深入的学习,按照SQL通常的学习曲线,先学习DDL,再学习DML(数据操作语言)。由于需要演示一些语句的示例,不得不超前使用一些其它语句,比如show、des原创 2014-06-04 11:38:54 · 3928 阅读 · 0 评论 -
Hive学习之Hive Web接口
Hive的web接口是CLI的备选方案,使用web接口是开始使用Hive的一种很好的方式。Hive的web接口(HWI)是一个简单的图形用户接口(GUI)。HWI在Hive-0.2分支版本中第一次出现,,如果使用的是0.2或者之后的版本,不需要做任何修改就可以直接使用HWI,HWI的默认配置在HiveConf.java文件中:// HWIHIVEHWILISTENHOST("hive.原创 2014-05-22 16:48:51 · 9841 阅读 · 0 评论 -
Hive学习之Transform/Map-Reduce语法
使用Hive的用户可以在数据流中插入自定义的Mappers和Reducers,为了运行自定义的Mapper和Reducer脚本,用户可以使用下面的命令,该命令使用TRANSFORM从句嵌入Mapper和Reducer脚本: query: FROM( FROMsrc MAPexpression (',' expression)* (inRowFormat)?原创 2014-07-16 15:47:09 · 6650 阅读 · 0 评论 -
Hive学习之配置MySQL为Metastore
Hive默认情况下以内嵌模式使用Derby数据库做为metastore,该模式最大的缺陷是不支持多个客户端同时连接到metastore上,因此只适合用于学习测试的目的,要在实际生产上使用Hive需要将metastore配置为本地模式或者远程模式,现在就介绍如何以本地模式配置metastore,使用的数据库为MySQL5.6.19。在进行配置之前先要安装MySQL数据库,一般情况下Linux系统中已原创 2014-06-26 15:00:14 · 10042 阅读 · 1 评论 -
Hive学习之创建、删除、Truncate表
创建表的语句有两种,分别为: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT c原创 2014-06-08 19:16:49 · 33918 阅读 · 1 评论 -
Hive学习之部署UDF的四种方法
在向Hive添加自定义的UDF或者添加Hive自带的类,如GenericUDFDBOutput时,需要将包含UDF类的Jar包添加到Hive环境中,这样就可以使用Create [temporary]function创建函数了,添加UDF Jar包有四种方法,下面分别进行介绍。第一种是最常见但也不招人喜欢的方式是使用ADD JAR(s)语句,之所以说是不招人喜欢是,通过该方式添加的jar文件只存原创 2014-06-30 15:00:12 · 8658 阅读 · 0 评论 -
Hive学习之Hive CLI
Hive命令行接口(CLI)提供了执行Hive QL、设置参数等功能,要启用CLI只需要在命令行下执行$HIVE_HOME/bin/hive命令。在命令下执行hive –H可以查看CLI选项,如下表所示:-d,--define 应用于Hive命令的变量替换,如-d A=B或者--define A=B--database 指定所使用的原创 2014-05-28 15:25:06 · 5673 阅读 · 0 评论 -
Hive学习之Hive基本概念及实践
Hive是基于Hadoop的数据仓库,而Hadoop为数据的存储和处理提供了很强的水平扩展和容错功能。Hive能够轻松地汇总数据,特定查询和分析大数据,提供了简单的查询语言HiveQL,该语言基于SQL,这使得熟悉SQL的用户可以执行特定查询,容易得汇总和分析数据。同时Hive QL允许map/reduce程序员能够插入定制的mapper和reducer去执行更加复杂的分析,HiveQL的内建功能原创 2014-05-24 12:07:13 · 5403 阅读 · 0 评论 -
Hive学习之SELECT语句(一)
前面学习了Hive中的数据定义语言,也学习了如何加载或者插入数据,在一些示例中或多或少的使用了SELECT语句,但还没有全面系统地学习,现在就开始学习Hive的SELECT语句。Hive的SELECT语句与传统的SQL中的SELECT还是有些区别的。具体的语法如下:[WITH CommonTableExpression(, CommonTableExpression)*] SELE原创 2014-07-03 14:19:20 · 9267 阅读 · 0 评论 -
Hive学习之Hive数据类型
Hive到0.13.0版本为止已经支持越来越多的数据类型,像传统数据库中的VCHAR、CHAR、DATE以及所特有的复合类型MAP、STRUCT等。Hive中的数据类型可以分为数值类型、字符串类型、日期时间类型、复合类型以及其它类型,下面分别予以介绍。数值类型Hive中的数值类型与Java中的数值类型很相似,区别在于有些类型的名称不一样,可以概括为如下的表格:类型名称原创 2014-05-29 17:09:51 · 52289 阅读 · 0 评论 -
Hive学习之修改表、分区、列
修改表/分区/列修改表的语句允许改变现有表的结构,通过该语句可以增加列/分区,修改SerDe,增加表和SerDe的属性或者重命名表。与之类似,修改分区的语句可以改变指定分区的属性。重命名表重命名表的语句如下:ALTER TABLE table_name RENAME TOnew_table_name修改表属性修改表属性的语句如下:ALTER TABLE table_na原创 2014-06-12 11:08:38 · 40240 阅读 · 0 评论 -
Hive学习之内置操作符
Hive的内置操作符与很多编程语言中的操作符相似,可以分为关系操作符、算术操作符、逻辑操作符和复合类型操作符,下面进行一一学习。关系操作符关系操作符比较操作数并产生TRUE或者FALSE,需要注意的是Hive的相等比较为=,而不是= =。操作符类型描述A = B基本类型如果A与B相等则返回TRU原创 2014-07-25 11:10:48 · 4362 阅读 · 0 评论 -
Hive学习之自定义聚合函数
编写Hive的UDAF函数原创 2014-10-07 15:58:02 · 6110 阅读 · 0 评论