2.7.2 为啥要用 Mysql

Hive 默认使用 derby 来作为 metastore.

既然有了 derby, 为什么我们还需要 Mysql?

derby 数据库有一个严重的缺陷就是同时只能连接最多一个会话, 再有其他会话会抛出异常. 也即是说derby只能提供有限的单进程的存储服务.

所以在生成环境中一般都会使用其他的数据库来替代:

比如: MySQL、Postgres、Oracle、MS SQL Server.

而且 Hive 对 Mysql 比较友好.

所以在生成环境中, 大部分公司都是使用 Mysql 作为 Metastor

备注:

可能有同学会问, 我们以前为啥可以用 beeline 同时打开多个客户端呢? 是不是意味着derby 也可以支持多个会话了呢?

其实我们以前用 beeline 客户端并没有直接连接 derby 数据库, 我们使用 beeline 连接的是 hiveserver2 这个 hive 服务器.

连接 derby 的其实是 hiveserver2.

其实如果直接使用 hive 命令启动就知道了. 这个每次启动一个客户端并连接 derby, 当你第二次启动的时候就会抛出异常.

开启不了新的异常.

Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-12-07 18:06:32

results matching ""

    No results matching ""