spark sql metastore 配置 mysql

Posted chenfool

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark sql metastore 配置 mysql相关的知识,希望对你有一定的参考价值。

本文主要介绍如何为 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

以上是关于spark sql metastore 配置 mysql的主要内容,如果未能解决你的问题,请参考以下文章

spark sql应该如何配置访问hive metastore? [复制]

在“spark-defaults.conf”中设置属性“spark.sql.hive.metastore.jars”后出现异常

Spark Sql数仓报-Metastore contains multiple versions

spark MetaException(message:Version information not found in metastore. )

dolphinscheduler调试问题记录

如何配置 Apache Spark 2.4.5 以连接到 HIVE 的 MySQL Metastore?