轉(zhuǎn)自:https://www.iteblog.com/archives/871.html
Hive提供三種可以改變環(huán)境變量的方法眼坏,分別是:(1)义辕、修改${HIVE_HOME}/conf/hive-site.xml配置文件熬尺;(2)悴能、命令行參數(shù)柑贞;(3)、在已經(jīng)進(jìn)入cli時進(jìn)行參數(shù)聲明钦睡。下面分別來介紹這幾種設(shè)定。
方法一:
在Hive中躁倒,所有的默認(rèn)配置都在${HIVE_HOME}/conf/hive-default.xml文件中荞怒,如果需要對默認(rèn)的配置進(jìn)行修改,可以創(chuàng)建一個hive-site.xml文件秧秉,放在${HIVE_HOME}/conf目錄下褐桌。里面可以對一些配置進(jìn)行個性化設(shè)定。在hive-site.xml的格式如下:
hive.metastore.warehouse.dir
/user/hive/warehouse
location of
defaultdatabaseforthe warehouse
所有的配置都是放在標(biāo)簽之間象迎,一個configuration標(biāo)簽里面可以存在多個標(biāo)簽荧嵌。標(biāo)簽里面就是我們想要設(shè)定屬性的名稱;標(biāo)簽里面是我們想要設(shè)定的值砾淌;
方法二:
在啟動Hive cli的時候進(jìn)行配置啦撮,可以在命令行添加-hiveconf param=value來設(shè)定參數(shù),例如:
[wyp@master~]$ hive --hiveconf mapreduce.job.queuename=queue1
這樣在Hive中所有MapReduce作業(yè)都提交到隊列queue1中汪厨。這一設(shè)定對本次啟動的會話有效赃春,下次啟動需要重新配置。
方法三:
在已經(jīng)進(jìn)入cli時進(jìn)行參數(shù)聲明劫乱,可以在HQL中使用SET關(guān)鍵字設(shè)定參數(shù)织中,例如:
hive> set mapreduce.job.queuename=queue1;
這樣也能達(dá)到方法二的效果锥涕。這種配置也是對本次啟動的會話有效,下次啟動需要重新配置狭吼。在HQL中使用SET關(guān)鍵字還可以查看配置的值层坠,如下:
hive> set mapreduce.job.queuename;
mapreduce.job.queuename=queue1
我們可以得到mapreduce.job.queuename=queue1。如果set后面什么都不添加搏嗡,這樣可以查到Hive的所有屬性配置窿春,如下:
hive> set;
datanucleus.autoCreateSchema=true
datanucleus.autoStartMechanismMode=checked
datanucleus.cache.level2=false
datanucleus.cache.level2.type=none
datanucleus.connectionPoolingType=DBCP
datanucleus.identifierFactory=datanucleus
datanucleus.plugin.pluginRegistryBundleCheck=LOG
datanucleus.storeManagerType=rdbms
datanucleus.transactionIsolation=read-committed
datanucleus.validateColumns=false
datanucleus.validateConstraints=false
datanucleus.validateTables=false
............................
上述三種設(shè)定方式的優(yōu)先級依次遞增。即參數(shù)聲明覆蓋命令行參數(shù)采盒,命令行參數(shù)覆蓋配置文件設(shè)定旧乞。