将MySQL设置为内置spark hive的Metastore

时间:2015-12-06 05:19:04

标签: apache-spark hive

我有一个使用spark的spark,scala sbt项目。我需要多次创建HiveContexts,内置德比不允许使用spark Hive。有人可以帮我设置mysql作为Metastore而不是derby,这是默认的db。我没有安装实际的配置单元或安装了spark。我对spark和hive使用了sbt依赖。

2 个答案:

答案 0 :(得分:0)

在Spark的conf目录中复制hive-site.xml文件并更改该文件中的一些属性

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/metastore_db?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value>
  <description>username to use against metastore database</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
  <description>password to use against metastore database</description>
</property>

答案 1 :(得分:0)

沙克蒂

您需要在类路径中包含conf文件。我正在使用带有Intellij的hadoop,hive和spark。在Intellij中,我的文件:/ usr / local / spark / conf /,文件:/ usr / local / hadoop / etc / hadoop /,以及文件:/ usr / local / hive / conf /在我的类路径中。您可以使用以下命令打印运行时类路径:

  val cl = ClassLoader.getSystemClassLoader
  cl.asInstanceOf[java.net.URLClassLoader].getURLs.foreach(println)  

如果您还没有找到解决办法,我希望能提供帮助。