如何使用 MYSQL 安装和配置 HIVE Metastore

什么是 HIVE Metastore?

Hive Metastore 是一个存储库,它使用以下方式存储与 Apache Hive 相关的元数据(列名、数据类型、注释等)。 MySQL or PostgreSQL. 这个 Hive metastore 是使用关系数据库中的表实现的。

为什么要使用 MySQL 在 Hive 中作为 Metastore:

  • 默认情况下,Hive 附带 derby 数据库作为元存储。
  • Derby 数据库一次只能支持单个活动用户
  • 不建议在生产环境中使用 Derby

所以 方案, 这是

  • 使用 MYSQL 作为后端的元存储,以便同时使用 Hive 连接多个用户
  • MYSQL 是独立元存储的最佳选择

如何安装和配置 Hive Metastore MySQL 数据库

步骤1) 安装 MySQL 服务器
在此步骤中,我们将执行两项任务

  1. 安装 mysql-server
  2. 检查 mysql-server 及其进程
  1. 运用 sudo apt-get install mysql-server 命令,我们可以下载mysql服务器

安装 MySQL 如截图所示

安装并配置 Hive Metastore 以 MySQL 数据库

  1. 安装成功后, MySQL 将按照下面的屏幕截图所示运行

安装并配置 Hive Metastore 以 MySQL 数据库

步骤2) 安装 MySQL Java 连接器型
安装 MySQL Java 连接器。用于 Java 依赖和连接目的

安装并配置 Hive Metastore 以 MySQL 数据库

步骤3) 为连接器创建软链接
在 Hive lib 目录中为连接器创建软链接。这是用于以下之间的软链接: Java 和 MySql。

安装并配置 Hive Metastore 以 MySQL 数据库

步骤4) 在 Hive 中配置 MySql 存储

安装并配置 Hive Metastore 以 MySQL 数据库

  • 输入 MySql –u root –p 然后输入密码
  • 这里-u代表root用户名,p代表密码
  • 输入上述命令后,用户必须输入有效的密码,然后单击 Enter
  • 然后它将进入MySql shell模式

步骤5) 创建用户名和密码
为MySql创建用户名和密码,授予权限。

安装并配置 Hive Metastore 以 MySQL 数据库

我们必须执行如下所示的命令,

mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword'; 
mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';
mysql>  flush privileges;

步骤6) 配置 hive-site.xml

  • 在第 5 步之后,分配用户名和密码 MySQL 数据库并赋予权限。
  • 在这里我们将在 Hive 中配置一些属性,以便与 MySQL 数据库。

安装并配置 Hive Metastore 以 MySQL 数据库

安装并配置 Hive Metastore 以 MySQL 数据库

从上面的截图中,我们观察到以下几点。这里我们定义了 4 个属性,这些属性对于将 MYSQL 建立为 Meta 存储是必需的 蜂房

这些如下:

  1. 此属性用于连接 URL。这里我们在此属性中定义 ConnectionURL。它充当 JDBC 连接及其代表的元存储位置
  2. 此属性用于连接驱动程序名称。此处,mysql.jdbc.Driver 是我们必须在值标签中提及的受尊重的值
  3. 此属性用于定义连接用户名。在此,我们将“hiveguru”定义为用户名
  4. 此属性用于提及连接密码。在此,我们将密码定义为用户密码。

将属性放入 hive –site.xml 后,我们必须手动保存(Ctrl+S)并关闭文件。关闭此文件后,我们必须创建 Hive 表并检查表详细信息 MySQL 存储。

将此代码放置在 hive-site.xml 中

配置单元-site.xml

<configuration>
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value>
		<description>metadata is stored in a MySQL server</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.jdbc.Driver</value>
		<description>MySQL JDBC driver class</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionUserName</name>
		<value>hiveuser</value>
		<description>user name for connecting to mysql server</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionPassword</name>
		<value>hivepassword</value>
		<description>password for connecting to mysql server</description>
	</property>
</configuration>

步骤 7) 创建表格
在 Hive 中创建表“guru99”。

安装并配置 Hive Metastore 以 MySQL 数据库

从上面的截图中,我们可以观察到以下内容

  • 创建表名“guru99”,其中包含两个列名
  • 提到的列名及其数据类型为一个是整数,另一个是字符串类型

下一步,我们将检查它是否存储在 MySql 中

步骤8) 进入MySql shell模式

安装并配置 Hive Metastore 以 MySQL 数据库

从上面的截图中,我们可以观察到以下内容

  • 首先我们必须使用数据库作为“使用元存储”
  • 一旦选择了元存储,我们就可以使用“show”表命令检查其中存在的表,如屏幕截图所示
  • 无论在 Hive 中创建什么表,元数据都对应于存储在 TBLS 中的表 MySQL 数据库。
  • “Guur99表”是在Hive中创建的,因此相应的元数据存储在 MySQL 在 TBLS 下。

步骤9) 输入 select * from TBLS
检查创建的表是否显示 MySQL 或不

安装并配置 Hive Metastore 以 MySQL 数据库

通过输入 select * from TBLS,它将显示我们在 Hive shell 模式下创建的表

从上面的截图我们可以观察到以下几点:

  • 创建的表名为“guru99”的Hive可以显示在 MySQL 壳模式
  • 除此之外,它还将提供表创建时间、访问时间和其他属性等信息,如上面的屏幕截图所示。