Hive Metastore有三種配置方式,分別是:
Embedded Metastore Database (Derby) 內嵌模式
Local Metastore Server 本地元存儲
Remote Metastore Server 遠程元存儲
1.1 Metadata、Metastore作用
metadata即元數據。元數據包含用Hive創建的database、tabel等的元信息。
元數據存儲在關系型數據庫中。如Derby、MySQL等。
Metastore的作用是:客戶端連接metastore服務,metastore再去連接MySQL數據庫來存取元數據。有了metastore服務,就可以有多個客戶端同時連接,而且這些客戶端不需要知道MySQL數據庫的用戶名和密碼,只需要連接metastore 服務即可。
1.2三種配置方式區別
內嵌模式使用的是內嵌的Derby數據庫來存儲元數據,也不需要額外起Metastore服務。這個是默認的,配置簡單,但是壹次只能壹個客戶端連接,適用於用來實驗,不適用於生產環境。
本地元存儲和遠程元存儲都采用外部數據庫來存儲元數據,目前支持的數據庫有:MySQL、Postgres、Oracle、MS SQL Server.在這裏我們使用MySQL。
本地元存儲和遠程元存儲的區別是:本地元存儲不需要單獨起metastore服務,用的是跟hive在同壹個進程裏的metastore服務。遠程元存儲需要單獨起metastore服務,然後每個客戶端都在配置文件裏配置連接到該metastore服務。遠程元存儲的metastore服務和hive運行在不同的進程裏。
在生產環境中,建議用遠程元存儲來配置Hive Metastore。
2. 集群規劃
本教程Hadoop相關軟件全部基於CDH5.5.1,用yum安裝,系統環境如下:
操作系統:CentOS 7.2
Hadoop 2.6.0
Hive1.1.0
Spark1.5.0
MySQL 5.6
JDK 1.8
Maven 3.3.3
Scala 2.10