Hive設置參數的三種方法


Hive提供三種可以改變環境變量的方法,分別是:(1)、修改${HIVE_HOME}/conf/hive-site.xml配置文件;(2)、命令行參數;(3)、在已經進入cli時進行參數聲明。下面分別來介紹這幾種設定。

  方法一:
  在Hive中,所有的默認配置都在${HIVE_HOME}/conf/hive-default.xml文件中,如果需要對默認的配置進行修改,可以創建一個hive-site.xml文件,放在${HIVE_HOME}/conf目錄下。里面可以對一些配置進行個性化設定。在hive-site.xml的格式如下:

1 <configuration>
2     <property>
3         <name>hive.metastore.warehouse.dir</name>
4         <value>/user/hive/warehouse</value>
5         <description>location of
6               default database for the warehouse</description>
7     </property>
8 </configuration>

  所有的配置都是放在<configuration></configuration>標簽之間,一個configuration標簽里面可以存在多個<property></property>標簽。<name>標簽里面就是我們想要設定屬性的名稱;<value>標簽里面是我們想要設定的值;<description;<標簽是描述在這個屬性的,可以不寫。絕大多少配置都是在xml文件里面配置的,因為在這里做的配置都全局用戶都生效,而且是永久的。用戶自定義配置會覆蓋默認配置。另外,Hive也會讀入Hadoop的配置,因為Hive是作為Hadoop的客戶端啟動的,Hive的配置會覆蓋Hadoop的配置。

  方法二:
  在啟動Hive cli的時候進行配置,可以在命令行添加-hiveconf param=value來設定參數,例如:

1 [wyp@master ~]$ hive --hiveconf mapreduce.job.queuename=queue1

這樣在Hive中所有MapReduce作業都提交到隊列queue1中。這一設定對本次啟動的會話有效,下次啟動需要重新配置。

  方法三:
  在已經進入cli時進行參數聲明,可以在HQL中使用SET關鍵字設定參數,例如:

1 hive> set mapreduce.job.queuename=queue1;

這樣也能達到方法二的效果。這種配置也是對本次啟動的會話有效,下次啟動需要重新配置。在HQL中使用SET關鍵字還可以查看配置的值,如下:

1 hive> set mapreduce.job.queuename;
2 mapreduce.job.queuename=queue1

我們可以得到mapreduce.job.queuename=queue1。如果set后面什么都不添加,這樣可以查到Hive的所有屬性配置,如下:

01 hive> set;
02 datanucleus.autoCreateSchema=true
03 datanucleus.autoStartMechanismMode=checked
04 datanucleus.cache.level2=false
05 datanucleus.cache.level2.type=none
06 datanucleus.connectionPoolingType=DBCP
07 datanucleus.identifierFactory=datanucleus
08 datanucleus.plugin.pluginRegistryBundleCheck=LOG
09 datanucleus.storeManagerType=rdbms
10 datanucleus.transactionIsolation=read-committed
11 datanucleus.validateColumns=false
12 datanucleus.validateConstraints=false
13 datanucleus.validateTables=false
14  
15 ............................

  上述三種設定方式的優先級依次遞增。即參數聲明覆蓋命令行參數,命令行參數覆蓋配置文件設定。

   注意:某些系統級的參數,例如log4j相關的設定,必須用前兩種方式設定,因為那些參數的讀取在會話建立以前已經完成了。所以在HQL中設定是無效的。這個特列可以參見本博客 《Hive日志調試》進行了解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM