1. 删除原函数和jar包
1.1 在hive窗口e中执行删除原函数
hive>DROP FUNCTION msgloanappsproc;
1.2 在beeline中执行删除jar包
hive (default)> list jars;
/tmp/448a59e7-5ef8-4b76-8eed-ba04c73e126a_resources/udf-1.0.jar
hive (default)> delete jar hdfs:///user/hive/warehouse/extlib/udf-1.0.jar;
hive (default)> list jars;
/tmp/448a59e7-5ef8-4b76-8eed-ba04c73e126a_resources/udf-1.0.jar
hive (default)> delete jar /tmp/448a59e7-5ef8-4b76-8eed-ba04c73e126a_resources/udf-1.0.jar;
Deleted [/tmp/448a59e7-5ef8-4b76-8eed-ba04c73e126a_resources/udf-1.0.jar] from class path
hive (default)> list jars;
hive (default)>
1.3 从hdfs上删除jar包
hdfs dfs -rm -f -skipTrash /user/hive/warehouse/extlib/udf-1.0.jar
2 重新上传jar包,注册函数
2.1 上传新的jar包到hdfs
hdfs dfs -put -f /home/hadoop/shell/udf/udf-1.0.jar /user/hive/warehouse/extlib/
2.2 在hive窗口中执行添加jar包
hive> add jar hdfs:///user/hive/warehouse/extlib/udf-1.0.jar;
2.3 在hive窗口中执行注册永久函数
hive> create function msgloanappsproc as "udf_ltf.MsgLoanAppsProc" using jar 'hdfs:///user/hive/warehouse/extlib/udf-1.0.jar';
2.4 在hive窗口中查看结果
hive>show functions like '*Proc';
3 重启所有节点的hive server服务,UDF生效。