1、Hive參數操作
1.2、hive參數介紹
hive當中的參數、變量都是以命名空間開頭的,詳情如下表所示:
命名空間 | 讀寫權限 | 含義 |
---|---|---|
hiveconf | 可讀寫 | hive-site.xml當中的各配置變量例:hive --hiveconf hive.cli.print.header=true |
system | 可讀寫 | 系統變量,包含JVM運行參數等例:system:user.name=root |
env | 只讀 | 環境變量例:env:JAVA_HOME |
hivevar | 可讀寫 | 例:hive -d val=key |
hive的變量可以通過${}方式進行引用,其中system、env下的變量必須以前綴開頭
1.2、hive參數的設置方式
1、在${HIVE_HOME}/conf/hive-site.xml文件中添加參數設置
注意:永久生效,所有的hive會話都會加載對應的配置
2、在啓動hive cli時,通過–hiveconf key=value的方式進行設置
例如:hive --hiveconf hive.cli.print.header=true(設置表頭信息)
注意:只在當前會話有效,退出會話之後參數失效
3、在進入到cli之後,通過set命令設置
例如:set hive.cli.print.header=true;
拓展: set;(作用是展示所有設置)那麼怎麼導出所有設置呢,要用重定向
--在hive cli控制檯可以通過set對hive中的參數進行查詢設置
--set設置
set hive.cli.print.header=true;
--set查看
set hive.cli.print.header;
--set查看全部屬性
set;
4、hive -d
hive -d abc=1
select * from psn where id=1;
select * from psn where id=${abc};
5、hive參數初始化設置
在當前用戶的家目錄下創建**.hiverc**文件,在當前文件中設置hive參數的命令,每次進入hive cli的時候,都會加載.hiverc的文件,執行文件中的命令。
注意:在當前用戶的家目錄下還會存在.hivehistory文件,此文件中保存了hive cli中執行的所有命令
2、hive運行方式
2.1、hive運行方式分類
(1)命令行方式或者控制檯模式
(2)腳本運行方式(實際生產環境中用最多)
(3)JDBC方式:hiveserver2
( 4)web GUI接口(hwi、hue等)
2.2、hive命令行模式詳解
(1)在命令行中可以直接輸入SQL語句,例如:select * from table_name
(2)在命令行中可以與HDFS交互,例如:dfs ls /
(3)在命令行中可以與linux交互,例如:! pwd或者! ls /
注意:與linux交互的時候必須要加!
3、hive腳本運行方式
已知的定時任務類型有:oozie/azkaban/crontab/quartz等
--hive直接執行sql命令,可以寫一個sql語句,也可以使用;分割寫多個sql語句,執行完退出cli
hive -e ""
--hive執行sql命令,將sql語句執行的結果重定向到某一個文件中
hive -e "">aaa
--hive靜默輸出模式,輸出的結果中不包含ok,time token等關鍵字(靜默模式用於寫腳本時清除廢話)
hive -S -e "">aaa
如果反過來執行
hive -e -S "select * from psn"
報錯,所以注意順序
--hive可以直接讀取文件中的sql命令,進行執行
hive -f file
--hive可以從文件中讀取命令,並且執行初始化操作
hive -i /home/my/hive-init.sql
--在hive的命令行中也可以執行外部文件中的命令
hive> source file (在hive cli中運行)