文章转自:http://blog.csdn.net/qianshangding0708/article/details/50381966
以加入elsaticsearch-Hadoop-2.1.2.jar为例,讲述在Hive中加入第三方jar的几种方式。
1,在hive shell中加入
连接方式 | 是否有效 |
Hive Shell | 不需要重启Hive服务就有效 |
Hive Server | 无效 |
2,Jar放入${HIVE_HOME}/auxlib目录
在${HIVE_HOME}中创建文件夹auxlib,然后将自定义jar文件放入该文件夹中。
此方法添加不需要重启Hive。而且比较便捷。
连接方式 | 是否有效 |
Hive Shell | 不需要重启Hive服务就有效 |
Hive Server | 重启Hive服务才生效 |
3,HIVE.AUX.JARS.PATH和hive.aux.jars.path
hive-env.sh中的HIVE.AUX.JARS.PATH和hive-site.xml的hive.aux.jars.path配置对服务器无效,仅对当前hive shell有效,不同的hive shell相互不影响,每个hive shell都需要配置,可以配置成文件夹形式。
HIVE.AUX.JARS.PATH和hive.aux.jars.path仅支持本地文件。可配置成文件,也可配置为文件夹。
在${HIVE_HOME}/conf/hive-env.sh下配置:
类似的,可以在${HIVE_HOME}/conf/hive-site.xml下配置:
注:hive-env.sh中配置的HIVE_AUX_JARS_PATH和hive-site.xml配置hive.aux.jars.path参数会有冲突,在使用的时候要特别注意。
总结:经测试只有第2种方式才能在Hive Server中起效。
HIVE.AUX.JARS.PATH和hive.aux.jars.path仅支持本地文件。可配置成文件,也可配置为文件夹。
在${HIVE_HOME}/conf/hive-env.sh下配置:
类似的,可以在${HIVE_HOME}/conf/hive-site.xml下配置:
连接方式 | 是否有效 |
Hive Shell | 重启Hive服务才生效且不同的Hive Shell互不影响 |
Hive Server | 无效 |
注:hive-env.sh中配置的HIVE_AUX_JARS_PATH和hive-site.xml配置hive.aux.jars.path参数会有冲突,在使用的时候要特别注意。
4,直接将Jar加入${HIVE_HOME}/lib目录
连接方式 | 是否有效 |
Hive Shell | 重启Hive服务才生效 |
Hive Server | 重启Hive服务才生效 |
总结:经测试只有第2种方式才能在Hive Server中起效。