一. Meta Store
使用mysql客戶端登錄hadoop100的mysql,可以看到庫中多了一個metastore
現在尤其要關注這三個表
DBS表,存儲的是Hive的數據庫
TBLS表,存儲的是Hive中的表,使用DB_ID和DBS表關聯
COLUMNS_V2存儲的是每個表中的字段信息
Meta Store並不存儲真實的數據,只是存儲數據庫的元數據信息,數據是存儲在HDFS上的
二. HDFS
瀏覽器打開 http://hadoop100:50070/explorer.html#/ 在/目錄下多了一個user目錄
點進去
再點進去
再點進去
我們創建的表就出來了,難道沒有人疑問default庫哪里去了么?使用客戶端,創建一個數據庫~
再刷新一下
所以,如果使用默認的default數據庫,數據表將會放在hive/warehouse目錄下.使用自定義的數據庫,也會放在hive/warehouse目錄下,再建表的話,會存到下一級目錄下
其實這個目錄,也是可以改的,修改conf/hive-stie.xml
<property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> <description>location of default database for the warehouse</description> </property>
三. JDBC連接Hive
1. 啟動hiveserver2服務
bin/hiveserver2
阻塞是正常的,不要以為沒起來...不想阻塞的話,可以使用后台守護的方式啟動,bin/hiveserver2 & 加一個&符號
2.新開一個ssh窗口,啟動beeline
bin/beeline
3. 連接hiveserver2
!connect jdbc:hive2://hadoop102:10000
4.愛之初體驗
show databases;
5.Hive常用交互命令,新開一個ssh客戶端,在不使用jdbc連接的情況下操作
重點關注-e和-f參數,-e參數后面可以跟sql語句,-f參數后面可以跟一個sql文件
在opt/datas目錄下新建一個sql文件,隨便寫條sql語句進去
select name from namelist;
6. 其他的一些操作
使用bin/hive連接,查看hdfs下的目錄
查看本地文件目錄
四. 參數配置方式及優先級
1. 查看當前所有的配置信息
hive>set;
2. 參數的配置三種方式
1). 配置文件方式
默認配置文件:hive-default.xml
用戶自定義配置文件:hive-site.xml
注意:用戶自定義配置會覆蓋默認配置。另外,Hive也會讀入Hadoop的配置,因為Hive是作為Hadoop的客戶端啟動的,Hive的配置會覆蓋Hadoop的配置。配置文件的設定對本機啟動的所有Hive進程都有效。
2). 命令行參數方式
啟動Hive時,可以在命令行添加-hiveconf param=value來設定參數。
例如:
bin/hive -hiveconf mapred.reduce.tasks=10;
注意:僅對本次hive啟動有效
查看參數設置:
hive (default)> set mapred.reduce.tasks;
3). 參數聲明方式
可以在HQL中使用SET關鍵字設定參數
例如:
hive (default)> set mapred.reduce.tasks=100;
注意:僅對本次hive啟動有效。
查看參數設置
hive (default)> set mapred.reduce.tasks;
上述三種設定方式的優先級依次遞增,即配置文件<命令行參數<參數聲明。注意某些系統級的參數,例如log4j相關的設定,必須用前兩種方式設定,因為那些參數的讀取在會話建立以前已經完成了