【发布时间】:2015-02-02 09:50:18
【问题描述】:
从 Second Workflow Job Run 从 Oozie 运行 Hive Action 时遇到一点问题。 在 Worfklow 的第一次运行中,作业在 Pig 和 Hive Action 上运行良好,但是每当作业要在其第二个实例上运行时,在预定的时间,相同的作业就会失败,并且 Hive 异常表示无法访问元存储德比。 {不确定哪个 Jar 正在检查 Derby,在哪里使用 Oracle,并且在 hive-site.xml、hive-default.xml 中更新相同}
如果作业在杀死前一个实例后重新开始,则同样会按预期完成。
使用 Hive0.9 和 Oozie 3.3.0,Metastore 使用 Oracle 已更新 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 也得到更新 第二次运行获取失败:无法访问元存储 {derby} 1836 [main] 信息 hive.ql.parse.ParseDriver - 解析完成 1959 [main] INFO org.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] INFO DataNucleus.Persistence - DataNucleus Persistence Factory 已为数据存储区初始化 URL="jdbc:derby:;databaseName=metastore_db;create=true" driver="org.apache.derby.jdbc.EmbeddedDriver" userName="APP" 2426 [主要] INFO DataNucleus.Persistence - ========================================== =================== 8704 [main] INFO DataNucleus.Datastore.Schema - 使用“无”自动启动选项初始化目录“”,模式“APP” 8704 [main] INFO DataNucleus.Datastore.Schema - 目录“”,模式“APP”已初始化 - 管理 0 个类 8795 [main] INFO org.apache.hadoop.hive.metastore.ObjectStore - 使用 hive.metastore.cache.pinobjtypes="Table,StorageDescriptor,SerDeInfo,Partition,Database,Type,FieldSchema,Order" 设置 MetaStore 对象 pin 类 8832 [main] INFO DataNucleus.MetaData - 为元数据初始化注册监听器 8858 [main] INFO org.apache.hadoop.hive.metastore.ObjectStore - 已初始化 ObjectStore
我不确定为什么 Oozie 没有读取用户定义的“hive-default.xml”,并且从 Some Jar 中读取也是如此,不确定它正在使用哪个 Jar。 还有为什么/如何每次第一次运行新的 Oozie 工作都获得成功,从第二次运行开始,工作无法读取相同的内容。 你们能帮我找出丢失的地方或需要更新的地方吗
【问题讨论】: