hive 引數設定

2021-05-27 21:57:16 字數 1133 閱讀 4012

本文**:

開發hive應用時,不可避免地需要設定hive的引數。設定hive的引數可以調優hql**的執行效率,或幫助定位問題。然而實踐 中經常遇到的乙個問題是,為什麼設定的引數沒有起作用?

這通常是錯誤的設定方式導致的。

對於一般引數,有以下三種設定方式:

配置檔案:hive的配置檔案包括

使用者自定義配置會覆蓋預設配置。另外,hive也會讀入hadoop的配置,因為hive是作為hadoop的客戶端啟動的,hadoop的配置文 件包括

hive的配置會覆蓋hadoop的配置。

配置檔案的設定對本機啟動的所有hive程序都有效。

命令列引數:啟動hive(客戶端或server方式)時,可以在命令列新增-hiveconf param=value來設定引數,例如:

bin/hive -hiveconf hive.root.logger=info,console
這一設定對本次啟動的session(對於server方式啟動,則是所有請求的sessions)有效。

引數宣告:可以在hql中使用set關鍵字設定引數,例如:

set mapred.reduce.tasks=100;
這一設定的作用域也是session級的。

上述三種設定方式的優先順序依次遞增。即引數宣告覆蓋命令列引數,命令列引數覆蓋配置檔案設定。注意某些系統級的引數,例如log4j相關的設定,必須用前 兩種方式設定,因為那些引數的讀取在session建立以前已經完成了。

另外,serde引數必須寫在ddl(建表)語句中。例如:

create table if not exists t_dummy(

dummy string

)row format serde 'org.apache.hadoop.hive.serde2.lazy.lazy******serde'

with serdeproperties (

'field.delim'='\t',

'escape.delim'='\\',

'serialization.null.format'=' '

) stored as textfile;

類似serialization.null.format這樣的引數,必須和某個表或分割槽關聯。在ddl外部宣告將不起作用。

Hive引數設定

1.設定執行引擎 set hive.execution.engine mr set hive.execution.engine spark 設定為mr則呼叫hadoop的mr執行 設定執行引擎為spark則呼叫spark執行任務。若有條件設定為spark,因為執行比hadoop的mr快。2.啟動動態...

Hive之引數設定

系統內建函式 檢視系統自帶函式 show functions 顯示自帶函式的用法 desc function upper 詳細顯示自帶函式的用法 desc function extended upper fetch抓取1.hive.fetch task.conversion設定成more,如下查詢語...

引數設定 pandas引數設定小技巧

python大資料分析記錄 分享 成長 在日常使用pandas的過程中,由於我們所分析的資料表規模 格式上的差異,使得同樣的函式或方法作用在不同資料上的效果存在差異。而pandas有著自己的一套 引數設定系統 可以幫助我們在遇到不同的資料時靈活調節從而達到最好的效果,本文就將介紹pandas中常用的...