本文**:
開發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(類似serialization.null.format這樣的引數,必須和某個表或分割槽關聯。在ddl外部宣告將不起作用。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;
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中常用的...