2015-12-06 50 views
1

我有一个使用spark的spark,scala sbt项目。我需要多个创建HiveContexts,这是内置derby对火花蜂巢不允许的。有人可以帮助我设置mysql作为Metastore,而不是Derby,这是默认数据库。我没有安装实际的配置单元或安装了spark。我对火花和配置单元使用sbt依赖关系。在星火的conf目录将MySQL设置为内置火星蜂巢的Metastore

回答

0

复制蜂房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> 
+0

我的项目是一个sbt项目,它使用火花罐。任何地方都没有conf目录。尝试在项目根目录下创建一个conf目录,但没有任何影响。 – Shakti

+0

不在您的项目中,请转至群集的配置目录,其他conf文件驻留的位置像spark-default.conf和spark-env.sh。然后将hive-site.xml文件复制到此目录中并更改属性 – Kaushal

+0

我没有使用群集,而是使用了一个spark jar。没有其他配置文件。 – Shakti

0

沙克蒂

你必须在类路径的conf文件更改某些属性。我正在用Intellij来使用hadoop,hive和spark。在Intellij中,我在我的类路径中有file/usr/local/spark/conf /,file:/ usr/local/hadoop/etc/hadoop /和file:/ usr/local/hive/conf /。您可以使用下面打印您的运行时类路径:

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

我希望这个帮助,如果你还没有找到了解决。