前言
本节讲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
客户端参数
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 | 数据库连接密码 |
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]
hive --service metastore [-p 9083]