Hive相關命令

HDFS命令

  • HDFS命令大全

Usage: hdfs [--config confdir] COMMAND where COMMAND is one of

Hive相關命令

  • 常用命令

對於HDFS dfs命令,針對在shell命令在大部分可以使用,只要在相應的命令前加 -。使用時,在Hive Cli可以省略hadoop命令。

展示hdfs文件中的根目錄:
hdfs dfs -ls /
展示home目錄下的信息:
hdfs dfs -ls 

創建home目錄下創建目錄product,當沒有加目錄時,就是在對應用戶的home目錄
hdfs dfs -mkdir product

拷貝文件到HDFS,將product.csv文件拷貝到剛才創建的product文件夾下。
hdfs dfs -put product.csv product

將文件從HDFS上拷貝到本地系統
hdfs dfs -get product/prodcut.csv product_copy.csv
在HDFS文件系統內進行文件拷貝
hdfs dfs -cp product/product.csv product_copy.csv

刪除文件
hdfs dfs -rm product_copy.csv
刪除一個目錄
hdfs dfs -rm -r product 
獲取HDFS轉態報告(限管理員)
hdfs dfsadmin -report
輸出結果:
[root@sandbox-hdp hive_data]# hdfs dfsadmin -report 
Configured Capacity: 113791799296 (105.98 GB)
Present Capacity: 86075118592 (80.16 GB)
DFS Remaining: 84059177984 (78.29 GB)
DFS Used: 2015940608 (1.88 GB)
DFS Used%: 2.34%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
-------------------------------------------------
report: Access denied for user root. Superuser privilege is required
對HDFS文件系統的健康型檢查
hdfs fsck /
輸出結果如下:
Connecting to namenode via http://sandbox-hdp.hortonworks.com:50070/fsck?ugi=root&path=%2F
FSCK started by root (auth:SIMPLE) from /172.18.0.2 for path / at Sun Dec 30 09:35:33 UTC 2018
...................................................................................Status: HEALTHY
 Total size: 1984726046 B
 Total dirs: 232
 Total files: 1083
 Total symlinks: 0 (Files currently being written: 1)
 Total blocks (validated): 1081 (avg. block size 1836009 B) (Total open file blocks (not validated): 1)
 Minimally replicated blocks: 1081 (100.0 %)
 Over-replicated blocks: 0 (0.0 %)
 Under-replicated blocks: 0 (0.0 %)
 Mis-replicated blocks: 0 (0.0 %)
 Default replication factor: 1
 Average block replication: 1.0
 Corrupt blocks: 0
 Missing replicas: 0 (0.0 %)
 Number of data-nodes: 1
 Number of racks: 1
FSCK ended at Sun Dec 30 09:35:33 UTC 2018 in 329 milliseconds
The filesystem under path '/' is HEALTHY

Hive命令

JDBC連接元數據

Hive元數據存儲瞭如表的模式和分區等信息,用戶執行如CREATE TABLE或ALTER TABLE等命令會制定這些信息,對於這些會存在併發同時訪問,所以默認的內置數據庫不適合於生產環境,目前絕大多數情況系啊,使用Mysql進行存儲元數據信息,Mysql驅動的存放位置為:

 /usr/hdp/xx.xx版本號/hive/conf
 818		
 819 hive_metastore_user_passwd
 820 hive
 821 
 822 
 823 
 824 javax.jdo.option.ConnectionDriverName
 825 com.mysql.jdbc.Driver
 826 
 827 
 828 
 829 javax.jdo.option.ConnectionURL
 830 jdbc:mysql://sandbox-hdp.hortonworks.com/hive?createDatabaseIfNotExist=true
 831 
 832 
 833 
 834 javax.jdo.option.ConnectionUserName
 835 root
 836 

命令行選項

執行 hive -h 或 hive --help 可以查看命令選項
Hive相關命令

變量和屬性

--define key = value 等價於 --hivevar key=value,可在命令行定義用戶自定義變量以便在Hive腳本中引用,來滿足不同的執行。 Hive將這些鍵值對放到Hivevar命名空間,這樣可以和其他的3中內置命名空間hiveconf,system,env 進行區分。

Hive相關命令

使用 set 命令對各不同命名空間中的變量進行設置,shell環境變量,對應的可以使用 echo $param 來進行輸出現實。通用的
配置信息可以在 /etc/profile,/etc/bashrc , ~/bash_profile 文件中定義。
set env:home | echo $HOME
set env:HADOOP_HOME | echo $HADOOP_HOME
set env:JAVA_HOME | echo $JAVA_HOME
使用 -d 或 --hivevar進行定義變量。
hive -d max_year=2018
hive --hivevar configinfo=something --hivevar hosturl=hostname
 

--hiveconf 配置信息,hive的配置參數,覆蓋hive-site.xml中的參數值

hive --hiveconf hive.cli.print.current.db=true --hiveconf hive.cli.print.header=true;

hive --hiveconf hive.root.logger=INFO,console

hiverc | hive -i 文件配置,在Hive cli中使用-i參數進行制定一個配置文件,在cli啟動時,在提示符出現前會執行這個文件。Hive會自動在HOME目錄下尋找名為.hiverc的文件,而且會自動 執行這個文件中的命令。 對於用戶需要頻繁執行的命令,使用這個文件是很方便的。例如設置系統屬性,或增加對於Hadoop的分佈內存進行自定義的Hive擴展Java包。

查看.hiverc文件,在對應賬號的home目錄,如果沒有,就自己創建一個。對於配置的內容,通用使用 set 命令進行設置。
Hive相關命令

查看.hiverc文件,在對應賬號的home目錄,如果沒有,就自己創建一個。對於配置的內容,通用使用 set 命令進行設置。

使用舉例

hive -e 一次性執行Hive Sql語句。

結合使用 hivevar
hive --hivevar param=data -e "SELECT * FROM TABLE WHERE cloum > ${hivevar:param} "

hive -f 指定Hive Sql腳本文件

hive --hivevar param=data -f "hive sql file path"
查看Hive操作歷史命令:
Hive 會將近10000行命令記錄到文件 $HOME/.hivehistory
在Hive中執行Shell命令,在命令前加 ! 即可
> !ls;


分享到:


相關文章: