
hive
文章平均质量分 93
小狼_百度
百度,web系统,分布式系统,大数据,机器学习,人工智能等爱好者
展开
-
Hive限制
1.更新,事务,索引,不支持,是全表扫描2.创建表的字段类型和java类型是对应的。不支持日期类型,提供转换为字符串类型的函数。3.查询语句中,不支持having,可写嵌套的select来解决;group by后只能是表的定义列名,不能像mysql那样可以为查询语句为逻辑处理结果声明的别名,但可为逻辑处理过程语句4.内置函数查看命令(show functions;desc func原创 2012-08-13 14:09:37 · 10797 阅读 · 3 评论 -
Hive的Security配置
为了更好地使用好Hive,我将《Programming Hive》的Security章节取出来,翻译了一下。Hive还是支持相当多的权限管理功能,满足一般数据仓库的使用。 Hive由一个默认的设置来配置新建文件的默认权限。Xml代码 property> name>hive.files.umask.valuename> val转载 2013-11-05 16:10:20 · 4826 阅读 · 0 评论 -
Hive权限控制和超级管理员的实现
Hive权限控制Hive权限机制:Hive从0.10可以通过元数据控制权限。但是Hive的权限控制并不是完全安全的。基本的授权方案的目的是防止用户不小心做了不合适的事情。 先决条件:为了使用Hive的授权机制,有两个参数必须在hive-site.xml中设置: hive.security.authorization.enabled t转载 2013-11-05 15:38:57 · 36094 阅读 · 1 评论 -
Hive修改表语句
0x01:重命名表1ALTER TABLE table_name RENAME TO new_table_name;上面这个命令可以重命名表,数据所在的位置和分区都没有改变。0x02:改变列名/类型/位置/注释1ALTER TABLE table_name CHANGE转载 2014-03-20 17:57:53 · 57051 阅读 · 0 评论 -
hive array、map、struct使用
hive提供了复合数据类型:Structs: structs内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域aMaps(K-V对):访问指定域可以通过["指定域名称"]进行,例如,一个Map M包含了一个group-》gid的kv对,gid的值可以通过M['group']来获取Arrays:array中的转载 2015-07-14 14:24:48 · 1694 阅读 · 0 评论 -
Hive中的.hiverc文件及命令运行方式
在${HIVE_HOME}/bin目录下有个.hiverc文件,它是隐藏文件,我们可以用Linux的ls -a命令查看。我们在启动Hive的时候会去加载这个文件中的内容,所以我们可以在这个文件中配置一些常用的参数,如下:#在命令行中显示当前数据库名set hive.cli.print.current.db=true; #查询出来的结果显示列的名称set hive.cli.print.he转载 2015-10-21 14:04:26 · 6978 阅读 · 1 评论 -
Hive.分组排序和TOP
HQL作为类SQL的查询分析语言,到目前为止,应该也还未能达到其它流行的SQL(如Transact-SQL, MySQL)实现那样完善。而在公司的生产环境中,我想应该也不会紧贴Hive版本更新的步伐,始终部署最新版的Hive;可能会滞后一两个大版本神马的;毕竟,虽然开源工具的透明性是一大利好,但与闭源的商业工具相比,在可用性等问题上的保障性还是略弱。 使用HQL进行离线分析用户转载 2015-11-17 14:14:32 · 1192 阅读 · 0 评论 -
Hive 中的复合数据结构简介以及一些函数的用法说明
目录[-]一、map、struct、array 这3种的用法:1、Array的使用2、Map 的使用3、Struct 的使用4、数据组合 (不支持组合的复杂数据类型)二、hive中的一些不常见函数的用法:1、array_contains (Collection Functions)2、get_json_object (Misc. Functions)3、转载 2016-05-06 12:30:31 · 11226 阅读 · 0 评论 -
hive union 的问题
在hive上执行查询:[html] view plain copyselect count(*) from user_active_vv_20110801_31 where active_type_3>0 UNION ALL select count(*) from user_active_vv_20110801_31 where ac转载 2016-05-09 17:40:08 · 747 阅读 · 0 评论 -
HIVE 窗口及分析函数 应用场景
窗口函数应用场景: (1)用于分区排序 (2)动态Group By (3)Top N (4)累计计算 (5)层次查询 一、分析函数 用于等级、百分点、n分片等。 函数 说明RANK() 返回数据项在分组中的排名,排名相等会在名次中留下空位DENSE_RAN转载 2016-08-15 17:47:09 · 1330 阅读 · 0 评论 -
hive之窗口函数理解与实践
需要指定一个窗口的边界,语法是这样的:ROWS betweenCURRENT ROW | UNBOUNDED PRECEDING | [num] PRECEDING AND UNBOUNDED FOLLOWING | [num] FOLLOWING| CURRENT ROW或RANGE between [num] PRECEDING AND [num]FOLLO转载 2016-08-15 17:50:15 · 736 阅读 · 0 评论 -
Apache Spark探秘:实现Map-side Join和Reduce-side Join
在大数据处理场景中,多表Join是非常常见的一类运算。为了便于求解,通常会将多表join问题转为多个两表连接问题。两表Join的实现算法非常多,一般我们会根据两表的数据特点选取不同的join算法,其中,最常用的两个算法是map-side join和reduce-side join。本文将介绍如何在apache spark中实现这两种算法。(1)Map-side Join转载 2016-08-15 18:38:24 · 1656 阅读 · 0 评论 -
Hive的HQL语句及数据倾斜解决方案
文章出处:http://blog.csdn.net/sdksdk0/article/details/51675005作者: 朱培 ID:sdksdk0Hive环境的搭建在这里也不重复说了,安装配置可以查看我的这篇文章:http://blog.csdn.net/sdksdk0/article/details/51512031。在这里主要是分享一下HQL语句实践及转载 2016-08-15 19:09:00 · 1432 阅读 · 0 评论 -
大数据下的Distinct Count(一):序
在数据库中,常常会有Distinct Count的操作,比如,查看每一选修课程的人数:select course, count(distinct sid)from stu_tablegroup by course;Hive在大数据场景下,报表很重要一项是UV(Unique Visitor)统计,即某时间段内用户人数。例如,查看一周内app的用户分布情况,Hive中写转载 2016-08-17 13:51:57 · 2537 阅读 · 0 评论 -
大数据下的Distinct Count(二):Bitmap篇
在前一篇中介绍了使用API做Distinct Count,但是精确计算的API都较慢,那有没有能更快的优化解决方案呢?1. Bitmap介绍《编程珠玑》上是这样介绍bitmap的:Bitmap是一个十分有用的数据结构。所谓的Bitmap就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此在内存占用方面,可以大大节省转载 2016-08-17 13:53:39 · 2426 阅读 · 0 评论 -
Hive并发情况下报DELETEME表不存在的异常
在每天运行的Hive脚本中,偶尔会抛出以下错误:123456782013-09-03 01:39:00,973 ERROR parse.SemanticAnalyzer (SemanticAnalyzer.java:getMetaData(1128)) - org.apache.hadoop.hive.ql.metadata.HiveExcept转载 2013-10-28 17:13:07 · 3007 阅读 · 0 评论 -
Hadoop DistributedCache使用及原理
概览DistributedCache 是一个提供给Map/Reduce框架的工具,用来缓存文件(text, archives, jars and so on)文件的默认访问协议为(hdfs://). DistributedCache将拷贝缓存的文件到Slave节点在任何Job在节点上执行之前。文件在每个Job中只会被拷贝一次,缓存的归档文件会被在Slave节点中转载 2013-09-17 17:55:36 · 21353 阅读 · 2 评论 -
hive中简单介绍分区表(partition table),含动态分区(dynamic partition)与静态分区(static partition)
hive中创建分区表没有什么复杂的分区类型(范围分区、列表分区、hash分区、混合分区等)。分区列也不是表中的一个实际的字段,而是一个或者多个伪列。意思是说在表的数据文件中实际上并不保存分区列的信息与数据。下面的语句创建了一个简单的分区表:create table partition_test(member_id string,name string)partition转载 2013-09-17 12:09:31 · 4519 阅读 · 0 评论 -
转义字符引发的血案(hive、bash)
hive hql:从一个字符串“p?a?b?c?ppp?hhh”中以?作为分隔符,找第5段字符串bash程序:test.sh[plain] view plaincopy#!/bin/bash hive -e "select (split('p?a?b?c?ppp?hhh','?'))[4] from a limit 1;" 报错:Caused by: java.util.re转载 2013-01-19 18:21:39 · 760 阅读 · 0 评论 -
hive查询优化总结
一、join优化Join查找操作的基本原则:应该将条目少的表/子查询放在 Join 操作符的左边。原因是在 Join 操作的 Reduce 阶段,位于 Join 操作符左边的表的内容会被加载进内存,将条目少的表放在左边,可以有效减少发生内存溢出错误的几率。Join查找操作中如果存在多个join,且所有参与join的表中其参与join的key都相同,则会将所有的join合并到一个mapred转载 2013-01-19 17:11:36 · 785 阅读 · 0 评论 -
hive bucket
hive中table可以拆分成partition,table和partition可以通过‘CLUSTERED BY ’进一步分bucket,bucket中的数据可以通过‘SORT BY’排序。bucket主要作用:1. 数据sampling2. 提升某些查询操作效率,例如mapside join需要特别注意的是:clustered by和sorted by不会影响数据的导入,这意味转载 2013-01-19 19:02:08 · 2990 阅读 · 0 评论 -
hive join原理
hive(0.9.0):1.支持equality joins, outer joins, and left semi joins2.只支持等值条件3.支持多表join原理hive执行引擎会将HQL“翻译”成为map-reduce任务,如果多张表使用同一列做join则将被翻译成一个reduce,否则将被翻译成多个map-reduce任务。eg:SELECT a.val转载 2013-01-19 18:09:58 · 2827 阅读 · 0 评论 -
hive 数据类型与函数参考手册
原文见:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF1.内置运算符1.1关系运算符运算符类型说明A = B所有原始类型如果A与B相等,返回TRUE,否则返回FALSEA == B无失败,因为无效的语法。 SQL使用”=”,不使用”==”。转载 2013-03-07 11:14:04 · 3730 阅读 · 0 评论 -
hive数据类型(翻译自Hive Wiki)
翻译自 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types列类型Hive支持的数据类型如下:原生类型:TINYINTSMALLINTINTBIGINTBOOLEANFLOATDOUBLESTRINGBINARY (Hive 0.8.0以上才可用)TIMESTAMP (Hive 0.8.0以上转载 2013-03-19 16:23:20 · 1366 阅读 · 0 评论 -
Hive的预定义UDF函数
Hive的预定义UDF函数列表如下,主要来自于describe function xxx和代码注释的翻译:)abs(x) - returns the absolute value of xacos(x) - returns the arc cosine of x if -1ascii(str) - returns the numeric value of the first转载 2013-03-19 16:12:16 · 984 阅读 · 0 评论 -
HIVE中map,array和structs使用
1:怎样导入文本文件(格式是怎样的?),2:怎样查询数据,已经能否在join中使用?在子查询中使用?等等知道怎么在hive中导入数组不?例如:我想把 数组[1,2,3] 和 数组 ["a","b","c"]导入到table1中create table table2 ( a array , b array);那么 我如何 导入呢?使得select * from tab转载 2013-03-19 16:13:15 · 9192 阅读 · 0 评论 -
Hive函数之parse_url
parse_url(url, partToExtract[, key]) - extracts a part from a URL解析URL字符串,partToExtract的选项包含[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO]。举例:* parse_url('http://facebook.com原创 2013-04-19 11:10:56 · 13321 阅读 · 0 评论 -
HIVE中的自定义函数
hive默认的函数并不是太完整,以后我们使用的使用肯定需要自己补充一些。下面这个例子是个简单的测试,关于自定义函数的。函数代码package com.example.hive.udf;import org.apache.hadoop.hive.ql.exec.UDF;import org.apache.hadoop.io.Text;public final class Lo转载 2013-05-20 15:58:32 · 1312 阅读 · 0 评论 -
[Hive]从一个经典案例看优化mapred.map.tasks的重要性
我所在公司所使用的生产Hive环境的几个参数配置如下:dfs.block.size=268435456hive.merge.mapredfiles=truehive.merge.mapfiles=truehive.merge.size.per.task=256000000mapred.map.tasks=2 因为合并小文件默认为true,而dfs.block.size与hi转载 2013-06-09 15:33:10 · 3072 阅读 · 0 评论 -
Hadoop中map数的计算
Hadoop中在计算一个JOB需要的map数之前首先要计算分片的大小。计算分片大小的公式是:goalSize = totalSize / mapred.map.tasksminSize = max {mapred.min.split.size,minSplitSize}splitSize = max (minSize, min(goalSize,dfs.block.size))to转载 2013-06-09 15:30:51 · 769 阅读 · 0 评论 -
【转】hive优化总结
1.当hive执行join内存溢出时,可以修改hive的配置文件hive-site.xml,增大内存,如下: mapred.child.java.opts -Xmx 1024m2.hive默认建表时的路径也可以在hive-site.xml里配置,如下: hive.metastore.warehouse.dir value >/user/hive/warehouse description转载 2013-06-09 15:34:44 · 830 阅读 · 0 评论 -
对现有Hive的大表进行动态分区
分区是在处理大型事实表时常用的方法。分区的好处在于缩小查询扫描范围,从而提高速度。分区分为两种:静态分区static partition和动态分区dynamic partition。静态分区和动态分区的区别在于导入数据时,是手动输入分区名称,还是通过数据来判断数据分区。对于大数据批量导入来说,显然采用动态分区更为简单方便。- 对现存hive表的分区首先,新建一张我们需要的分区以后的表cre转载 2013-09-17 11:18:35 · 23845 阅读 · 0 评论 -
Hive SQL优化
在有限资源下,提高执行效率 常见问题: 数据倾斜, map数设置 reduce数设置Hive执行,HQL>JOB>MAP/REDUCE 查看执行计划 explain hqlhive查询操作优化 join优化 hive.optimize.skewjoin=true;如果是join过程出现倾斜,应该设置为true set hive.skewjoin.k转载 2017-04-01 15:05:39 · 727 阅读 · 0 评论