|
目錄
正文 一、Hive的命令行1、Hive支持的一些命令
2、語法結(jié)構(gòu)hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>|<-e query-string>] [-S]
說明:
3、示例(1)運(yùn)行一個(gè)查詢[hadoop@hadoop3 ~]$ hive -e "select * from cookie.cookie1;"
(2)運(yùn)行一個(gè)文件編寫hive.sql文件
運(yùn)行編寫的文件
(3)運(yùn)行參數(shù)文件從配置文件啟動(dòng) hive,并加載配置文件當(dāng)中的配置參數(shù)
二、Hive的參數(shù)配置方式1、Hive的參數(shù)配置大全https://cwiki./confluence/display/Hive/Configuration+Properties 2、Hive的參數(shù)設(shè)置方式開發(fā) Hive 應(yīng)用時(shí),不可避免地需要設(shè)定 Hive 的參數(shù)。設(shè)定 Hive 的參數(shù)可以調(diào)優(yōu) HQL 代碼 的執(zhí)行效率,或幫助定位問題。然而實(shí)踐中經(jīng)常遇到的一個(gè)問題是,為什么設(shè)定的參數(shù)沒有 起作用?這通常是錯(cuò)誤的設(shè)定方式導(dǎo)致的 對(duì)于一般參數(shù),有以下三種設(shè)定方式:
(1)配置文件Hive 的配置文件包括: A. 用戶自定義配置文件:$HIVE_CONF_DIR/hive-site.xml B. 默認(rèn)配置文件:$HIVE_CONF_DIR/hive-default.xml 用戶自定義配置會(huì)覆蓋默認(rèn)配置。 另外,Hive 也會(huì)讀入 Hadoop 的配置,因?yàn)?Hive 是作為 Hadoop 的客戶端啟動(dòng)的,Hive 的配 置會(huì)覆蓋 Hadoop 的配置。 配置文件的設(shè)定對(duì)本機(jī)啟動(dòng)的所有 Hive 進(jìn)程都有效。 (2)命令行參數(shù)啟動(dòng) Hive(客戶端或 Server 方式)時(shí),可以在命令行添加-hiveconf param=value 來設(shè)定參數(shù),例如:
這一設(shè)定對(duì)本次啟動(dòng)的 session(對(duì)于 server 方式啟動(dòng),則是所有請(qǐng)求的 session)有效。 (3)參數(shù)聲明可以在 HQL 中使用 SET 關(guān)鍵字設(shè)定參數(shù),例如:
這一設(shè)定的作用域也是 session 級(jí)的。
但是,這個(gè)參數(shù)在必要時(shí)<業(yè)務(wù)邏輯決定只能用一個(gè) reduce task> hive 會(huì)忽略,比如在設(shè)置 了 set mapreduce.job.reduces = 3,但是 HQL 語句當(dāng)中使用了 order by 的話,那么就會(huì)忽略該參數(shù)的設(shè)置。 上述三種設(shè)定方式的優(yōu)先級(jí)依次遞增。即參數(shù)聲明覆蓋命令行參數(shù),命令行參數(shù)覆蓋配置 文件設(shè)定。注意某些系統(tǒng)級(jí)的參數(shù),例如 log4j 相關(guān)的設(shè)定,必須用前兩種方式設(shè)定,因?yàn)?那些參數(shù)的讀取在 session 建立以前已經(jīng)完成了。
|
|
|