hive
文章平均质量分 77
浅汐王
这个作者很懒,什么都没留下…
展开
-
Hive中扩展GIS函数
应用场景目前,Hive表中存在需要把经纬度转化为距离,和一些其他相关的计算函数,但是在hive中并没有集成这些函数。当然我们可以自定义UDF函数,但是现在提供一个更加简单的方法,通过源码编译的方式,集成GIS函数。环境<profile> <id>hadoop-2.7</id> <properties> ...转载 2020-04-08 09:08:21 · 70507 阅读 · 0 评论 -
使用DBeaver连接Hive数据仓库
使用Hive Shell 写复杂的长的sql语句不是很方便,没有格式化拷贝粘贴等常用操作,查询结果也不是很直观,这时我们可以使用第三方工具连接Hive进行操作,于是我们选用支持Hive的数据库客户端界面工具DBeaver进行操作。前提:1.hadoop分布式或者伪分布已经安装好2.hive已经安装好3.hive元数据存放在MySQL中4.DBeaver客户端工具准备:1...原创 2019-11-05 15:24:55 · 5232 阅读 · 1 评论 -
Hive2.0函数大全
摘要Hive内部提供了很多函数给开发者使用,包括数学函数,类型转换函数,条件函数,字符函数,聚合函数,表生成函数等等,这些函数都统称为内置函数。 目录数学函数集合函数类型转换函数日期函数条件函数字符函数聚合函数表生成函数 数学函数Return TypeNam原创 2018-01-21 19:08:01 · 209 阅读 · 0 评论 -
将自定义函数 helloUDF2 注册到hive 源码中,并且重新编译hive
环境: hive-1.1.0-cdh5.7.0 包 放在了 /root 下面 cdh 采用 cdh5.7.0 目标: 将自定义函数 helloUDF2 注册到hive 源码中,并且重新编译hive1、编写UDF (1)使用idea+maven,在maven中添加相关参数。 重要的是 hadoop-common 、hive-exec 、hive-jdbc 以下为我原创 2017-10-10 22:35:30 · 372 阅读 · 0 评论 -
hive表中字段显示为NULL时,HDFS文件中存储为\N
1. 字符串null是因为,当字段=‘’时,存储为null。利用命令 alter table adl_cici_test_fdt set serdeproperties('serialization.null.format' = '');可是实现该功能。即遇到''用null替换2. 那么\N是什么呢? 于是select id,name,age,address from adl_c...原创 2018-03-30 20:22:41 · 1029 阅读 · 0 评论 -
ORC文件存储格式
ORC文件格式是从Hive-0.11版本开始的。关于ORC文件格式的官方文档,以及基于官方文档的翻译内容这里就不赘述了,有兴趣的可以仔细研究了解一下。一、ORC文件格式 ORC的全称是(Optimized Record Columnar),使用ORC文件格式可以提高hive读、写和处理数据的能力。ORC在RCFile的基础上进行了一定的改进,所以与RCFile相比,具有以下一些优势: - 1、O...原创 2018-04-13 20:32:41 · 5884 阅读 · 0 评论 -
Hive中的count(distinct)优化
问题描述COUNT(DISTINCT xxx)在hive中很容易造成数据倾斜。针对这一情况,网上已有很多优化方法,这里不再赘述。但有时,“数据倾斜”又几乎是必然的。我们来举个例子:假设表detail_sdk_session中记录了访问某网站M的客户端会话信息,即:如果用户A打开app客户端,则会产生一条会话信息记录在该表中,该表的粒度为“一次”会话,其中每次会话都记录了用户的唯一标示u...转载 2019-03-20 14:09:38 · 4467 阅读 · 0 评论 -
记录HIve跑MR,AM无法申请资源的问题
以下是运行的日志:Query ID = mac_20190318111010_2d82bbe8-b689-4dcf-adfe-7bf7c742c669Total jobs = 3Launching Job 1 out of 3Number of reduce tasks is set to 0 since there's no reduce operatorStarting Jo...原创 2019-03-18 17:24:57 · 1046 阅读 · 0 评论 -
Hive mapjoin的执行计划解读
创建两张表,以emp表和dept表为例:create table emp(empno int, ename string, job string, mgr int, hiredate string, sal double, comm double, deptno int)row format delimited fields terminated by '\t';加载数...原创 2019-05-08 10:45:19 · 881 阅读 · 0 评论 -
Hive UDF开发案例
创建Maven项目,添加依赖<!-- 根据要连接的hadoop和hive,设置版本参数 --> <properties> <hadoop.version>2.6.0-cdh5.7.1</hadoop.version> <hive.version>1.1.0-cdh5.7.1</hive....原创 2019-05-08 11:23:40 · 371 阅读 · 0 评论 -
记录Hive另外几种方式的使用
➜ hive-1.1.0-cdh5.7.0 bin/hive -helpreadlink: illegal option -- fusage: readlink [-n] [file ...]usage: hive -d,--define <key=value> Variable subsitution to apply to hive ...原创 2019-05-08 11:33:31 · 143 阅读 · 0 评论 -
HiveServer2的使用
使用场景:1. 使用jdbc进行编程开发的时候,连接HS2更加方便2. HS2会作为长服务,所以要考虑HA的问题,实现可基于ZK来实现3. 使用客户端的方式进行访问:beeline的方式测试:启动HS2:bin/hiveserver2启动beeline进行连接:bin/beeline -u jdbc:hive2://hadoop000:10000/defa...原创 2019-05-08 14:31:59 · 1002 阅读 · 0 评论 -
Hive import/export使用总结
应用场景:数据迁移:Hive中的数据表要迁移到另一套集群上,使用导入导出命令操作官网语法:EXPORT TABLE tablename [PARTITION (part_column="value"[, ...])] TO 'export_target_path' [ FOR replication('eventid') ]IMPORT [[EXTERNAL] TABLE n...原创 2019-05-08 14:52:14 · 1162 阅读 · 0 评论 -
hive性能调优
1. 使用EXPLAIN通过EXPLAIN功能,可以帮助我们了解如何将查询转化成MapReduce任务的。 1、使用explain查看hive如何将查询转化成MapReduce任务的1.1 创建表create table onecol(number int)1.2 初始化数据并加载[hadoop@mycluster ~]$ v原创 2017-12-15 14:41:55 · 562 阅读 · 0 评论 -
HiveServer2的HA
在生产环境中使用Hive,强烈建议使用HiveServer2来提供服务,好处很多:1. 在应用端不用部署Hadoop和Hive客户端;2. 相比hive-cli方式,HiveServer2不用直接将HDFS和Metastore暴漏给用户;3. 有安全认证机制,并且支持自定义权限校验;4. 有HA机制,解决应用端的并发和负载均衡问题;5. JDBC方式,可以使用任何语言,原创 2017-12-12 14:50:55 · 448 阅读 · 0 评论 -
从mysql层面删除hive元数据
由于之前配置了hive,hdfs 被格式化了,导致现在hive上原来的元数据没有清理掉。 由于hive 上所有元数据均保存在mysql中,所以,可以从mysql上删除表相关信息即可删除hive表,而且不会影响hdfs上数据。 分析: hive在mysql上的相关元数据表关系图:解决方法: 1、先在 mysql 中建存储过程 说明: 建的存储过程名字为t1,输入为转载 2017-11-06 15:29:15 · 2703 阅读 · 0 评论 -
Hive的元数据表结构详解
1 存储Hive版本的元数据表(VERSION)该表比较简单,但很重要。VER_ID SCHEMA_VERSIONVERSION_COMMENTID主键 Hive版本 版本说明1 0.13.0 Set by MetaStore如果该表出现问题,根本进入不了Hive-Cli。比如该表不存在,当启动Hive-Cli时候,就会报错”Table ‘hiv原创 2017-10-08 23:28:14 · 479 阅读 · 0 评论 -
Hive中Join的原理和机制
笼统的说,Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join)。本文简单介绍一下两种join的原理和机制。1 Hive Common Join如果不指定MapJoin或者不符合MapJoin的条件,那么Hive解析器会将Join操作转换成Common Join,即:在Reduce阶段完成join.整个过程包原创 2017-10-08 23:22:40 · 815 阅读 · 0 评论 -
Hive 设置map 和 reduce 的个数
一、 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务。 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改);2. 举例: a) 假设input原创 2017-10-08 23:01:19 · 303 阅读 · 0 评论 -
hive组件和执行过程
对Hive的基本组成进行了总结:1、组件:元存储(Metastore )-存储“系统目录以及关于表、列、分区等的元数据”的组件。驱动(Driver )- 控制 HiveQL 生命周期的组件,当 HiveQL 查询穿过 Hive时。该驱动管理着会话句柄以及任何会话的统计。查询编译器(Query Compiler) - 是一个组件,将HiveQL编译成有向无环图(directed原创 2017-10-08 22:57:05 · 272 阅读 · 0 评论 -
Hive严格模式
Hive严格模式Hive提供了一个严格模式,可以防止用户执行那些可能产生意向不到的不好的效果的查询。说通俗一点就是这种模式可以阻止某些查询的执行。通过如下语句设置严格模式:[java] view plain copyhive> set hive.mapred.mode=strict; 设置为严格模式后,可以禁止3种类型的查询:原创 2017-10-08 22:43:03 · 256 阅读 · 0 评论 -
Hive优化之小文件问题及其解决方案
小文件是如何产生的1.动态分区插入数据,产生大量的小文件,从而导致map数量剧增。2.reduce数量越多,小文件也越多(reduce的个数和输出文件是对应的)。3.数据源本身就包含大量的小文件。小文件问题的影响1.从Hive的角度看,小文件会开很多map,一个map开一个JVM去执行,所以这些任务的初始化,启动,执行会浪费大量的资源,严重影响性能。2.在HDFS中转载 2017-10-08 22:41:46 · 1091 阅读 · 0 评论 -
Hive数据类型
1.hive常用的数据类型包括:2.类型转换 隐式转换规则:任何整数类型都可以隐式转换为一个范围更广的类型。所有整数类型 + float + String都可以转换为Double类型。 可以使用cast操作进行数据类型显示转换。例如cast('1' as int)把字符串'1'转换成整数值1,转换失败则表达式返回空值NULL。 --将Double类型的工原创 2017-10-08 22:32:30 · 338 阅读 · 0 评论 -
Hive的安装
Hive只需在使用节点安装即可。1.上传tar包、解压 tar -zxvf apache-hive-0.13.0-bin.tar.gz -C /hadoop/ 配置HIVE_HOME环境变量 /etc/profile2.安装mysql rpm -qa | grep mysql rpm -e mysql-libs-5.1.66-2.e原创 2017-10-08 22:28:14 · 165 阅读 · 0 评论 -
Hive SQL的编译过程
Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用。美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析。Hive的稳定性和性能对我们的数据分析非常关键。在几次升级Hive的过程中,我们遇到了一些大大小小的问题。通过向社区的咨询和自己的努力,在解决这些问题的同时我们对Hive将SQL编译为MapReduce的过程有转载 2017-10-10 23:12:47 · 508 阅读 · 0 评论 -
几个日期相关的自定义函数
WeeksFunc用于获取指定日期为日期所在年的第几周public class WeeksFunc extends UDF { /** * 获取指定日期所在周为当年内的第几周,以周一为每周的第一天(注意如果最后一周跨年,java默认将最后那几天归入下一年的第一周) * @param formats 如果不传参数,则默认以当天为基准,否则format[0]为日期字符串,f转载 2017-10-10 23:00:36 · 342 阅读 · 0 评论 -
Hive计算日期差
首先,hive本身有一个UDF,名字是datediff。我们来看一下这个日期差计算的官方描述,(下面这个是怎么出来的):hive> desc function extended datediff;OKdatediff(date1, date2) - Returns the number of days between date1 and date2date1 and date2 ar转载 2017-10-10 22:57:02 · 93412 阅读 · 0 评论 -
Hive四种数据导入方式
Hive的几种常见的数据导入方式这里介绍四种:(1)、从本地文件系统中导入数据到Hive表;(2)、从HDFS上导入数据到Hive表;(3)、从别的表中查询出相应的数据并导入到Hive表中;(4)、在创建表的时候通过从别的表中查询出相应的记录并插入到所创建的表中。一、从本地文件系统中导入数据到Hive表先在Hive里面创建好表,如下:hive>原创 2017-10-08 22:52:49 · 217 阅读 · 0 评论 -
Hive概述及入门
MapReduce编程的不便性以及Hive的产生背景 1)MapReduce繁琐MapperReducerDriverpackage2)大量数据都存放在HDFS,如何快速的对HDFS上的文件进行统计分析操作?学Java、学MapReduceDBA: SQLHDFS: 仅仅只是一个纯的文本文件而已,并没有schema的概念没有schema,那么就办法使用s原创 2017-10-14 21:43:01 · 372 阅读 · 0 评论 -
hive udf开发以及永久注册udf函数
网上大部分资料显示注册 Hive udf 函数大体有两种方法:第一种、创建临时函数。如在hive CLI执行下面命令:hive> add jar helloudf.jar;hive> create temporary function helloworld as 'com.hrj.hive.udf.helloUDF';hive> select helloworld(原创 2017-10-07 16:03:57 · 1500 阅读 · 0 评论