- 浏览: 2097555 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (366)
- hadoop (91)
- DB (2)
- vmware (0)
- python (49)
- Java (72)
- Linux (57)
- 多线程 (2)
- hive (1)
- hbase (3)
- mongodb (5)
- Hibernate (3)
- nodejs (1)
- 模式与重构 (1)
- 持续集成CI (4)
- Mysql (2)
- chorme (1)
- 软件开发 (0)
- 敏捷 (5)
- maven (3)
- windows (7)
- 测试驱动 (1)
- scala (3)
- Jetty (0)
- android (1)
- eclipse (1)
- 设计模式 (1)
- 面向对象设计 (2)
- oracle (3)
- cassandra (15)
- pig (3)
- rails (1)
- redis (4)
- ruby (1)
- storm (0)
- 实时运算 (3)
- scribe (1)
- hadoop源码 (3)
- cassandra jna (1)
- Kafka (2)
- Sublime (2)
- C++ (2)
- C (1)
- 版本控制 (1)
- 服务器 (1)
- docker (0)
- flink (1)
最新评论
-
伍大都督:
解释太到位了,感谢分享
理解Linux系统中的load average(图文版) -
rfjian123:
非常感谢,用你的方法解决了问题。
Server sent unexpected return value (403 Forbidden) in response to OPTIONS -
yuhaifei12:
今天遇到同样的问题了。设置的是每分钟执行一次。结果发现每分钟执 ...
解决Linux下crontab同一时间重复执行问题 -
BigBird2012:
想问一下,使用ExecutorService每次都要调用 sh ...
spring quartz使用多线程并发“陷阱” -
zhuqx1130:
有用,谢谢
解决Sublime Text 3中文显示乱码(tab中文方块)问题
问题
hive无法按照5分钟对日志分组
方案
hive UDF
实现步骤
- 创建UDF:①extends UDF ②重写evaluate方法
package com.xxx.udf; import java.math.BigDecimal; import org.apache.hadoop.hive.ql.exec.UDF; public class UDFTrunc5min extends UDF { /** * truncate 5 minute * * @param timestamp "1312128177.364" * @return */ public String evaluate(String timestamp) { try { return new BigDecimal(timestamp).multiply(new BigDecimal("1000")).longValue() / 300000 * 300000 + ""; } catch (Exception e) { return null; } } }
- 将udf打jar包,并上传到hive server上
- 运行hive cli,执行如下命令:
#添加udf jar
add jar /xxxx/xxx/my_udf.jar;
#创建临时函数,临时函数,每次打开cli都需要创建function
#如果是系统常用的函数可以发布到hive-exec项目,稍后介绍
create temporary function t5m as 'com.xx.udf.Trunc5min';
#使用udf
select t5m(time) from log group by t5m(time);
注册函数(registerUDF)
每次使用udf的时候都需要create temporary太麻烦,通过registerUDF可以免去此过程,有点麻烦需要下载,修改,编译hive-exec的源码,步骤如下:
- Eclipse创建SVN位置:
http://svn.apache.org/repos/asf/hive/tags/release-0.7.0
- 检出为Java Project
创建项目时,删除项目的src目录(hive不需要这个文件夹)
右键项目,选择Properties -> Builder -> New... ,添加“Ant Builder”。
编辑弹出窗口, Main (tab) - > buildfile -> Browe Workspace,选择hive项目的build.xml文件
点击“OK” 按钮
这时已经开始build hive项目了,要下载依赖包,等着吧。
- 添加UDF到源码
放到这里:{Hive_source}\ql\src\java\org\apache\hadoop\hive\ql\udf
- 注册函数
打开文件:{Hive_source}\ql\src\java\org\apache\hadoop\hive\ql\exec\FunctionRegistry.java
添加如下两行:
import org.apache.hadoop.hive.ql.udf.UDFTrunc5min; ... registerUDF("t5m", UDFTrunc5min.class, false);
- 将编译好的hive-exec-0.7.0.jar放到hive服务器lib下,干掉之前的jar包,就可以直接使用了,如果使用java client远程访问hive server,需要添加这个jar到自己的lib下
评论
3 楼
myemptyname
2013-07-30
mark
2 楼
heipark
2011-09-06
kezhon 写道
前辈能不能请教个问题,我在使用hive写UDF时,函数需要引用外部resource中的文件,但是运行时就报
java.io.FileNotFoundException: resource/placeMap.txt (No such file or directory)。
但是在本地运行无误。
请问可以怎么解决?非常感谢!
java.io.FileNotFoundException: resource/placeMap.txt (No such file or directory)。
但是在本地运行无误。
请问可以怎么解决?非常感谢!
分布式运行,必须保证每台datanode都可以访问到这个文件,那理论上这个文件应该放到hdfs上。
1 楼
kezhon
2011-09-06
前辈能不能请教个问题,我在使用hive写UDF时,函数需要引用外部resource中的文件,但是运行时就报
java.io.FileNotFoundException: resource/placeMap.txt (No such file or directory)。
但是在本地运行无误。
请问可以怎么解决?非常感谢!
java.io.FileNotFoundException: resource/placeMap.txt (No such file or directory)。
但是在本地运行无误。
请问可以怎么解决?非常感谢!
发表评论
-
cloudera CDH5 vmware中cloudera manager报错"Internal error while querying the Host "
2014-07-22 10:19 2063无法获取host和service状态,解决办法: s ... -
thrift0.9.1简单教程(包含Java服务端和Java、python客户端)
2014-04-25 15:55 6414一、Thrift Java服务端和客户端 官 ... -
yum错误“Error in PREUN scriptlet in rpm package ”
2014-03-10 12:07 3983打算通过yum安装软件,发展之前有软件残骸。使用yu ... -
搭建cloudera yum私服
2014-03-05 11:08 3207一、安装Cloudera yum仓库 1. 下载仓库rpm ... -
cloudera创建私服错误一例
2014-02-24 11:41 1375执行“reposync -r cloudera-cdh4 ” ... -
Cloudera Manager的Hadoop配置文件管理
2014-02-11 10:21 11460本文基于Cloudera Manager 4.8,以下简称 ... -
修改cloudera manager管理主机名(转)
2014-02-10 14:22 7646I installed the Cloudera Mana ... -
cloudera manager tasktrakcer监控状态错误
2014-02-10 11:32 1302此文用作图片外链。cloudera网站坑爹呀! -
cloudera manager 4.8 添加设备DNS反向解析问题
2014-01-28 16:20 3769添加设备时agent会使用host命令反向解析获取clou ... -
apache kafka v0.8入门遇到问题
2014-01-23 12:20 1671官方文档:https://kafka.apache.org/ ... -
hadoop2.0(cdh4) fs client错误"java.io.IOException: No FileSystem for scheme: hdfe"
2013-12-31 12:32 10063启动dfs client时候报错:“java.io.IOE ... -
Hadoop Combiner的几个调用时间点
2013-12-20 08:37 2967Combiner是在Map端被执行,共有两个时机会被触 ... -
hadoop1.0中NameNode HA的妥协方案
2013-12-10 16:26 1529hadoop1.0没有HA,可以添加NFS做为metada ... -
hdaoop2.x (CDH4、5)下使用DFS Client(包含HA)
2013-12-09 16:42 3317一、不使用HA场景 1.1 获取FileSystem(下 ... -
Hadoop学习指南
2013-11-26 14:26 1395安装配置 CDH4(hadoop2.0) 端口 C ... -
cloudera cdh中hadoop-client包的作用
2013-11-22 22:12 4119hadoop-client是为了让开发者可以很方便的使用当前 ... -
could only be replicated to 0 nodes instead of minReplication (=1)
2013-11-18 17:02 13936一、出现这个错误,先看看DN是不是正常启动并与NN通信,使用 ... -
Hadoop Pig获取HDFS文件名
2013-11-15 08:37 3218A = LOAD 'input' using PigS ... -
cloudera CDH5正式版(与CDH4比较)
2013-11-04 22:14 2517要求JDK7以上,JDK6不被支持 基于a ... -
Pig写UDF解析XML遇到一诡异错误“ClassNotFoundException”
2013-10-16 10:11 1282UDF中使用apache digester做XML解析,代码 ...
相关推荐
在Hive中,UDF(User Defined Functions)是用户自定义函数,允许开发人员扩展Hive的内置功能,以满足特定的数据处理需求。Hive UDF的实现通常涉及到编写Java代码,并将其打包成JAR(Java Archive)文件,然后在Hive...
8. **存储过程**:Hive支持自定义函数(UDF,User Defined Function)、自定义聚合函数(UDAF,User Defined Aggregate Function)和自定义表生成函数(UDTF,User Defined Table Generating Function),用户可以...
1. **UDF(User Defined Function)**:单行函数,接受一个或多个参数,返回一个结果。 2. **UDAF(User Defined Aggregation Function)**:聚合函数,用于对一组数据进行操作,如COUNT、SUM等。 3. **UDTF(User ...
Hive UDF分为三种主要类别:UDF(User Defined Scalar Functions),UDAF(User Defined Aggregate Functions),以及UDTF(User Defined Table Generating Functions)。UDF处理单行输入并返回单行输出,如字符串...
而用户定义函数(User Defined Functions, UDFs)是 Hive 提供的一种扩展其内置功能的方式,允许用户根据需求编写自定义的函数。`hive-udf-collections` 是一个专门针对 Hive 的 UDF 集合,它包含了一系列用于处理...
Hive UDF(User-Defined Functions,用户定义函数)是Hive中强大的功能,允许用户在Hive查询中使用自定义的函数来进行更复杂的操作。Hive是一个建立在Hadoop基础上的高级数据仓库工具,它允许用户使用类似SQL的语言...
大数据 Java Hive UDF 函数示例代码(手机号码脱敏)是指使用 Java 语言开发的用户定义函数(User Defined Function,UDF),该函数可以在 Hive 中使用,实现手机号码脱敏的功能。在本文中,我们将通过实例代码,...
ADD JAR /path/to/your/hiveUDF.jar; CREATE TEMPORARY FUNCTION mask AS 'com.yourpackage.MaskingUDF'; ``` 4. **使用UDF**: 注册完成后,你可以在查询中直接使用`mask`函数。假设我们有一个包含手机号码的表`...
此时,就需要通过自定义函数(User Defined Function, UDF)来扩展Hive的能力。 #### 二、Hive UDF简介 Hive UDF是指用户可以根据自己的业务需求,自定义Java类来实现特定的数据处理逻辑,并将其封装成函数的形式供...
本文将详细探讨如何在Hive中自定义User Defined Function(UDF)来实现Base64的加密和解密。 首先,我们需要了解Base64的基本原理。Base64是一种将任意二进制数据转化为ASCII字符集的方法,它通过将每3个字节转换为...
7. **Hive UDF(User Defined Function)** Hive 允许用户自定义函数(UDF),以满足特定的计算需求。源码中的 `udf` 模块包含了内置的 UDF 实现,用户也可以根据 `org.apache.hadoop.hive.ql.udf.generic....
6. **存储过程**:允许用户定义自定义函数(UDF, User Defined Function)和复杂的操作,扩展 Hive 的功能。 7. **高可用性**:Hive Server 和 Metastore 可以配置为多实例,以提高服务的可靠性。 8. **安全特性**...
然而,在实际应用中,我们可能需要根据业务需求编写自定义的UDF(User Defined Function),以满足特定的数据处理需求。下面,我们将详细介绍如何使用Java编写hive的UDF,并将其部署到hive中。 UDF的概念 在hive中...
Hive UDF(User Defined Function)允许用户定义自己的函数,用于实现复杂的数据处理任务。Hive UDF可以使用Java编写,编译后可以在Hive中使用。 10. Hive使用技巧 Hive使用技巧包括数据分区、数据压缩、查询优化...
实验报告主要涵盖了Hive的安装、配置以及基本操作,包括DDL(Data Definition Language)和DML(Data Manipulation Language)的使用,Hive与MySQL的交互,UDF(User Defined Function)的开发,以及部分调优策略的...
在Hive中,UDF(User Defined Function)是用户自定义函数,允许我们扩展Hive的功能以满足特定的业务需求。本示例主要讲解如何在Hive中实现按月份的加减操作,这在时间序列分析或周期性报告中非常常见。 标题"hive...
为了实现这样的功能,我们可以自定义UDF(User Defined Function),扩展Hive的功能。标题中的“hive时间按月份加减UDF”指的就是这样一种用户自定义的函数,它可以方便地帮助我们处理与月份增减相关的任务。 文章...
- **UDF:User-Defined Function**:用户自定义函数,用于扩展Hive的功能。 - **UDAF:User-Defined Aggregation Function**:用户自定义聚合函数,用于实现特定的聚合逻辑。 - **UDTF:User-Defined Table-...
Hive自定义函数(User Defined Function,UDF)是用户编写并集成到Hive系统中的函数,用来处理Hive不内置支持的特定计算或转换任务。UDF接受单个输入参数并返回一个结果,非常适合进行简单的数据转换和计算。 2. *...
Hive可以通过编写自定义函数(UDF, User Defined Function)、UDAF(UDAF, User Defined Aggregate Function)和UDTF(User Defined Table Generating Functions)扩展其功能,满足特定业务需求。 9. **Hive与HBase的...