一:Metadata概念:

元数据包含用Hive创建的database、table等的元信息。元数据存储在关系型数据库中。如Derby、MySQL等。

二:Metastore作用:

客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。
应用有像spark这样需要用到hive元数据的框架存在!所以就要给它们开放服务
metaStore server 作用:
bin/hin --访问–> metaStore server --访问–>MySQL
beeline --访问–>hiveServer2 --访问–> metaStore server --访问–> MySQL

三:Metastore 有3中开启方式:

–1-->默认开启方式:

没有配置metaStore的时候,每当开启bin/hive;或者开启hiveServer2的时候,都会在内部启动一个metastore
嵌入式服务;资源比较浪费,如果开启多个窗口,就会存在多个metastore server。()

默认情况下,metastore服务和Hive的服务运行在同一个JVM中,包含了一个内嵌的以本地磁盘作为存储的Derby(Hive自带的数据库)数据库实例。同时,这种配置也被称为内嵌配置。但是这种方式的不好之处就在于每次只有一个内嵌的Derby数据库可以访问某个磁盘上的数据文件,也就是说一次只能为每个metastore打开一个hive会话。如果尝试连接多个,会报错。这样效率很低。

–2-->local mataStore(本地)

当metaStore和装载元数据的数据库(MySQL)存在同一机器上时配置是此模式,
开启metastore服务就只需要开启一次就好,避免资源浪费!

如果要支持多会话,或者多用户的话,需要使用一个独立的数据库(比如mysql,比较常用),这种配置方式称为本地metastore配置。虽然这种方式Hvie服务和Metastore服务仍然在一个JVM进程中,但连接的却是另外一个进程中运行的数据库,在同一台机器上或者远程机器上。任何JDBC兼容的数据库都可以通过javax.jdo.option.*配置属性来供metastore使用。

–3-->Remote Metastore(远程)

当metaStore和装载元数据的数据库(MySQL)不存在同一机器上时配置是此模式,
开启metastore服务就只需要开启一次就好,避免资源浪费!
还有一种配置时远程metastore配置,这种配置情况下,一个或多个metastore服务器和Hive服务运行在不同的进程中。这样一来,数据库层可以 完全置于防火墙后,客户端则不需要数据库凭证(密码账号),从而提供了更好的可管理性和安全。可以通过hive.metastore.uris设置 为metastore服务器你URI(如果有多个服务器,可以用’逗号’分割),把hive服务设为使用远程metastore.metastore服务器的URI的格式为:thrift://host:port.

详解:Hive的MetaStore和三种配置方式相关推荐

  1. 详解mysql备份恢复的三种实现方式

    一.Mysql备份策略: 完整备份: 完整备份就是指对某一个时间点上的所有数据或应用进行的一个完整拷贝,对数据量大的,备份时间较长,当然数据在恢复的时候快. 增量备份: 备份自上一次备份(包括完整备份 ...

  2. python可以播放音乐吗_详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

  3. python如何安装matplotlib_详解python安装matplotlib库三种失败情况

    (可能只有最后一句命令有用,可能全篇都没用) (小白方法,可能只适用于本人情况) 安装matplotlib时,出现的三种失败情况 1.read timed out 一开始我在pycharm终端使用pi ...

  4. python调用cmd命令释放端口_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  5. mysql临键锁_详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)

    详解 MySql InnoDB 中的三种行锁(记录锁.间隙锁与临键锁) 前言 InnoDB 通过 MVCC 和 NEXT-KEY Locks,解决了在可重复读的事务隔离级别下出现幻读的问题.MVCC  ...

  6. html正方形边框,详解HTML设置边框的三种方式

    HTML设置边框的三种方式 border-width: 1px 2px 2px; border-style: solid dashed dotted; border-color:red green b ...

  7. java 数组合并_拼接_详解Java合并数组的两种实现方式

    详解Java合并数组的两种实现方式 发布于 2020-7-27| 复制链接 摘记: 最近在写代码时遇到了需要合并两个数组的需求,突然发现以前没用过,于是研究了一下合并数组的方式,总结如下.1.Syst ...

  8. MyEclipse网站服务器,MyEclipse中web服务器的三种配置方式

    初学Javaweb开发的人们都会遇到一个问题,就是服务器环境的搭建配置问题.下面介绍三种服务器的搭建方式. 直接修改server.xml文件 当你写了一个web应用程序(jsp/servlet),想通 ...

  9. Nhibernate 三种配置方式

    Nhibernate 三种配置方式 Posted on 2010-06-15 11:47 linFen 阅读(153) 评论(0) 编辑 收藏 1 App.config 的配置: <?xml v ...

最新文章

  1. VTK:PolyData之ExtractCellsUsingPoints
  2. 腾讯数据库RTOlt;30s,RPO=0高可用方案首次全景揭秘
  3. vsftpd 在linux 中的环境配置【部分原创】
  4. 宝塔反代默认缓存了html吗,宝塔面板安装 OneList 设置反代
  5. html生成表格table
  6. 解决keil5不支持Samsung 2440A等较旧型号Soc的方法
  7. bzoj 1690: [Usaco2007 Dec]奶牛的旅行(01分数规划--最优比率环)
  8. dedecms注入漏洞 5.3 5.5
  9. java高级面试篇之redis面试收集总结/62题附答案)
  10. 个人博客存在的三种形式
  11. 在计算机内部.机器码的形式,在计算机内部,机器码的形式是____。
  12. 教师教学说课圆的认识与周长PPT模板
  13. java中创建一个类
  14. c++builder:Project Project1.exe raised exception class EAccessViolation with message 'Access violati
  15. MAC装win10 清理临时文件
  16. 关于adb指令安装卸载apk的几个常用命令
  17. 每周推荐阅读第一季结束
  18. Python 接入飞书端口API - 实现共享空间的Excel更新
  19. python两个中括号_python中括号
  20. error 1044 mysql_mysql ERROR 1044 (42000): Access denied for user ''@'localhost' to database

热门文章

  1. Leetcode309. Best time to sell stock with cooldown
  2. archman linux教程,Archman GNU/Linux 2020-01 发布,基于Arch的Xfce桌面发行版
  3. 苹果手机连接电脑一直噔噔蹬的响,而且没有反应
  4. java查询mongodb 嵌套,查询嵌套文件mongoDB
  5. Html5学习进阶一 视频和音频
  6. IC设计EDA软件虚拟机环境配置与安装教程
  7. 基于FPGA的EEPROM读写(IIIC 接口协议)
  8. mysql flaskalchemy_python flask sqlalchemy 数据库mysql操作
  9. Linux基础之while语句
  10. Fail to get tape drive(tsm) inventory