hive的MetaStore

时间:2025-05-14 10:09:11
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 &