1. hive metastore 内部结构
1.1 包结构
从package结构来看,主要的5个package,让我们来看看这几个package的内容
(1) metastorepackage是metastore 模块的入口,也是整个metastore模块的核心所在,里面包含了HiveMetaStore类作为整个模块的核心,接收来自hive的请求,返回需要的信息。
(2) metastore.apipackage包含了调用和访问metastore模块的接口以及接口参数和返回值类型,metastore模块的用户可以通过api对metastore模块进行访问
(3)metastore.events 用于metastore模块内部的观察者模式。因为metastore模块是支持notification通知机制和一些其他的后续处理的。通过观察者模式,当metastore对元信息进行一些操作以后,会同时产生一些event,这些event会被它们的listener捕获,并作出一些相应的处理,如发出一些通知等。
(4)metastore.model 与数据持久化相关,metastore模块通过datanucleus库将model持久化到数据库,这里的model与数据库中的表是对应的。
(5)metastore.tools 是供后台的元信息数据管理员对元信息进行查看和修改的工具。
1.2. 类结构
在上述的5个package,比较核心比较重要的是metastore package,让我们来详细看看其中的类结构。