资讯专栏INFORMATION COLUMN

Hive将UDF编译到源码中(idea)

forrest23 / 1222人阅读

摘要:有时候需要改写源码,比如将常用的某个放在源码中,启动即可使用。所以推荐使用来完成改源码的操作,好处不言而喻。这是因为在环境不能执行。同名文件夹是这个包解压后的文件夹,上传到可直接使用,免解压。

有时候需要改写源码,比如将常用的某个UDF放在源码中,启动即可使用。在Linux上直接改写源码是很容易出错的,因为vim没有检测提示,直到打包时过了很久才报错,并找到日志才发现是哪里写错了,而且提示的也不清楚。所以推荐使用idea来完成改源码的操作,好处不言而喻。

1.下载解压hive源码,用idea打开为Maven项目(jdk1.8),这时所有的依赖就会自动下载

2.将写好的UDF的java代码放在org.apache.hadoop.hive.ql.udf包下

3.在org.apache.hadoop.hive.ql.exec.FunctionRegistry类中静态代码块添加注册

4.Maven打包

1)点掉tests,相当于-DskipTests=true

2)命令行添加-e,可以输出错误栈信息


3)Profiles填写hadoop-2 dist,相当于-Phadoop-2,dist(如上图)

运行报错:

Caused by: java.io.IOException: Cannot run program "bash" (in directory "F:IdeaProjectshive-1.1.0-cdh5.7.0common"): CreateProcess error=2, 系统找不到指定的文件。

这是因为在Windows环境不能执行bash。那么需要能执行bash环境,有一个神器:Git
安装git后,打开Git Bash,即可在Windows系统中执行Linux命令了!
cd到hive源码项目根目录,执行mvn -e clean package -Phadoop-2,dist -DskipTests=true

注意事项:需要配置Maven环境变量,并且一定要写%M2_HOME%而非%MAVEN_HOME%

编译成功后,在项目根目录下的packaging/target下会生成tar包和一个同名文件夹,如下图。同名文件夹是这个tar包解压后的文件夹,上传到Linux可直接使用,免解压。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74291.html

相关文章

  • Spark SQL知识点与实战

    摘要:是最新的查询起始点,实质上是和的组合,所以在和上可用的在上同样是可以使用的。转换为转换为其实就是对的封装,所以可以直接获取内部的注意此时得到的存储类型为是具有强类型的数据集合,需要提供对应的类型信息。Spark SQL概述1、什么是Spark SQLSpark SQL是Spark用于结构化数据(structured data)处理的Spark模块。与基本的Spark RDD API不同,Sp...

    番茄西红柿 评论0 收藏2637
  • Spark SQL知识点大全与实战

    摘要:本文发于我的个人博客知识点大全与实战我正在大数据技术派和朋友们讨论有趣的话题,你也来加入吧概述什么是是用于结构化数据处理的模块。是最新的查询起始点,实质上是和的组合,所以在和上可用的在上同样是可以使用的。 关注公众号:大数据技术派,回复资料,领取1000G资料。本文发于我的个人博客:Spark SQL知识点大全...

    番茄西红柿 评论0 收藏2637
  • OPPO数据台之基石:基于Flink SQL构建实数据仓库

    摘要:实际上,本身就预留了与外部元数据对接的能力,分别提供了和这两个抽象。对接外部数据源搞清楚了注册库表的过程,给我们带来这样一个思路如果外部元数据创建的表也能被转换成可识别的,那么就能被无缝地注册到。 本文整理自 2019 年 4 月 13 日在深圳举行的 Flink Meetup 会议,分享嘉宾张俊,目前担任 OPPO 大数据平台研发负责人,也是 Apache Flink contrib...

    jeffrey_up 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<