Hive(3)-meta store和hdfs詳解,以及JDBC連接Hive


一. 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相關的設定,必須用前兩種方式設定,因為那些參數的讀取在會話建立以前已經完成了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM