2014-01-22 56 views
0

我的hive-site.xml包含mysql的Metastore詳細信息,我試圖通過oozie將它傳遞給配置單元,但由於某種原因它忽略了它。它仍在嘗試使用德比連接Metastore。 我想了解如何指定我的hive-site.xml。hive-site.xml被配置單元忽略

如果我使用命令行客戶端,那麼mysql數據庫將用作Metastore,並且我可以在TBLS下看到由mysql中的配置單元創建的表。

如果我通過oozie將它作爲工作流運行,它正試圖連接到德比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

你上傳了HDFS文件嗎?你確定你在Oozie Hive行動中提供的路徑是否正確? –

+0

你在使用'oozie.hive.defaults'嗎? –

+0

是的。 oozie蜂巢行動正在被調用。但被調用後,它正在訪問德比Metastore而不是mysql Metastore。 是的,我。它指向HDFS上的hive-site.xml。 – user2869305

回答

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>