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;