【Hive】元数据库部署的三种方式和选择【metaStore server】

一、Derby

 

 

元数据使用之前,要在hive目录下执行schematool命令,进行初始化设置

 

bin/schematool -dbType derby -initSchema

启动hive后,可以用 jps -ml 命令看到一个CliDriver的进程

问题:derby数据库不与其他客户端共享数据,就是说不能多窗口访问。

二、Mysql数据库

 

 安装完 mysql数据库后一定不要忘记初始化

mysqld --initalize --user=mysql

启动服务器后再登录

systemctl start mysqld

还需要将mysql的驱动包导入到hive的lib目录下

再去通过hive-site.xml文件,配置metastore到mysql

配置文件如下:


 

<?xml version="1.0"?>

 

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<configuration>

 

    <!-- jdbc连接的URL -->

 

    <property>

 

        <name>javax.jdo.option.ConnectionURL</name>

 

        <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>

 

</property>

 

    <!-- jdbc连接的Driver-->

 

    <property>

 

        <name>javax.jdo.option.ConnectionDriverName</name>

 

        <value>com.mysql.jdbc.Driver</value>

 

</property>

 

    <!-- jdbc连接的username-->

 

    <property>

 

        <name>javax.jdo.option.ConnectionUserName</name>

 

        <value>root</value>

 

    </property>

 

    <!-- jdbc连接的password -->

 

    <property>

 

        <name>javax.jdo.option.ConnectionPassword</name>

 

        <value>123456</value>

 

</property>

 

    <!-- Hive默认在HDFS的工作目录 -->

 

    <property>

 

        <name>hive.metastore.warehouse.dir</name>

 

        <value>/user/hive/warehouse</value>

 

    </property>

 

   <!-- Hive元数据存储的验证 -->

 

    <property>

 

        <name>hive.metastore.schema.verification</name>

 

        <value>false</value>

 

    </property>

 

    <!-- 元数据存储授权  -->

 

    <property>

 

        <name>hive.metastore.event.db.notification.api.auth</name>

 

        <value>false</value>

 

    </property>

 

</configuration>


 

 

配置完hive-site.xml文件后,就可以登录mysql创建metastore数据库,

这个时候登录hive,初始化bin/schematool -initSchema -dbType mysql -verbose

这个时候就建立完成了。

但是:直连模式在生产环境下是非常不可取的,所以我们会选择最后一种模式


 

三、MetaStore Server

 

 元数据服务模式:直白的说就是在mysql之前建立了一个server去管理,避免直接访问。

 在服务器端启动一个metaStore服务,客户就会利用 Trift 协议通过MetaStore服务访问元数据库。

 使用之前 要通过配置文件 hive-site.xml 部署一下元数据服务 


 

    <!-- 指定存储元数据要连接的地址 -->

    <property>

        <name>hive.metastore.uris</name>

        <value>thrift://hadoop102:9083</value>

</property>


这个时候,通过下面的命令就可以启动元数据服务了

(元数据服务是堵塞式的)

bin/hive --service metastore

posted @   -YBP杨社长  阅读(285)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2022-02-23 并行与并发的区别;线程与进程的不同
点击右上角即可分享
微信分享提示