hive的元数据!
==1==>为什么需要开启hive的metastore service
应用有像spark这样需要用到hive元数据的框架存在!所以就要给它们开放服务!
==2==>metaStore:
metaStore,默认存储在 derby 数据库中,但是derby数据库不能支持我们开启多个窗口,所以我们会将metaStore存放到MySql中;
metaStore存储了hive的databases,tables,partition等信息.
hiveQL所有的语句都会连接到MySql查询元数据信息!
==3==>metaStore server 作用:
bin/hin --访问--> metaStore server --访问-->MySQL
beeline --访问-->hiveServer2 --访问--> metaStore server --访问--> MySQL
==4==>metaStore 有3中开启方式:
--1-->默认开启方式:
没有配置metaStore的时候,每当开启bin/hive或者;或者开启hiveServer2的时候,都会在内部启动一个metastore
嵌入式服务;资源比较浪费,如果开启多个窗口,就会存在多个metastore server
--2-->local mataStore(本地)
当metaStore和装载元数据的数据库(MySQL)存在同一机器上时配置是此模式,
开启metastore服务就只需要开启一次就好,避免资源浪费!
--3-->Remote Metastore(远程)
当metaStore和装载元数据的数据库(MySQL)不存在同一机器上时配置是此模式,
开启metastore服务就只需要开启一次就好,避免资源浪费!
==5==>配置metastore ()
配置参数:
/remote
<property>
<name></name>
<value>thrift://:9083</value>
</property>
<property>
<name></name>
<value>true</value>
</property>
==6==>脚本:
#!/bin/sh
#创建家目录
HIVE_HOME=/opt/cdh.5.7.6/hive-1.1.0-cdh5.7.6
#启动服务时间
DATE_STR=`/bin/date +%Y%m%d%H%M%S`
#日志文件名称
HIVE_SERVER_LOG=${HIVE_HOME}/logs/MetaStore-${DATE_STR}.log
#启动服务
/usr/bin/nohup ${HIVE_HOME}/bin/hive --service metastore >${HIVE_SERVER_LOG} 2>&1 &