我的hive-site.xml包含mysql的Metastore详细信息,我试图通过oozie将其传递给hive,但由于某种原因它忽略了它。它仍在尝试使用德比连接Metastore。 我试图找出如何指定我的hive-site.xml。
如果我使用命令行客户端,那么mysql数据库被用作Metastore,我可以在TBLS下的mysql中看到由hive创建的表。
如果我通过oozie将其作为工作流程运行,它会尝试连接到derby Metastore。
Here are two lines from log.
6649 [main] INFO DataNucleus.Persistence - DataNucleus Persistence Factory - Vendor: "DataNucleus" Version: "2.0.3"
6649 [main] INFO DataNucleus.Persistence - DataNucleus Persistence Factory initialised for datastore URL="jdbc:derby:;databaseName=metastore_db;create=true" driver="org.apache.derby.jdbc.EmbeddedDriver" userName="APP"
任何建议将不胜感激。 谢谢 拉维
Hadoop 1.2.1 蜂巢0.11 OOzie 3.3.2
答案 0 :(得分:0)
您可以尝试在工作流程xml中设置以下配置。您可以将其设置为全局,以便它适用于所有配置单元节点。
<global>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>hive.metastore.local</name>
<value>${hivemetastorelocal}</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>${hivemetastoreuris}</value>
</property>
<property>
<name>hive.metastore.client.socket.timeout</name>
<value>${hivemetastoreclientsockettimeout}</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>${hivemetastorewarehousedir}</value>
</property>
<property>
<name>hive.metastore.execute.setugi</name>
<value>${hivemetastoreexecutesetugi}</value>
</property>
</configuration>
</global>