zoukankan      html  css  js  c++  java
  • Hive自定义UDF的JAR包加入运行环境的方法

    Hive开发udf函数打包jar文件后,需将jar文件放入hive的运行环境,方法有三。

    hive(default) > add jar /opt/module/hive/lib/udf-1.0-SNAPSHOT.jar;

    1、进入hive,添加jar,
    add jar /opt/module/hive/lib/hiveudf.jar
    2、创建一个临时函数
    // create temporary function my_lower as 'com.example.hive.udf.LowerCase';

    create temporary function myToLow as 'My_UDF';
    3、调用
    select myToLow(name) from teacher;


    先将http://blog.csdn.net/fjssharpsword/article/details/70265554中重定义的两个类打包成DefTextInputFormat.jar,并放到/home/hdfs目录下。


    1、方法一:使用add jar命令


    1)在hive命令行下执行:add jar /home/hdfs/DefTextInputFormat.jar;

    Added [/home/hdfs/DefTextInputFormat.jar] to class path
    Added resources: [/home/hdfs/DefTextInputFormat.jar]
    该方法每次启动Hive的时候都要从新加入,退出hive就会失效。


    2)验证,建表语句如下:

    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY '#'
    STORED AS INPUTFORMAT
    'com.hive.DefTextInputFormat'
    OUTPUTFORMAT
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
    LOCATION
    'hdfs://nameservice-ha/pgw/gz';


    查询后文件和表字段一致。

    2、hive-site.xml文件配置hive.aux.jars.path:


    配置参考如下:
    <property>
    <name>hive.aux.jars.path</name>
    <value>/opt/module/hive/lib/test.jar,file:///jarpath/test.jar</value>
    </property>

    create function myToLow as 'My_UDF';

    drop function myToLow;
    该方法不需要每次启动Hive执行命令加入,需要配置文件。


    3、根目录${HIVE_HOME}下创建文件夹auxlib,然后将自定义jar文件放入该文件夹中;


    该方法方便快捷,不过对于客户端操作环境就不能执行。
    ————————————————
    版权声明:本文为CSDN博主「fjssharpsword」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/fjssharpsword/article/details/70271671

     1   <dependencies>
     2         <dependency>
     3             <groupId>org.apache.logging.log4j</groupId>
     4             <artifactId>log4j-core</artifactId>
     5             <version>2.8.2</version>
     6         </dependency>
     7         <!-- 辅助模块包 -->
     8         <dependency>
     9             <groupId>org.apache.hadoop</groupId>
    10             <artifactId>hadoop-common</artifactId>
    11             <version>3.1.3</version>
    12         </dependency>
    13         <!-- 包含mr -->
    14         <dependency>
    15             <groupId>org.apache.hadoop</groupId>
    16             <artifactId>hadoop-client</artifactId>
    17             <version>3.1.3</version>
    18         </dependency>
    19         <!-- hdfs -->
    20         <dependency>
    21             <groupId>org.apache.hadoop</groupId>
    22             <artifactId>hadoop-hdfs</artifactId>
    23             <version>3.1.3</version>
    24         </dependency>
    25 
    26         <dependency>
    27             <groupId>org.apache.hive</groupId>
    28             <artifactId>hive-exec</artifactId>
    29             <version>1.2.1</version>
    30         </dependency>
    31 
    32         <dependency>
    33             <groupId>org.apache.hive</groupId>
    34             <artifactId>hive-jdbc</artifactId>
    35             <version>1.2.1</version>
    36         </dependency>
    37 
    38         <dependency>
    39             <groupId>junit</groupId>
    40             <artifactId>junit</artifactId>
    41             <version>4.13.2</version>
    42             <scope>test</scope>
    43         </dependency>
    44     </dependencies>
    1 public class My_UDF extends UDF {
    2     public String evaluate(String str){
    3         return str.toLowerCase();
    4     }
    5 }
  • 相关阅读:
    BZOJ 3811: 玛里苟斯 线性基
    HDU 3949 XOR 线性基
    BZOJ 2115: [Wc2011] Xor 线性基 dfs
    BZOJ 3963 HDU3842 [WF2011]MachineWorks cdq分治 斜率优化 dp
    BZOJ 3262: 陌上花开 cdq分治 树状数组
    BZOJ 2653: middle 主席树 二分
    BZOJ 3524 [Poi2014]Couriers 主席树
    BZOJ 4826: [Hnoi2017]影魔 单调栈 主席树
    BZOJ 3956: Count 主席树 可持久化线段树 单调栈
    2018/4/9省选模拟赛 0分
  • 原文地址:https://www.cnblogs.com/chang09/p/15786885.html
Copyright © 2011-2022 走看看