HDFS命令
- HDFS命令大全
Usage: hdfs [--config confdir] COMMAND where COMMAND is one of
- 常用命令
對於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 可以查看命令選項
變量和屬性
--define key = value 等價於 --hivevar key=value,可在命令行定義用戶自定義變量以便在Hive腳本中引用,來滿足不同的執行。 Hive將這些鍵值對放到Hivevar命名空間,這樣可以和其他的3中內置命名空間hiveconf,system,env 進行區分。
使用 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 命令進行設置。
查看.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;