Hive学习之部署UDF的四种方法

        在向Hive添加自定义的UDF或者添加Hive自带的类,如GenericUDFDBOutput时,需要将包含UDF类的Jar包添加到Hive环境中,这样就可以使用Create [temporary]function创建函数了,添加UDF Jar包有四种方法,下面分别进行介绍。

       第一种是最常见但也不招人喜欢的方式是使用ADD JAR(s)语句,之所以说是不招人喜欢是,通过该方式添加的jar文件只存在于当前会话中,当会话关闭后不能够继续使用该jar文件,最常见的问题是创建了永久函数到metastore中,再次使用该函数时却提示ClassNotFoundException。所以使用该方式每次都要使用ADD JAR(s)语句添加相关的jar文件到Classpath中。

       第二种是修改hive-site.xml文件。修改参数hive.aux.jars.path的值指向UDF文件所在的路径。在hive-0.13中,该参数需要手动添加到hive-site.xml文件中,在HiveConf类中,该参数的值为空。

       第三种方法是在${HIVE_HOME}下创建auxlib目录,将UDF文件放到该目录中,这样hive在启动时会将其中的jar文件加载到classpath中。

       第四种方法设置HIVE_AUX_JARS_PATH环境变量,变量的值为放置jar文件的目录,可以拷贝${HIVE_HOME}/conf中的hive-env.sh.template为hive-env.sh文件,并修改最后一行的#export HIVE_AUX_JARS_PATH=为exportHIVE_AUX_JARS_PATH=jar文件目录来实现,或者在系统中直接添加HIVE_AUX_JARS_PATH环境变量。

  

你可能感兴趣的:(hive,udf,auxlib)