我正在使用Apache Spark 2.1.1,并将以下hive-site.xml放在$SPARK_HOME/conf
文件夹中:
<?xml version="1.0"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://mysql_server:3306/hive_metastore?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>password</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>${test.tmp.dir}/hadoop-tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://hadoop_namenode:9000/value_iq/hive_warehouse/</value>
<description>Warehouse Location</description>
</property>
</configuration>
当我启动Thrift服务器时,Metastore模式是在我的MySQL DB上创建的,但未使用,而是使用了Derby。在节俭服务器日志文件上找不到任何错误,唯一引起我注意的是,它首先尝试使用MySQL(
INFO MetaStoreDirectSql: Using direct SQL, underlying DB is MYSQL
),但随后没有任何错误,而是使用Derby(INFO MetaStoreDirectSql: Using direct SQL, underlying DB is DERBY
)。这是节俭服务器日志https://www.dropbox.com/s/rxfwgjm9bdccaju/spark-root-org.apache.spark.sql.hive.thriftserver.HiveThriftServer2-1-s-master.value-iq.com.out?dl=0我的系统上没有安装 hive ,我只是假装使用内置的Apache Spark hive 。
我正在使用
mysql-connector-java-5.1.23-bin.jar
文件夹中的$SPARK_HOME/jars
。 最佳答案
如它在hive-site.xml中显示的那样,您尚未设置要连接的metastore服务。因此,spark将使用默认的服务,即带有derby DB后端的本地metastore服务
我要使用以MySQL数据库为后端的Metastore服务,您必须:
<property>
<name>hive.metastore.uris</name>
<value>thrift://METASTRESERVER:XXXX</value>
</property>
关于mysql - 未使用Hive MySQL Metastore中的Spark构建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45194823/