Hive常用的屬性配置及調優參數概述
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
一.hive常見配置屬性
1>.配置數據倉庫位置
<property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> <description>指定默認數據倉庫存儲在HDFS上的存儲路徑,通常我們使用默認值即可,當然你也可以進行自定義路徑喲~</description> </property>
2>.顯示表頭信息
<property> <name>hive.cli.print.header</name> <value>true</value> <description> 當打印一張表時,是否顯示表字段名稱,默認值為false。通常情況下,在字段比較多時,我們可以將其值設置為true。 但有的開發很反感這樣設置,在生產環境中,我將該值設置為true時,開發那邊反饋會影響到它們代碼的邏輯,只有隱藏表頭字段信息程序才能正常運行,這找誰說理去,於是我又調回了默認值。 </description> </property>
3>.顯示當前數據庫
<property> <name>hive.cli.print.current.db</name> <value>true</value> <description> 當進入到hive交互式字符界面時,是否顯示當前所在的數據庫,默認值組織為false,即不顯示當前所在的數據庫。 生產環境中,我建議大家將該值設置為true。雖然說大數據運維人員很少操作hive數據倉庫,基本上都是開發那邊在操作,但將該值設置為true時,可以提醒操作者操作的是哪個數據倉庫。 </description> </property>
4>.修改hive的日志運行級別
[root@hadoop105.yinzhengjie.com ~]# grep "property.hive.log.dir" ${HIVE_HOME}/conf/hive-log4j2.properties property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name} [root@hadoop105.yinzhengjie.com ~]# [root@hadoop105.yinzhengjie.com ~]# vim ${HIVE_HOME}/conf/hive-log4j2.properties [root@hadoop105.yinzhengjie.com ~]# [root@hadoop105.yinzhengjie.com ~]# grep "property.hive.log.dir" ${HIVE_HOME}/conf/hive-log4j2.properties # property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name} property.hive.log.dir = /yinzhengjie/softwares/hive/logs [root@hadoop105.yinzhengjie.com ~]# [root@hadoop105.yinzhengjie.com ~]# grep "^property.hive.log.dir" ${HIVE_HOME}/conf/hive-log4j2.properties property.hive.log.dir = /yinzhengjie/softwares/hive/logs [root@hadoop105.yinzhengjie.com ~]#
5>.參數配置方式
在之前的筆記中我分享了使用在hive命令行中定義變量名稱("-d"選項),詳情可參考:https://www.cnblogs.com/yinzhengjie2020/p/13912307.html 本次我們要介紹如何在命令行啟動時,設置hive的默認參數配置,如下圖所示。 配置hive參數的優先級順序依次遞增,其順序如下所示: (1)在hive的默認配置文件中聲明參數,即"/yinzhengjie/softwares/hive/conf/hive-default.xml.template"; (2)在hive的自定義配置文件中聲明參數,即"/yinzhengjie/softwares/hive/conf/hive-site.xml"; (3)在啟動hive時指定配置參數,如下圖所示; (4)在hive交互式字符終端配置參數,如下圖所示。
二.企業級調優
1>.
2>.
3>.
4>.
5>.