Metastore 有三种部署方式
- embedded mode (Metastore 和 db 都运行在 Hive Service进程中)
- local mode (Metastore 运行在 Hive Service进程中)
- remote mode (Metastore , Hive Service, db 运行在不同的进程中)
Embedded Mode
Cloudera recommends using this mode for experimental purposes only.
Embedded mode is the default metastore deployment mode for CDH. In this mode, the metastore uses a Derby database, and both the database and the metastore service are embedded in the main HiveServer process. Both are started for you when you start the HiveServer process. This mode requires the least amount of effort to configure, but it can support only one active user at a time
and is not certified for production use.
Local Mode
In Local mode, the Hive metastore service runs in the same process as the main HiveServer process
, but the metastore database runs in a separate process, and can be on a separate host. The embedded metastore service communicates with the metastore database over JDBC.
Remote Mode
Cloudera recommends
that you use this mode.
In Remote mode, the Hive metastore service runs in its own JVM process. HiveServer2, HCatalog, Impala, and other processes communicate with it using the Thrift network API (configured using the hive.metastore.uris property). The metastore service communicates with the metastore database over JDBC (configured using the javax.jdo.option.ConnectionURL property). The database, the HiveServer process, and the metastore service can all be on the same host, but running the HiveServer process on a separate host provides better availability and scalability.
The main advantage
of Remote mode over Local mode is that Remote mode does not require the administrator to share JDBC login information
for the metastore database with each Hive user. HCatalog requires this mode.