hive
文章平均质量分 67
小桥
活泼开朗 ,乐于帮助他人
展开
-
Hive Server 2 调研,安装和部署
背景 我们使用Hive Server 1已经很长时间了,用户ad-hoc query,hive-web, wormhole,运营工具等都是通过hive server来提交语句。但是hive server极其不稳定,经常会莫名奇妙假死,导致client端所有的connection都被block住了。对此我们不得不配置一个crontab检查脚本,会不断执行"show tables转载 2014-07-14 17:33:17 · 1003 阅读 · 0 评论 -
hive中UDF、UDAF和UDTF使用
Hive进行UDF开发十分简单,此处所说UDF为Temporary的function,所以需要hive版本在0.4.0以上才可以。一、背景:Hive是基于Hadoop中的MapReduce,提供HQL查询的数据仓库。Hive是一个很开放的系统,很多内容都支持用户定制,包括:a)文件格式:Text File,Sequence Fileb)内存中的数据格式: Java Integer/St转载 2013-06-28 15:46:48 · 1106 阅读 · 0 评论 -
HIVE RCFile高效存储结构
本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在 MapReduce环境下的大规模数据分析中扮演重要角色。Facebook曾在2010 ICDE(IEEE International Conference on Data Engineering)会议上介绍了数据仓库Hive。Hive存储海量数据在Hadoop系统中,提供了一套类数转载 2013-07-12 15:23:33 · 660 阅读 · 0 评论 -
hive bucket
hive中table可以拆分成partition,table和partition可以通过‘CLUSTERED BY ’进一步分bucket,bucket中的数据可以通过‘SORT BY’排序。bucket主要作用:1. 数据sampling2. 提升某些查询操作效率,例如mapside join需要特别注意的是:clustered by和sorted by不会影响数据的导入,这意味转载 2013-07-12 15:13:24 · 822 阅读 · 0 评论 -
hive中的bucket table
当数据量比较大,我们需要更快的完成任务,多个map和reduce进程是唯一的选择。但是如果输入文件是一个的话,map任务只能启动一个。此时bucket table是个很好的选择,通过指定CLUSTERED的字段,将文件通过hash打散成多个小文件。create table sunwg_test11(id int,name string)CLUSTERED BY(id) SORTED转载 2013-07-12 15:14:50 · 649 阅读 · 0 评论 -
hive中的静态分区与动态分区
hive中创建分区表没有什么复杂的分区类型(范围分区、列表分区、hash分区、混合分区等)。分区列也不是表中的一个实际的字段,而是一个或者多个伪列。意思是说在表的数据文件中实际上并不保存分区列的信息与数据。下面的语句创建了一个简单的分区表:create table partition_test(member_id string,name string)partition转载 2013-07-12 12:42:37 · 847 阅读 · 0 评论 -
hive中select 走与不走mapreduce
hive 0.10.0为了执行效率考虑,简单的查询,就是只是select,不带count,sum,group by这样的,都不走map/reduce,直接读取hdfs文件进行filter过滤。这样做的好处就是不新开mr任务,执行效率要提高不少,但是不好的地方就是用户界面不友好,有时候数据量大还是要等很长时间,但是又没有任何返回。改这个很简单,在hive-site.xml里面有个配置参数叫h原创 2013-07-11 14:43:03 · 5552 阅读 · 0 评论 -
hive处理日志,自定义inputformat
开放环境,hadoop-0.20.2,hive-0.6 1.日志分隔符 Xml代码 2010-05-31 10:50:17|||61.132.4.82|||http://www.360buy.com/product/201185.html 2010-05-31 10:50:17|||61.132.4.82|||http://www.360buy.co转载 2013-06-26 17:16:29 · 1081 阅读 · 0 评论 -
Hive内部自定义函数UDF
HIVE UDF整理(一)关系运算等值比较: =语法:A = B 操作类型: 所有基本类型描述: 如果表达式A与表达式B相等,则为TRUE;否则为FALSE举例:hive> select 1 from dual where 1=1;1不等值比较: 语法: A 操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL转载 2013-07-11 14:30:38 · 1286 阅读 · 0 评论 -
Hive输出文件的间隔符
在hive中将结果输出到本地目录下: hive> INSERT OVERWRITE LOCAL DIRECTORY '/home/hadoop/result' > SELECT * FROM table_name 查看结果的时候,发现各个字段都连接在一起,如下[hadoop@hadoop-24 result]$ more 000000_0 1331903227197_84661转载 2013-07-10 17:35:56 · 2460 阅读 · 0 评论 -
Hive SQL使用和数据加载的一点总结
Hive 是facebook开源的一个基于hadoop框架的查询工具,也就是说,需要用hive的话,就要先安装hadoop。这次是小结一下最近用hive的心得,经验分享。hadoop和hive,pig,hbase的安装配置以后专门另开个连载说比较好。所以,我假设你已经有hive了。1.字段的数据类型。hive实际上为了数据挖掘的需要,对hive表的字段设置了数据类型,对转载 2013-07-10 10:40:46 · 1021 阅读 · 0 评论 -
hive -e "show tables"提示cannot recognize input near 'show' '<EOF>' '<EOF>' in ddl statement
一、前言 项目需要,需要知道hive的支持的最大并发用户数目是否满足需求,因此,写了个小程序测试 ,方式是java调用命令行程序的方式进行。即:[java] view plaincopyProcess executor = Runtime.getRuntime().exec(command,env);转载 2013-06-05 23:44:12 · 8706 阅读 · 0 评论 -
hive cli命令行选项
Hive Command line OptionsUsage: Usage: hive [-hiveconf x=y]* []* [|] [-S] -i Initialization Sql from file (executed automatically and silently before any other commands) -e转载 2013-06-05 23:45:23 · 901 阅读 · 1 评论 -
HIVE 查询显示列名 及 行转列显示
hive默认查询不会显示列名, 当一个表字段比较多的时候,往往看不出值与列之间的对应关系,对日常查错及定位问题带来不便,应同事要求,看了HIVE CLI源码,做了下些许调整, 加入列头打印及行转列显示功能未开启行转列功能之前:hive>>> select * from example_table where dt='2012-03-31-02' limit 2;OK13331331转载 2013-06-05 23:44:47 · 1212 阅读 · 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中的转载 2013-07-17 17:33:42 · 746 阅读 · 0 评论 -
Hive Explain(翻译自Hive wiki)
EXPLAIN语法Hive提供EXPLAIN命令,显示查询的执行计划。语法如下:EXPLAIN [EXTENDED] queryEXPLAIN语句使用EXTENDED,提供执行计划关于操作的额外的信息。这是典型的物理信息,如文件名。Hive查询被转换成序列(这是一个有向无环图)阶段。这些阶段可能是mapper/reducer阶段,或者做metastore或文件系统的操作,如转载 2013-07-19 10:27:49 · 826 阅读 · 0 评论 -
Join语法
hive表连接支持的语法如下:join_table: table_reference JOIN table_factor [join_condition] | table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition | table_reference LEFT SEMI转载 2013-07-24 10:03:17 · 837 阅读 · 0 评论 -
Hive元数据解析
本文是笔者初步整理的Hive元数据表,有不准确的地方请轻拍,后续我会补充.1. Hive 0.11 元数据表汇总线上Hive 0.11 metastore包括下述39个表,主要分为以下几类 : Database相关 Table相关 数据存储相关SDS COLUMN相关 SERDE相关(序列化)转载 2013-12-17 21:13:53 · 1131 阅读 · 0 评论 -
Hive 元数据“waiting for table metadata lock”
最近hive元数据统计时,老出现“waiting for metadata lock”,造成hive查询、统计的sql执行失败。现象:33692473 hiveadmin 10.5.18.226:5176 dataplatform_hive Query 13316 Waiting for table metadata lock SELECT 'org.apache.hadoop.hive.转载 2013-12-17 20:55:16 · 1930 阅读 · 0 评论 -
Hive Cli
Hive Cli = hive启动 = *$ hive –f script.q *$ hive -e 'SELECT * FROM dummy‘ *$ hive -S -e 'SELECT * FROM dummy‘ *$ hive -hiveconf hive.root.logger=DEBUG,console = set = *hive> SET hiv转载 2013-11-24 18:58:40 · 1324 阅读 · 0 评论 -
hive中antlr语法文件的编译
最近项目需要想用到hive中antlr的sql语法解析做二次开发,之前看hive源码的时候编译过,也遇到不少问题,现在居然忘了,看来好记性不如烂笔头,差记性就更加得多写写了。编译是在windows xp环境下进行的,下载所需要的文件如下:antlr-2.7.7.jarantlr-3.0.1.jarstringtemplate-3.1b1.jarH转载 2013-11-18 16:58:41 · 2254 阅读 · 0 评论 -
org.apache.hadoop.hive.metastore.api.InvalidOperationException cannot be cast to java.lang.RuntimeEx
最近工作中hive -e 执行hive 的load data 命令总是抛出错误:执行sql为:LOAD DATA INPATH '/user/dd_edw/data/jobstracker/jboxmldata.txt' OVERWRITE INTO TABLE fdm.fdm_jobtracker_log partition(dt='2013-11-03')错误信息:Caused原创 2013-11-04 17:34:25 · 1707 阅读 · 0 评论 -
hive :MetaException(message:Version information not found in metastore. )
hive :MetaException(message:Version information not found in metastore. )MetaException(message:Version information not found in metastore. )Hive now records the schema version in the metas转载 2013-11-03 01:29:14 · 3076 阅读 · 0 评论 -
Hive中的一种假NULL
Hive中有种假NULL,它看起来和NULL一摸一样,但是实际却不是NULL。例如如下这个查询:hive> desc ljn004;OKa stringTime taken: 0.237 secondshive> select a from ljn004;OKNULLTime taken: 46.232 seconds看上去好像ljn004的a字段保转载 2013-11-03 00:15:05 · 822 阅读 · 0 评论 -
FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.解决办法
起因是我重装了mysql数据库。 安装之后 把访问权限都配置好 : GRANT ALL PRIVILEGES ON*.* TO 'hive'@'%' Identified by 'hive'; GRANT ALL PRIVILEGES ON*.* TO 'hive'@'localhost' Identified by 'hive'; GRANT ALL PRIVI转载 2013-10-31 09:40:41 · 1483 阅读 · 0 评论 -
Hive SQL解析/执行计划生成流程分析
Hive有三种用户接口:cli (Command line interface)bin/hive或bin/hive –service cli命令行方式(默认)hive-server/hive-server2bin/hive –service hiveserver 或bin/hive –service hiveserver2通过JD转载 2013-10-21 15:59:44 · 1136 阅读 · 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-16 10:27:49 · 1570 阅读 · 0 评论 -
关于hive的tmp目录文件个数过多的问题
Hive的参数hive.exec.scratchdir所配置的路径为hive执行sql的临时文件的存放路径如果一个hive sql正常执行完毕后,相应的tmp文件夹会被清除的但是如果sql执行的存在异常或者非正常中断,那么这个文件夹是不会被删掉了那么随着时间的推移,这个文件夹里面的文件个数和文件大小会超过yunti的限制这也是前几天出现问题的原因,总的文件个数超过限制,或者总的文件转载 2013-09-06 14:26:09 · 4497 阅读 · 0 评论 -
HIVE中MAPJOIN可以使用的场景分析
最近开发中遇到几种应用,刚好使用MAPJOIN来解决实际的问题。应用共同点如下:1: 有一个极小的表2: 需要做不等值join操作(a.x 这种操作如果直接使用join的话语法不支持不等于操作,hive语法解析会直接抛出错误如果把不等于写到where里会造成笛卡尔积,数据异常增大,速度会很慢。甚至会任务无法跑成功~根据mapjoin的计算原理,MAPJION会把小表全部读入转载 2013-07-29 17:04:31 · 670 阅读 · 0 评论 -
hive 表字段中存在^A 分割符处理
今天接到一个问题,在hive表字段中存在 ^A 内容: ANokia^A ^A ^A RM-356 ^A ^A/UCWEB8.9.0.253/50/999 实际为 0x01 linux的导出数据默认的分隔符 这样在处理这个字段的时候每次都会误以为多个字段,其实只有一个字段,于是决定写udf处理下这个字段: udf:public String evaluate(S原创 2013-07-26 13:25:51 · 10033 阅读 · 0 评论 -
hive的元数据存储在mysql后,报错的解决方法
hive的元数据存储在mysql后,报错的解决方法! 最近,因为工作的需要,一直在研究hadoop系统。许多分析工作都将通过hive来解决,所以特将所碰到的问题和解决方案,陆续整理出来,既做为回顾又供需要的朋友参考! 因为要实现多人开发Hive,所以需要将hive的元数据存储在mysql。配置完成后,配置之前hive中创建的数据表在show tables转载 2013-05-22 23:10:21 · 1015 阅读 · 0 评论 -
hive开发环境搭建体验
最近为了规范hadoop团队的开发流程,所以已经在Eclipse里进行相关的hive开发工作。但是目前在运行hive的时候,有几个问题需要注意下:第一个问题:直接运行CliDriver类报错,信息如下:WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apach转载 2013-05-22 14:26:39 · 1007 阅读 · 0 评论 -
hive大数据倾斜总结
在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的转载 2013-03-31 19:39:18 · 755 阅读 · 0 评论 -
hive 配置参数说明
hive.exec.mode.local.auto 决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行) true hive.exec.mode.local.auto.inputbytes.max 如果 hive.exec.mode.local.auto 为 true,当输入文件大小小于此阈值时可以自动在本地模式运行,默转载 2013-03-31 14:26:01 · 4826 阅读 · 0 评论 -
hive迁移hadoop namenode时遇到的问题
使用了一段时间的hive和hadoop,在迁移datanode时很容易,要迁移namenode,hive里就闹情绪了。更改namenode后,在hive中运行select 依旧指向之前的namenode地址。要如何解决呢,具体操作如下:1.复制打包老的namenode2.复制打包老的namenode的hdfs目录3.到新机器准备好:修改master的值 复制到各节点 修改hiv转载 2013-03-14 17:33:09 · 1025 阅读 · 1 评论 -
hive 初始化运行流程
CliDriver 初始化过程 CliDriver.main 是 Cli 的入口 (1) 解析(Parse)args,放入cmdLine,处理 –hiveconf var=val 用于增加或者覆盖hive/hadoop配置,设置到System的属性中。 (2) 配置log4j,加载hive-log4j.properties里的配置信息。 (3)创建一个HiveC转载 2013-03-13 16:34:06 · 870 阅读 · 0 评论 -
hive Cli常用操作(翻译自Hive wiki)
这里罗列常用操作,更多参考 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Clihive命令行执行一个查询$HIVE_HOME/bin/hive -e 'select a.col from tab1 a'之后过程中,会在终端上显示mapreduce的进度,执行完毕后,最后把查询结果输出到终端上转载 2013-03-13 14:33:49 · 620 阅读 · 0 评论 -
Hive 中SerDe概述
一、背景1、当进程在进行远程通信时,彼此可以发送各种类型的数据,无论是什么类型的数据都会以二进制序列的形式在网络上传送。发送方需要把对象转化为字节序列才可在网络上传输,称为对象序列化;接收方则需要把字节序列恢复为对象,称为对象的反序列化。2、Hive的反序列化是对key/value反序列化成hive table的每个列的值。3、Hive可以方便的将数据加载到表中而不需要对数转载 2013-02-28 14:22:15 · 1600 阅读 · 0 评论 -
hive源码结构分析(编译器)
本文转自:http://samuschen.iteye.com/blog/860809Hive 是将 SQL 语句转换成 hadoop 的 MapReduce 程序,通常在客户端执行 hive 命令,然后输入 SQL 语句后, hive 将 SQL 语句生成多个 MR 的 job ,然后将这些 job 提交给 hadoop 进行执行,完成后,再把结果放入到hdfs 或者本地的临时文件中。转载 2013-02-28 11:29:34 · 503 阅读 · 0 评论 -
Hive官方手册翻译(Getting Started)
翻译Hive官方文档系列,文中括号中包含 注: 字样的,为我自行标注的,水平有限,翻译不是完美无缺的。如有疑问,请参照Hive官方文档对照查看。内容列表Cloudera制作的Hive介绍视频安装与配置系统需求安装Hive发行版从Hive源码编译运行Hive配置管理概览运行时配置Hive, Map-Reduc转载 2013-02-27 15:58:13 · 833 阅读 · 0 评论