配置管理概述 Hive從<install-dir>/conf/hive-default.xml中讀取它的預設配置 Hive配置目錄的位置可以通過設置HIVE_CONF_DIR環境變數的值來改變 配置變數可以被改變,通過<install-dir>/conf/hive-site.xml中重新定義(PS: ...
配置管理概述
- Hive從<install-dir>/conf/hive-default.xml中讀取它的預設配置
- Hive配置目錄的位置可以通過設置HIVE_CONF_DIR環境變數的值來改變
- 配置變數可以被改變,通過<install-dir>/conf/hive-site.xml中重新定義(PS:意思就是可以hive-site.xml中的配置項可以覆蓋hive-default.xml中同名的配置)
- Log4j配置存儲在<install-dir>/conf/hive-log4j.properties
- Hive配置預設繼承Hadoop配置變數
- 在hive-site.xml中可以定義任何你需要的配置變數,包括hadoop中的配置變數也是可以定義在這裡面的
Hive日誌
Hive用log4j記錄日誌,預設情況下通過命令行操作的日誌會輸出到控制台。預設的日誌級別是INFO。
日誌文件存放的目錄是/tmp/<user.name>
:
- /tmp/<user.name>/hive.log
通過在$HIVE_HOME/conf/hive-log4j.properties中設置hive.log.dir可以改變日誌存放的目錄,務必確保該目錄的許可權是1777
DDL操作
創建Hive表
創建一個表,名字叫做pokes,它有兩列,第一列是integer類型,第二列是string類型
創建一個表,名字叫invites。它有兩個列和一個名字叫ds的分區列。這個分區列是一個虛的列,它不是表數據的的一部分,它在將一個特別的數據集載入到分區的時候很有用。
DML操作
載入一個文件到pokes表,這個文件有兩列,列用ctrl-a分隔。'LOCAL'表示輸入文件在本地文件系統,如果'LOCAL'被省略的話,將從HDFS中查找文件。
關鍵'OVERWRITE'表示如何表中存在數據則會被刪除。如果'OVERWRITE'關鍵字被省略,那麼數據文件則會被追加到已有的數據後面。
註意:
- 通過加裝命令加裝數據的時候不會驗證數據是否違背schema
- 如果文件在HDFS中,那麼將被移動到Hive所控制的命名空間中
- Hive數據的根目錄是在hive-default.xml中hive.metastore.warehouse.dir指定的
上面的兩條載入語句分別載入數據到invites表的不同分區中。表invites在創建的時候必須被分區,並且分區的名字叫ds。
上面這條命令從HDFS中載入數據到表中。
註意,從HDFS中載入數據的結果就是移動文件或目錄,因此,這個操作非常快。