kavin

spark sql metastore 配置 mysql

kavin 监控 2023-02-27 862浏览 0

本文主要介绍如何为 spark sql 的 metastore 配置成 mysql 。

 

spark 的版本 2.4.0 版本

hive script 版本为 hive 1.2.2 

mysql 为 5.7.18 

 

mysql 的安装部署就不在这里介绍了。

首先为 mysql 的root 用户设置密码

mysql -uroot
> set password= password('mysql');

 

设置mysql 允许其他机器登录

> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql' WITH GRANT OPTION;
> FLUSH PRIVILEGES;

 

创建一个新的database

> CREATE DATABASE metastore;

 

初始化创建hive 的metastore 表

> use metastore;
> source /opt/hive-1.2.2/scripts/metastore/upgrade/mysql/hive-schema-1.2.0.mysql.sql;

初始化过程中,会报告一些错误,但是不影响后续的对接,错误信息如下

ERROR: 
Failed to open file 'hive-txn-schema-0.13.0.mysql.sql', error: 2

 

从 Oracle 官网下载 mysql 的jdbc 驱动,然后将 jdbc jar 包放到 ${SPARK_HOME}/jars 目录下。

 

配置 spark sql 的hive-site.xml 配置文件,新增以下内容

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://HOSTNAME/metastore</value>
  <description>the URL of the MySQL database</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
</property>

<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>DB_USER</value>
</property>

<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>DB_PASSWD</value>
</property>

<property>
  <name>datanucleus.autoCreateSchema</name>
  <value>false</value>
</property>

<property>
  <name>datanucleus.fixedDatastore</name>
  <value>true</value>
</property>

HOSTNAME,填写mysql 的ip 地址或者hostname

DB_USER,填写mysql 的登陆用户名

DB_PASSWD,填写mysql 的登陆密码

 

 

然后直接启动 spark-sql 命令,执行 show tables 测试是否正常,不报错即为正常。

 

Cloudera 官网中,详细地介绍了如何为 hive metastore 配置 mysql, postgresql 和 oracle 数据库,具体地址为:

https://www.cloudera.com/documentation/enterprise/latest/topics/cdh_ig_hive_metastore_configure.html

继续浏览有关 数据库技术文章/教程 的文章
发表评论