HIVE以及OOZIE添加第三方JAR包的方法

本文原文出处: http://blog.csdn.net/bluishglc/article/details/46005269 严禁任何形式的转载,否则将委托CSDN官方维护权益!

很多时候,我们需要在HIVE中引入第三方jar包或者是自己编写的“UDF”jar包。在HIVE中,涉及指定外部jar包的配置有两个地方:

  1. hive-site.xml中的配置项“hive.aux.jars.path”
  2. 环境变量:HIVE_AUX_JARS_PATH

从目前的实验可以确定的有两点:

  1. hive.aux.jars.path配置项对于hive server有效,但是是不会作用到hive shell.也就是说即使你在hive节点上配置了这一项,但是对于hive shell来说是无效的。
  2. 环境变量HIVE_AUX_JARS_PATH对hive shell有效。

hive-site.xml配置项:hive.aux.jars.path

对于hive.aux.jars.path的配置,建议制定一个HDFS路径,jar包上传到HDFS上,这样比较方便。如果指定是本地路径,则需要确保每个节点上的对应位置上都放置了需要的jar包,这样操作起来比较麻烦。

环境变量HIVE_AUX_JARS_PATH

对于环境变量HIVE_AUX_JARS_PATH,要特别说明一下,通常我们说设置一下这个变量就可以引入相应的jar,但是在当前版本的hive下,这个变量的设值有些问题,让我们来看一下启动hive的shell脚本hive-env.sh,它里面有这样一段:

# Folder containing extra libraries required for hive compilation/execution can be controlled by:
if [ "${HIVE_AUX_JARS_PATH}" != "" ]; then
  export HIVE_AUX_JARS_PATH=${HIVE_AUX_JARS_PATH}
elif [ -d "/usr/hdp/current/hive-webhcat/share/hcatalog" ]; then
  export HIVE_AUX_JARS_PATH=/usr/hdp/current/hive-webhcat/share/hcatalog
fi

这是段脚本比较糟糕,因为一旦我们给HIVE_AUX_JARS_PATH设值,则/usr/hdp/current/hive-webhcat/share/hcatalog就会被忽略掉。这显然看起来很怪异,实际上hive只能读取一个HIVE_AUX_JARS_PATH,也就是上面这段怪异代码的主要原因。所以,一个比较好的做法是,我们可以在一个地方集中放置我们的共享jar包,然后在/usr/hdp/current/hive-webhcat/share/hcatalog下面建立一相应的软连接就可以,比如,我们把jar统一放在/usr/lib/share-lib下,然后这样建立软连接:

sudo -u hive ln -s /usr/lib/share-lib/elasticsearch-hadoop-2.1.0.Beta4.jar /usr/hdp/current/hive-webhcat/share/hcatalog/elasticsearch-hadoop-2.1.0.Beta4.jar

OOZIE中如何指定第三方JAR包

如果你的依赖到第三方JAR的HIVE脚本本身又是一个OOZIE工作流中的一环,那么我们的工作还没有完,如果你在OOZIE配置并引入第三方JAR,那么你的工作流还是会失败。对于OOZIE,引入第三方JAR的方法是oozie-site.xml中的oozie.service.WorkflowAppService.system.libpath, 我们需要配置这个选项,并把相应的JAR包上传到这个目录下。注意,这也是一个HDFS的路径!

时间: 2024-10-09 01:03:21

HIVE以及OOZIE添加第三方JAR包的方法的相关文章

使用Sonatype Nexus搭建Maven私服后如何添加第三方JAR包?

登录Nexus后,点击右侧的"Repositories",显示当前Nexus所管理的Repository, 默认情况下Nexus为我们创建了以下主要的Repository: 1.PublicRepositories,这是一个Repository Group,该Repository  Group包含了多个Repository,其中包含了Releases.Snapshots.ThirdParty和Central. 2.3rd party,该Repository即是存放你公司所购买的第三方软

【转】Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法)

原文网址:http://www.blogjava.net/anchor110/articles/355699.html 1.在工程下新建lib文件夹,将需要的第三方包拷贝进来.2.将引用的第三方包,添加进工作的build path.3.(关键的一步)将lib设为源文件夹.如果不设置,则程序编译可以通过,但运行的时候,会报: java.lang.NoClassDefFoundError # re: Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundErro

关于如何正确地在android项目中添加第三方jar包

1.下载第三方jar包 2.在android项目下创建一个libs目录(名称并不固定,你完全可以取其他名称) 3.在eclipse中右键点击libs目录,依次选择Import -> General -> File System,选中jar包所在目录, 然后选中这个目录下的jar包 注:到这一步为止你就成功地把jar包添加到项目中(但是还没有被android的虚拟机识别,因此如果这时你使用jar包中的类,编译都无法通过) 4.右键点击项目名,依次选择Build Path -> Config

Android.mk添加第三方jar包

最近引入第三方的jar包进工程,发现光红色的两条并不起作用,加入include $(BUILD_MULTI_PREBUILT) 才起作用,而且顺序很重要,在这里把我参考的两个例子都列出来. 以下为引用例子: --------------------------------------------------------------------------------------------------------------------------------------------------

Android.mk添加第三方jar包(转载)

转自:www.cnblogs.com/hopetribe/archive/2012/04/23/2467060.html LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS) LOCAL_STATIC_JAVA_LIBRARIES := xsocket jackson-mapper logging jackson-core javatar log4j LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(

Eclipse / android studio 添加第三方jar包 步骤

eclipse 将第三方包放到libs文件夹后并没有引用. 基本步骤分为3步,具体介绍如下: 打开自己的Eclipse,在自己的Android工程上名上右键->Build Path ->Configure Build Path 2. 在Libraries选项卡中,选择右侧的Add External JARs,然后选择要导入的第三方的jar包即可! 3 在Order and Export选项卡中,点击右侧的Up按钮,将刚才引入的jar包放到最上方的位置,前边的勾记得要勾上! (关于放到首位,是自

Android studio 添加第三方jar包遇到的编译不通过问题

经常会出现 Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Progr

maven手工添加第三方jar包

在cmd输入框中输入如下命令: mvn install:install-file -Dfile=D:\soft\apache-maven-3.2.3\repository\tedis-core.jar -DgroupId=com.tedis -DartifactId=tedis -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true D:\soft\apache-maven-3.2.3\repository\tedis-core.jar 为jar包存放地

Maven优雅的添加第三方Jar包

在利用Maven构建项目的时候会出现某些Jar包无法下载到本地的Repository中,鉴于这种情况比较普遍存在,特归纳以下解决问题办法:以 ojdbc14-10.2.0.4.0.jar为例[其它Jar包本地安装同理] 1:下载ojdbc14-10.2.0.4.0.jar 2:在jar包目录打开cmd命令窗口执行:mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpa