9.Hive Metastore Administration
前言
本节讲metastore相关的知识.
hive所有的元数据都是通过matestore管理的.hive cli/hiveserver2包含了内置的metastore.
metastore参数
metastore的基本参数
K | V | 说明 |
---|---|---|
javax.jdo.option.ConnectionURL | jdbc连接字符串 | |
javax.jdo.option.ConnectionDriverName | jdbc驱动类名 | 当使用mysql时:com.mysql.jdbc.Driver |
javax.jdo.option.ConnectionUserName | 数据库连接用户名 | |
javax.jdo.option.ConnectionPassword | 数据库连接密码 |
metastore的额外参数
Configuration Parameter | Description | Default Value |
---|---|---|
org.jpox.autoCreateSchema | 如果hive启动时没有相应的元数据Schecma,则创建相关的库\表等,安装之后装该参数设置为false.只在初始化时使用.一般不用这个功能都手动创建hive元数据 | |
datanucleus.autoStartMechanism | Whether to initialize on startup. | |
hive.metastore.server.min.threads | Thrift server's pool最小连接数 | 200 |
hive.metastore.server.max.threads | Thrift server's pool最大连接数 | 100000 since Hive 0.8.1 |
hive.metastore.filter.hook | Metastore hook class for further filtering the metadata read results on client side.(Hive 1.1.0 and later.) | org.apache.hadoop.hive.metastore.DefaultMetaStoreFilterHookImpl |
hive.metastore.port | Hive metastore listener port.(Hive 1.3.0 and later.) | 9083 |
客户端参数
一切要使用metastore服务的客户端| K|V|说明|
K | V | 说明 |
---|---|---|
hive.metastore.uris | metastore服务器地址,用于客户端连接 | 可以配置多个 |
hive.metastore.warehouse.dir | hive仓库在hdfs上的位置.这个应该不需要配置的 |
mestastore是没有状态的,因此可以启动多个metastore作为ha. client默认会选择hive.metastore.uris中的第一个,但第一个连接不上的话,则随机从列表中选一个.
使用zk自动发现mestastore
从hive4.0.0开始可以像hiveserver2一样通过zookeeper自动发现metastore实现ha.
Config Param | Config Value | Comment |
---|---|---|
hive.metastore.service.discovery.mode | 默认不配置,可以是zookeeper | 当设置为zookeeper时,metastore在启动实现会在zk中注册自己,在关闭时从zk取注销. server和client配置要相同 |
hive.metastore.uris | zookeepr_host_name:port, host_name:port, ... | 上面为zookeeper时,zookeepr集群地址.server和client配置要相同 |
hive.metastore.zookeeper.client.port | port | 上面要是设置了port这个就可以忽略.zookeeper服务器端口.server和client配置要相同 |
hive.metastore.zookeeper.namespace | namespace name | zookeeper中metastore的根目录 |
hive.metastore.zookeeper.session.timeout | 单位毫秒 | ZooKeeper client's session timeout. 心跳超过这个时间客户端与zk的连接断开 |
hive.metastore.zookeeper.connection.timeout | 单位秒 | ZooKeeper client's connection timeout in seconds. Connection timeout * hive.metastore.zookeeper.connection.max.retries with exponential backoff is when curator client deems connection is lost to zookeeper. |
hive.metastore.zookeeper.connection.max.retries | 连接zk的重试次数 | |
hive.metastore.zookeeper.connection.basesleeptime | 单位毫秒 | Initial amount of time (in milliseconds) to wait between retries when connecting to the ZooKeeper server when using ExponentialBackoffRetry policy. |
启动hive metastore服务
hive --service metastore [-p 9083]