如何使用 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 服务器
在此步骤中,我们将执行两项任务
- 安装 mysql-server
- 检查 mysql-server 及其进程
- 运用 sudo apt-get install mysql-server 命令,我们可以下载mysql服务器
安装 MySQL 如截图所示
- 安装成功后, MySQL 将按照下面的屏幕截图所示运行
步骤2) 安装 MySQL Java 连接器型
安装 MySQL Java 连接器。用于 Java 依赖和连接目的
步骤3) 为连接器创建软链接
在 Hive lib 目录中为连接器创建软链接。这是用于以下之间的软链接: Java 和 MySql。
步骤4) 在 Hive 中配置 MySql 存储
- 输入 MySql –u root –p 然后输入密码
- 这里-u代表root用户名,p代表密码
- 输入上述命令后,用户必须输入有效的密码,然后单击 Enter
- 然后它将进入MySql shell模式
步骤5) 创建用户名和密码
为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 数据库。
从上面的截图中,我们观察到以下几点。这里我们定义了 4 个属性,这些属性对于将 MYSQL 建立为 Meta 存储是必需的 蜂房
这些如下:
- 此属性用于连接 URL。这里我们在此属性中定义 ConnectionURL。它充当 JDBC 连接及其代表的元存储位置
- 此属性用于连接驱动程序名称。此处,mysql.jdbc.Driver 是我们必须在值标签中提及的受尊重的值
- 此属性用于定义连接用户名。在此,我们将“hiveguru”定义为用户名
- 此属性用于提及连接密码。在此,我们将密码定义为用户密码。
将属性放入 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”。
从上面的截图中,我们可以观察到以下内容
- 创建表名“guru99”,其中包含两个列名
- 提到的列名及其数据类型为一个是整数,另一个是字符串类型
下一步,我们将检查它是否存储在 MySql 中
步骤8) 进入MySql shell模式
从上面的截图中,我们可以观察到以下内容
- 首先我们必须使用数据库作为“使用元存储”
- 一旦选择了元存储,我们就可以使用“show”表命令检查其中存在的表,如屏幕截图所示
- 无论在 Hive 中创建什么表,元数据都对应于存储在 TBLS 中的表 MySQL 数据库。
- “Guur99表”是在Hive中创建的,因此相应的元数据存储在 MySQL 在 TBLS 下。
步骤9) 输入 select * from TBLS
检查创建的表是否显示 MySQL 或不
通过输入 select * from TBLS,它将显示我们在 Hive shell 模式下创建的表
从上面的截图我们可以观察到以下几点:
- 创建的表名为“guru99”的Hive可以显示在 MySQL 壳模式
- 除此之外,它还将提供表创建时间、访问时间和其他属性等信息,如上面的屏幕截图所示。