hive outline
hive 配置metastore三种方式
内嵌模式
内嵌模式是hive metastore的默认部署模式。此种模式下,元数据存储在内置的Derby数据库,并且Derby数据库和metastore服务都嵌入在主hiveserver2进程中
,即当启动hiveserver2进程时,Derby和metastore服务都会启动。缺点
是一次只能支持一个客户端连接
想要支持多客户端连接,需要选择以下2种方式
本地模式
- hive metastore服务随主hiveserver2而启动,并且运行在同一进程当中,
但是存储元数据的数据库在单独的进程中运行
,并且可以在单独的主机上,metastore服务将通过JDBC与元数据库进行通信 - 存储元数据的数据库推荐使用MySQL
- hive根据hive.metastore.uris 参数值来判断,如果为空,则为本地模式
缺点是
每启动一次hiveserver2,都会启动一个metastore服务
远程模式
- 远程模式下,
Metastore服务在其自己的单独JVM上运行
,而
不随hiveserver2启动而启动,需要单独手动启动metastore服务。如果其他进程希望与Metastore服务进行通信,就需要使用Thrift Network API进行通信 - 在生产环境中,建议用远程模式来配置Hive Metastore。在这种情况下,其他依赖hive的软件都可以通过Metastore访问hive。由于还可以完全屏蔽数据库层,因此这也带来了更好的可管理性/安全性
- 远程模式下,需要配置hive.metastore.uris 参数来指定metastore服务运行的机器ip和端口