簡體   English   中英

無法從第二次Oozie工作流程作業中啟動Hive動作

[英]Unable to Start Hive Action from Second Run of Oozie Workflow Job

從Second Workflow Job Run運行Oozie的Hive Action時遇到一點問題。 第一次運行Worfklow作業時,Pig&Hive Action可以正常運行,但是每當作業要在其第二個實例上運行時,在計划的時間,同一作業就會失敗,並且Hive異常,導致無法訪問Metastore derby。 {不確定哪個Jar正在檢查Derby,正在使用Oracle的地方,並且是否在hive-site.xml,hive-default.xml中對其進行了更新}

如果作業在殺死前一個實例之后重新開始,則按預期完成任務。

使用Hive0.9和Oozie 3.3.0,使用Oracle的metastore更新了HDFS中的hive-site.xml,hive-default.xml,oozie-user-hive-default.xml以及DFS Oozie的本地和共享位置,但還是一樣不起作用。

我的工作流程如下:

<action name="hiveForUploadData">
<hive xmlns="uri:oozie:hive-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>oozie.launcher.mapred.job.queue.name</name>
<value>default</value>
</property>
<property>
<name>oozie.hive.defaults</name>
<value>${namenode}/user/hive-default/hive-default.xml</value> -- {have tried with hive-site.xml & oozie-user-hive-default.xml as well }
</property>
</configuration>
<script>UploadScripts.q</script>
<param>inputfile_name=/user/input/table/filename</param>
</hive>
<ok to="end"/>
<error to="error"/>
</action>
<kill name="error">
<message>Hive Action Failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>

第一次運行成功,運行良好,Oracle Meta Store也得到更新,第二次運行失敗:無法訪問metastore {derby} 1836 [main] INFO hive.ql.parse.ParseDriver-解析完成1959 [main] INFO組織。 apache.hadoop.hive.metastore.HiveMetaStore-0:打開具有實現類的原始存儲庫:org.apache.hadoop.hive.metastore.ObjectStore 1985 [main] INFO org.apache.hadoop.hive.metastore.ObjectStore-ObjectStore,初始化名為2278 [main]錯誤DataNucleus.Plugin-捆綁“ org.eclipse.jdt.core”需要“ org.eclipse.core.resources”,但無法解決。 2278 [main]錯誤DataNucleus.Plugin-捆綁“ org.eclipse.jdt.core”需要“ org.eclipse.core.runtime”,但無法解決。 2278 [main]錯誤DataNucleus.Plugin-捆綁“ org.eclipse.jdt.core”需要“ org.eclipse.text”,但無法解決。 2420 [main] INFO DataNucleus.Persistence-屬性datanucleus.cache.level2未知-將被忽略2421 [main] INFO DataNucleus.Persistence-屬性javax.jdo.option.NonTransactionalRead未知-將被忽略2421 [main] INFO DataNucleus.Persistence -=================持久性配置================ 2426 [main] INFO DataNucleus.Persistence-DataNucleus持久性工廠-供應商: “ DataNucleus”版本:“ 2.0.3” 2426 [main]信息DataNucleus.Persistence-為數據存儲URL初始化的DataNucleus持久性工廠URL =“ jdbc:derby:; databaseName = metastore_db; create = true” driver =“ org.apache.derby。 jdbc.EmbeddedDriver“ userName =” APP“ 2426 [main]信息DataNucleus.Persistence-=============================== ============================================================================ 7044 [main] INFO DataNucleus.Datastore.Schema-初始化目錄“”,模式“ APP”使用“ None” “自動啟動選項8704 [main] INFO DataNucleus.Datastore.Schema-目錄”“,模式” APP“已初始化-管理0類8795 [main] INFO o rg.apache.hadoop.hive.metastore.ObjectStore-使用hive.metastore.cache.pinobjtypes =“ Table,StorageDescriptor,SerDeInfo,Partition,Database,Type,FieldSchema,Order”設置MetaStore對象引腳類8832 [main] INFO DataNucleus。 MetaData-注冊用於元數據初始化的偵聽器8858 [main] INFO org.apache.hadoop.hive.metastore.ObjectStore-初始化的ObjectStore

不知道為什么Oozie不會讀取用戶定義的“ hive-default.xml”,而是從Some Jar中讀取相同內容,不確定是否使用了它。 另外,為什么/如何在新的Oozie作業的每個第一次運行中都獲得成功,而從第二次運行起,該工作無法讀取相同的內容。 你們可以幫我找出缺失的地方或需要更新的地方嗎

您需要在<configuration>標簽上方插入:

<job-xml>[HIVE SETTINGS FILE]</job-xml>

其中[HIVE SETTINGS FILE]是最常見的文件,稱為hive-site.xml 這將使您的Hive腳本能夠連接到元存儲。

將OJDBC驅動程序放置在HDFS的共享Lib位置后,問題得到解決。

所說的Jar在Oozie共享位置不可用,因為那里提供了Derby Jar,所以Oozie試圖為Hive-MetaStore連接Derby。 在默認情況下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM