hive
文章平均质量分 80
xiaoL_clo
总是三分钟热度的学习,希望这次坚持得久一点
展开
-
大数据时代的技术hive:hive介绍
我最近研究了hive的相关技术,有点心得,这里和大家分享下。 首先我们要知道hive到底是做什么的。下面这几段文字很好的描述了hive的特性: 1.hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapR转载 2016-01-07 17:05:10 · 629 阅读 · 0 评论 -
Hive SQL的编译过程
转载,原链接地址:http://tech.meituan.com/hive-sql-to-mapreduce.htmlHive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用。美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析。Hive的稳定性和性能对我们的数据分析非常关键。在几次升级Hive的过程中,我们遇到转载 2017-07-05 13:11:30 · 366 阅读 · 0 评论 -
Hive UDAF开发
Hive进行UDAF开发,相对要比UDF复杂一些,不过也不是很难。请看一个例子package org.hrj.hive.udf;import org.apache.hadoop.hive.ql.exec.UDAFEvaluator;import org.apache.hadoop.hive.serde2.io.DoubleWritable; public转载 2017-07-03 18:44:19 · 586 阅读 · 0 评论 -
Hive UDF开发
Hive进行UDF开发十分简单,此处所说UDF为Temporary的function,所以需要hive版本在0.4.0以上才可以。Hive的UDF开发只需要重构UDF类的evaluate函数即可。例:package com.hrj.hive.udf;import org.apache.hadoop.hive.ql.exec.UDF;public class hell转载 2017-07-03 18:43:10 · 262 阅读 · 0 评论 -
Hive自定义UDF和聚合函数UDAF
Hive是一种构建在Hadoop上的数据仓库,Hive把SQL查询转换为一系列在Hadoop集群中运行的MapReduce作业,是MapReduce更高层次的抽象,不用编写具体的MapReduce方法。Hive将数据组织为表,这就使得HDFS上的数据有了结构,元数据即表的模式,都存储在名为metastore的数据库中。 可以在hive的外壳环境中直接使用dfs访问hadoop的转载 2017-07-03 15:20:34 · 1412 阅读 · 0 评论 -
Hive自定义UDF的JAR包加入运行环境的方法
Hive开发udf函数打包jar文件后,需将jar文件放入hive的运行环境,方法有三。先将http://blog.csdn.net/fjssharpsword/article/details/70265554中重定义的两个类打包成DefTextInputFormat.jar,并放到/home/hdfs目录下。1、方法一:使用add jar命令 1)在Hiv转载 2017-07-03 14:50:53 · 4066 阅读 · 0 评论 -
hive中order by,sort by, distribute by, cluster by作用以及用法
1. order by Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。 这里跟传统的sql还有一点转载 2017-05-17 14:05:01 · 417 阅读 · 0 评论 -
使用Hive实现时间拉链功能
背景:在数据仓库的数据模型设计过程中,经常会遇到如下的业务需求:1. 表的数据量很大,大几千万或上亿;2. 表中的部分字段会被update更新操作,如用户的上级领导,产品的描述信息,订单的状态等等;3. 需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态;4. 变化的比例和频率不是很大,比如,总共有8000万的用户,每天新增和发生变化转载 2017-05-17 11:13:54 · 462 阅读 · 0 评论 -
hive的几种文件格式
Hive文件存储格式1.textfiletextfile为默认格式存储方式:行存储磁盘开销大 数据解析开销大压缩的text文件 hive无法进行合并和拆分2.sequencefile二进制文件,以的形式序列化到文件中存储方式:行存储可分割 压缩一般选择block压缩优势是文件和Hadoop api中的mapfile是相互兼容的。3.rcf转载 2017-05-17 10:34:50 · 487 阅读 · 0 评论 -
从Hive表中进行数据抽样-Sampling
在Hive中提供了数据取样(SAMPLING)的功能,用来从Hive表中根据一定的规则进行数据取样,Hive中的数据取样支持分桶表取样和数据块取样。16.1 数据块取样(Block Sampling)block_sample: TABLESAMPLE (n PERCENT)根据输入的inputSize,取样n%。比如:输入大小为1G,TABLESAMPLE (50转载 2017-05-11 19:48:17 · 12201 阅读 · 0 评论 -
Hive最新数据操作详解(超级详细)
数据操作能力是大数据分析至关重要的能力。数据操作主要包括:更改(exchange),移动(moving),排序(sorting),转换(transforming)。Hive提供了诸多查询语句,关键字,操作和方法来进行数据操作。一、 数据更改 数据更改主要包括:LOAD, INSERT, IMPORT, and EXPORT1. LOAD DATA load关键字的作用是将数据移动到hive中。如果转载 2017-04-27 10:20:54 · 11335 阅读 · 1 评论 -
Hive函数大全
Hive函数大全–完整版现在虽然有很多SQL ON Hadoop的解决方案,像Spark SQL、Impala、Presto等等,但就目前来看,在基于Hadoop的大数据分析平台、数据仓库中,Hive仍然是不可替代的角色。尽管它的相应延迟大,尽管它启动MapReduce的时间相当长,但是它太方便、功能太强大了,做离线批量计算、ad-hoc查询甚至是实现数据挖掘算法,而且,和HBase、Sp转载 2017-04-26 13:47:32 · 4090 阅读 · 0 评论 -
Hive数据倾斜(大表join大表)
业务背景用户轨迹工程的性能瓶颈一直是etract_track_info,其中耗时大户主要在于trackinfo与pm_info进行左关联的环节,trackinfo与pm_info两张表均为GB级别,左关联代码块如下:from trackinfo a left outer join pm_info b on (a.ext_field7 = b.id) 123123使用以上代码转载 2017-07-10 11:08:12 · 1724 阅读 · 2 评论 -
SQL join中级篇--hive中 mapreduce join方法分析
1. 概述。本文主要介绍了mapreduce框架上如何实现两表JOIN。2. 常见的join方法介绍假设要进行join的数据分别来自File1和File2.2.1 reduce side joinreduce side join是一种最简单的join方式,其主要思想如下:在map阶段,map函数同时读取两个文件File1和File2,为了区分两种来源的key/value数据转载 2017-07-10 11:29:37 · 868 阅读 · 0 评论 -
Hive性能优化
1.概述 继续《那些年使用Hive踩过的坑》一文中的剩余部分,本篇博客赘述了在工作中总结Hive的常用优化手段和在工作中使用Hive出现的问题。下面开始本篇文章的优化介绍。2.介绍 首先,我们来看看Hadoop的计算框架特性,在此特性下会衍生哪些问题?数据量大不是问题,数据倾斜是个问题。jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联转载 2017-07-14 20:00:21 · 517 阅读 · 0 评论 -
大数据时代的技术hive:hive的数据类型和数据模型
在上篇文章里,我列举了一个简单的hive操作实例,创建了一张表test,并且向这张表加载了数据,这些操作和关系数据库操作类似,我们常把hive和关系数据库进行比较,也正是因为hive很多知识点和关系数据库类似。 关系数据库里有表(table),分区,hive里也有这些东西,这些东西在hive技术里称为hive的数据模型。今天本文介绍hive的数据类型,数据模型以及文件存储格式。这些知识大转载 2016-01-07 17:15:22 · 949 阅读 · 1 评论 -
Hive metastore三种存储方式
测试环境下Hive总出问题,metastore的配置有问题。抽了点时间,把Hive的meta数据几种存储方式都配置了下。Hive的meta 数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储。远端存储比较适合生产环境。Hive官方wiki详细介绍了这三种方式,链接为:Hive Metastore 。一、使用derby数据库存储元数据。这种方式是最简单的存储方式,只需转载 2016-01-08 10:22:31 · 1496 阅读 · 0 评论 -
hive 使用oralce 存储元数据
hive 使用oracle 作为元数据存储的时候,创建表会遇到此错误: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: An exception转载 2016-01-08 14:30:01 · 751 阅读 · 0 评论 -
hive使用遇到的问题
1、HQL子查询别名问题 HQL的书写,select * from (select * from table) ; 执行此HQL,应该会报错:ql.Driver (SessionState.java:printError(960)) - FAILED: ParseException line 48:52 cannot recognize input near '' '' '原创 2016-03-15 14:10:50 · 54257 阅读 · 0 评论 -
Hive开发经验问答式总结
转载自:http://www.crazyant.net/1625.htmlHive开发经验思维导图文档目录向Hive程序传递变量的方式方法1:字符串、正则、模板引擎等暴力方式替换方法2:使用系统变量或者环境变量方法3:在执行Hive命令时传入hivevar和hiveconfOrder by和Sort by的区别?遇到SQL无法实现的逻辑该转载 2016-03-15 15:54:12 · 1266 阅读 · 0 评论 -
Hive小文件问题的处理
Hive的后端存储是HDFS,它对大文件的处理是非常高效的,如果合理配置文件系统的块大小,NameNode可以支持很大的数据量。但是在数据仓库中,越是上层的表其汇总程度就越高,数据量也就越小。而且这些表通常会按日期进行分区,随着时间的推移,HDFS的文件数目就会逐渐增加。小文件带来的问题关于这个问题的阐述可以读一读Cloudera的这篇文章。简单来说,HDFS的文件元信息,包括位置转载 2016-03-19 17:33:32 · 3855 阅读 · 0 评论 -
hive使用中遇到的问题2
遇到了奇葩的问题,如下: select m9.serial_id, m9.max_trade_time from (select m0.serial_id, m0.round_id, m0.max_trade_time, m0.bet_change_times from base_原创 2016-04-12 15:44:07 · 2393 阅读 · 0 评论 -
Hive JOIN使用详解
Hive是基于Hadoop平台的,它提供了类似SQL一样的查询语言HQL。有了Hive,如果使用过SQL语言,并且不理解Hadoop MapReduce运行原理,也就无法通过编程来实现MR,但是你仍然可以很容易地编写出特定查询分析的HQL语句,通过使用类似SQL的语法,将HQL查询语句提交Hive系统执行查询分析,最终Hive会帮你转换成底层Hadoop能够理解的MR Job。对于最基本的HQ转载 2016-07-04 11:32:06 · 2425 阅读 · 0 评论 -
hive数据迁移
项目中需要把开发环境中的表与数据迁移到生产环境,Hive中没有提供直接工具,但是可以利用hive提供的export/import 工具实现批量同步。具体使用参考 ImportExport1. 设置默认需要导出的hive数据库vi ~/.hivercuse logbase;2. 创建数据临时目录hdfs dfs -mkdir /tmp/转载 2016-10-21 09:23:46 · 636 阅读 · 0 评论 -
Hive-hive.groupby.skewindata配置相关问题调研
使用Hive的过程中,我们习惯性用set hive.groupby.skewindata=true来避免因数据倾斜造成的计算效率问题,但是每个设置都是把双刃剑,最近调研了下相关问题,现总结如下:从下表可以看出,skewindata配置真正发生作用,只会在以下三种情况下,能够将1个job转化为2个job: select count distinct ... from ...selec转载 2017-09-07 20:34:33 · 1969 阅读 · 0 评论 -
hive计算map数和reduce数
Hadoop在运行一个mapreduce job之前,需要估算这个job的maptask数和reducetask数。首先分析一下job的maptask数,当一个job提交时,jobclient首先分析job被拆分的split数量,然后吧job.split文件放置在HDFS中,一个job的MapTask数量就等于split的个数。job.split中包含split的个数由FileIn转载 2017-09-07 20:33:33 · 3360 阅读 · 0 评论 -
Hive内置数据类型
Hive的内置数据类型可以分为两大类:(1)、基础数据类型;(2)、复杂数据类型。其中,基础数据类型包括:TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CHAR,VARCHAR,DATE。下面的表格列出这些基础类型所占的字节以及从什么版本开始支持这些类型。数据类型转载 2016-12-12 15:17:04 · 572 阅读 · 0 评论