hive须要引入包时?该怎么引入?shell
注意若是你的hive服务的和cli端是在同一台机器上,那么直接在hive-env.sh中的HIVE.AUX.JARS.PATH设置指向hive/lib下便可,把须要的包加到lib下,和配置hive-site.xml中的hive.aux.jars.path的效果是同样的。服务器
1、hive-site.xml中的hive.aux.jars.pathapp
此配置项对于hive server有效,可是是不会做用到hive shell.也就是说即便你在hive节点上配置了这一项,可是对于hive shell来讲是无效的(为何会这样?难道不是服务器配置了,全部的hive shell都能生效吗?搞不懂)。可是在hive-site.xml的模板文件中找不到hive.aux.jars.path的配置,是否是hive正慢慢改变用户放弃配置此属性呢?oop
注意:1,目前只支持file://也就是本地文件,暂不支持HDFS,也不支持文件夹。2,多个文件使用逗号分隔。3,不能换行。ui
有相似hbase-0.94.15-cdh4.7.0.jar包时,可使用以下配置:spa
<property> <name>hive.aux.jars.path</name> <value>file:///home/cdh/apps/hive-0.10.0-cdh4.7.0/lib/hive-hbase-handler-0.10.0-cdh4.7.0.jar,file:///home/cdh/apps/hive-0.10.0-cdh4.7.0/lib/hbase-0.94.15-cdh4.7.0.jar,file:///home/cdh/apps/hive-0.10.0-cdh4.7.0/lib/zookeeper-3.4.5-cdh4.7.0.jar,file:///home/cdh/apps/hive-0.10.0-cdh4.7.0/lib/antlr-runtime-3.4.jar</value> </property>
没有相似hbase-0.94.15-cdh4.7.0.jar包时,可使用以下配置:.net
<property> <name>hive.aux.jars.path</name> <value>file:///home/hadoop/apps/hive-0.12.0-cdh5.1.0/lib/hive-hbase-handler-0.12.0-cdh5.1.0.jar,file:///home/hadoop/apps/hive-0.12.0-cdh5.1.0/lib/hbase-client-0.98.1-cdh5.1.0.jar,file:///home/hadoop/apps/hive-0.12.0-cdh5.1.0/lib/hbase-common-0.98.1-cdh5.1.0.jar,file:///home/hadoop/apps/hive-0.12.0-cdh5.1.0/lib/zookeeper-3.4.5-cdh5.1.0.jar,file:///home/hadoop/apps/hive-0.12.0-cdh5.1.0/lib/hbase-server-0.98.1-cdh5.1.0.jar,file:///home/hadoop/apps/hive-0.12.0-cdh5.1.0/lib/hbase-common-0.98.1-cdh5.1.0-tests.jar,file:///home/hadoop/apps/hive-0.12.0-cdh5.1.0/lib/hbase-protocol-0.98.1-cdh5.1.0.jar,file:///home/hadoop/apps/hive-0.12.0-cdh5.1.0/lib/htrace-core-2.04.jar</value> </property>
2、hive-env.sh中的HIVE.AUX.JARS.PATHcode
hive-env.sh中的HIVE.AUX.JARS.PATH对服务器无效,仅对当前hive shell有效,不一样的hive shell相互不影响,每一个hive shell都须要配置,能够配置成文件夹形式。server
注意:1,根据hive启动脚本,此属性应该也只支持file://也就是本地文件,暂不支持HDFS,没有作验证。2,此配置能够配置文件,也能够配置成文件夹,建议配置成文件夹。xml
可使用以下配置:
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib
3、使用add jar
使用add jar应该也对服务器无效,仅对当前hive shell有效(没验证过),add jar 建议制定一个HDFS路径,jar包上传到HDFS上,这样比较方便。若是指定是本地路径,则须要确保每一个hive shell节点上的对应位置上都放置了须要的jar包,这样操做起来比较麻烦。
可使用以下命令:
add jar hdfs://hadoop01:9000/user/hive/share/HiveUdf.jar; delete jar hdfs://hadoop01:9000/user/hadoop/share/HiveUdf.jar;