hive中metastore三種儲存方式
巢狀方式: 使用內建derby資料庫,同一時間僅限一個hive cli環境登入
本地mysql儲存方式: 採取外部mysql資料庫伺服器,支援多使用者連線模式,通過設定hive.metastore.local
為true實現。
統一配置如下
<
property
>
<
name
>hive.metastore.warehouse.dir</
name
>
<
value
>/user/hive/warehouse</
value
>
</
property
>
<
property
>
<
name
>hive.metastore.local</
name
>
<
value
>true</
value
>
</
property
>
<
property
>
<
name
>javax.jdo.option.ConnectionURL</
name
>
<
value
>jdbc:mysql://master/hive_remote?createDatabaseIfNotExist=true</
value
>
</
property
>
<
property
>
<
name
>javax.jdo.option.ConnectionDriverName</
name
>
<
value
>com.mysql.jdbc.Driver</
value
>
</
property
>
<
property
>
<
name
>javax.jdo.option.ConnectionUserName</
name
>
<
value
>hive</
value
>
</
property
>
<
property
>
<
name
>javax.jdo.option.ConnectionPassword</
name
>
<
value
>hive</
value
>
</
property
>
遠端mysql儲存方式: 同樣採取外部mysql資料庫伺服器,支援多使用者連線模式,設定hive.metastore.local
為false , 以及hive.metastore.uris
為 thrift://master:9083 ,並且需要在hive伺服器啟用 metastore 服務: hive --service metastore &
服務端配置:
< property >
< name >hive.metastore.warehouse.dir</ name >
< value >/user/hive/warehouse</ value >
</ property >
< name >javax.jdo.option.ConnectionURL</ name >
< value >jdbc:mysql://master/hive_remote?createDatabaseIfNotExist=true</ value >
</ property >
< property >
< name >javax.jdo.option.ConnectionDriverName</ name >
< value >com.mysql.jdbc.Driver</ value >
</ property >
< property >
< name >javax.jdo.option.ConnectionUserName</ name >
< value >hive</ value >
</ property >
< property >
< name >javax.jdo.option.ConnectionPassword</ name >
< value >hive</ value >
</ property >
客戶端配置:
< property >
< name >hive.metastore.warehouse.dir</ name >
< value >/user/hive_remote/warehouse</ value >
</ property >
< property >
< name >hive.metastore.local</ name >
< value >false</ value >
</ property >
< property >
< name >hive.metastore.uris</ name >
< value >thrift://master:9083</ value >
</ property >