hive
love others as self
love others as self! ----愿美梦成真!
展开
-
Hive分区、分桶操作及其比较
1,Hive分区。 是指按照数据表的某列或某些列分为多个区,区从形式上可以理解为文件夹,比如我们要收集某个大型网站的日志数据,一个网站每天的日志数据存在同一张表上,由于每天会生成大量的日志,导致数据表的内容巨大,在查询时进行全表扫描耗费的资源非常多。那其实这个情况下,我们可以按照日期对数据表进行分区,不同日期的数据存放在不同的分区,在查询时只要指定分区字段的值就可以直接从该分区查找。转载 2016-11-28 17:31:04 · 2903 阅读 · 0 评论 -
HIVE中get_json_object与json_tuple使用
hive中提供了两种针对json数据格式解析的函数,即get_json_object(…)与json_tuple(…),理论不多说,直接上效果示意图:假设存在如下json数据对象,若使用hive环境可这么设置:set hivevar:msg={"message":"2015/12/08 09:14:4", "client": "10.108.24.253", "server":转载 2017-09-29 15:44:11 · 7360 阅读 · 0 评论 -
org.apache.hadoop.hive.serde2.SerDeException: Row is not a valid JSON Object
重要的是每行必须是一个完整的JSON,一个JSON不能跨越多行,也就是说,serde不会对多行的Json有效。 因为这是由Hadoop处理文件的工作方式决定,文件必须是可拆分的,例如,Hadoop将在行尾分割文本文件。// this will work{ "key" : 10 }// this will not work{ "key" : 10 }2. 下载Jar转载 2017-09-15 17:36:53 · 2627 阅读 · 0 评论 -
hive array、map、struct使用
注意:字段中有这个类型才需写 MAP KEYS TERMINATED BY ':' COLLECTION ITEMS TERMINATED BY ',' hive提供了复合数据类型:Structs: structs内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域aMaps(K-V对):访问转载 2017-08-16 15:01:42 · 497 阅读 · 0 评论 -
UDTF详解
1. UDTF介绍UDTF(User-Defined Table-Generating Functions) 用来解决 输入一行输出多行(On-to-many maping) 的需求。 2. 编写自己需要的UDTF继承org.apache.hadoop.hive.ql.udf.generic.GenericUDTF,实现initialize, process, cl转载 2017-01-16 10:49:37 · 9052 阅读 · 0 评论 -
Inceptor占位符问题,Numbers of PlaceHolder doesnot match...
这里语法问题是inceptor plsql中插入时不支持时间里有冒号,需要转义,可以用regex_replace匹配替换冒号regex_replace(timestamp,'\:','\\\\\:')原创 2017-07-15 20:21:29 · 1075 阅读 · 0 评论 -
Hive ORC和Parquet
相比传统数据库的行式存储引擎,列式存储引擎具有更高的压缩比,更少的IO操作,尤其是在数据列很多,但每次操作仅针对若干列进行查询和计算的情景,列式存储引擎的性价比更高。目前在开源实现中,最有名的列式存储引擎莫过于Parquet和ORC,并且他们都是Apache的顶级项目,在数据存储引擎方面发挥着重要的作用。本文将重点讲解ORC文件存储格式,Parquet暂不深入说明,后续抽时间整理。转载 2017-03-28 17:43:41 · 3761 阅读 · 0 评论 -
HIVE 动态分区与静态分区
HIVE分区,实际上是通过一个路径来标识的,而不是在物理数据中。比如每天的数据,可能分区是pt=20121023这样,那么路径中它就会变成:/hdfs/path/pt=20121023/data_files。通过路径来标识的好处是,如果我们需要取特定分区的数据,只需要把这个路径下的数据取出来就可以了,不用扫描全部的数据。HIVE默认是静态分区。但是有时候可能需要动态创建不同的分区,比如转载 2017-02-27 10:57:15 · 368 阅读 · 0 评论 -
如何配置hive session过期时间
hive.server2.session.check.interval 60000 hive.server2.idle.session.timeout 3600000在hive-site.xml添加上这两个参数试试一定要在页面添加参数,然后配置服务,然后重启启动inceptorserver观察一段时间试试参数配置原因:session时间到了,连接断开,零时原创 2017-02-20 18:17:49 · 9350 阅读 · 0 评论 -
hive 永久udf函数
开发环境:cdh5.4.8,hive1.1最近需要开发一些永久的函数供业务使用,在hive的早期版本中,只能添加临时函数或者修改一些源代码来添加永久函数,后面找到了下面的文档来创建永久函数Permanent FunctionsIn Hive 0.13 or later, functions can be registered to the metastore, so they转载 2017-02-06 11:03:55 · 4126 阅读 · 1 评论 -
Hive配置文件中配置项的含义详解(收藏版)
这里面列出了hive几乎所有的配置项,下面问题只是说出了几种配置项目的作用。更多内容,可以查看内容问题导读:1.hive输出格式的配置项是哪个?2.hive被各种语言调用如何配置?3.hive提交作业是在hive中还是hadoop中?4.一个查询的最后一个map/reduce任务输出是否被压缩的标志,通过哪个配置项?5.当用户自定义了UDF或者SerDe,这些插件的jar都转载 2017-02-06 10:05:57 · 2165 阅读 · 0 评论 -
Hive Serde
序列化作用序列化是对象转换为字节序列的过程。 反序列化是字节序列恢复为对象的过程。 对象的序列化主要有两种用途:对象的持久化,即把对象转换成字节序列后保存到文件中;对象数据的网络传送。 除了上面两点, hive的序列化的作用还包括:Hive的反序列化是对key/value反序列化成hive table的每个列的值。Hive可以方便的将数据加载到表中而不需要对数据进行转换,这样在处理海量数据时可...转载 2018-08-27 08:27:45 · 3963 阅读 · 0 评论