栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive 配置 UDF方式

Hive 配置 UDF方式

这里写自定义目录标题
  • 1.UDF编写
  • 2.Hive部署
  • 3.注册函数
  • 4.删除注册
  • 5.测试
  • 6.错误总结

1.UDF编写
通过继承hive UDF,UDAF,UDTF类进行覆盖方法,然后实现业务逻辑,进行打包【jar包】,部署,**切记注意使用的jdk版本,hive版本,与生产版本保持一致**
2.Hive部署
  • 2.1 临时部署
登陆hive cli,然后添加jar
hive (default)> add jar testUDF-0.0.1-SNAPSHOT.jar;
  • 2.2 永久部署
    • 复制到hive默认附加目录
      	 cd $HIVE_HOME
      	 mkdir auxlib
      	 cp  testUDF-0.0.1-SNAPSHOT.jar  auxlib
      
    • 依赖于hiveserver2的永久部署,上传hdfs目录
      hdfs dfs -put hdfs://wacai/application/udf/4.0.1/testUDF-0.0.1-SNAPSHOT.jar
    • 配置hive-env.sh,对本地模式下的hive访问永久部署
         cd $HIVE_HOME
         vim  conf/hive-env.sh
          export HIVE_AUX_JARS_PATH=/opt/hive/auxJarsPath
      
    • 配置hive-site.xml,对本地模式下的hive访问永久部署
      ````
      cd $HIVE_HOME
      vim conf/hive-site.xml

      hive.aux.jars.path
      file:///home/hiveUDF/Month.jar,file:///home/hiveUDF/OutZ.jar
       
3.注册函数
  • 临时注册生效,使用本地目录的jar对应的类,可以指定udf的在那个数据库生效,否则就是默认全局
	create temporary function ods.udf_func  AS 'com.jerry.cn.encrypt.DecryptUDF';
  • 永久注册
create function ods.udf_func  AS 'com.jerry.cn.encrypt.DecryptUDF' using jar 'hdfs://wacai/application/udf/4.0.1/testUDF-0.0.1-SNAPSHOT.jar';
4.删除注册
  • hive客户端删除临时注册【
hive (default)>   drop temporary function ods.udf_func;
  • hive客户端删除永久注册
hive (default)> drop function ods.udf_func;
5.测试
  • hive客户端测试/hiveserver2
hive (default)>  select udf_func("V01_LIwSPjC/N5OIynlmmxg79A==");
OK
_c0
jack
Time taken: 9.93 seconds, Fetched: 1 row(s)
6.错误总结
  • 部署udf jar后需要注册【临时,永久udf都需要注册】,否则会无法找到
hive> select udf_func('jac');
 
FAILED: SemanticException [Error 10011]: Line 1:7 Invalid function 'udf_func'
  • 部署后hiveserver2未及时同步hive udf元数据,手动重载
hive (default)> reload function;
OK
Time taken: 0.36 seconds
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/350197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号