執行命令 ./hive --service metastore &
在這里簡單介紹一下hive的metastore
1. 概述
通過hive metastore能訪問hive的元數據,hive的元數據使用Data Nucleus持久化,因此mysql等數據庫可以和hive結合,存儲元數據。
2. metastore的兩種方式
配置metastore服務端以及metastore數據庫主要有內嵌、遠程兩種方式。
2.1 內嵌方式
hive使用derby作為內嵌的metastore數據庫,主要用於測試,但是在同一時間,它只允許一個進程連接metastore數據庫。
注意確認數據庫能被執行查詢的機器訪問到,jdbc庫放到hive客戶端的classpath下。
2.2 遠程方式(我使用的方式)
遠程metastore服務端和客戶端之間使用Thrift協議通信。執行hive --service metastore 啟動Thrift服務端。
如果使用mysql,需要在啟動hive客戶端和HiveMetastore服務端之前把jar包放到HIVE_HOME/lib目錄。
遠程metastore服務端和客戶端都需要設置hive.metastore.warehouse.dir參數為HDFS路徑,此外服務端需要設置ConnectionURL等參數,客戶端需要設置hive.metastore.uris參數。