无法从第二次运行 Oozie 工作流作业启动 Hive 操作



从第二次工作流作业运行从 Oozie 运行 Hive 操作时遇到位问题。在 Worfklow 作业的第一次运行时,Pig & Hive Action 运行良好,但是每当作业要在其第二个实例上运行时,在计划的时间,相同的作业都会失败,并出现 Hive 异常,说无法访问元存储德比。{不确定哪个 Jar 同样正在检查 Derby,我在哪里使用 Oracle 并且在 hive-site.xml、hive-default.xml} 中更新了相同的

如果作业在终止前一个实例后重新开始,则相同的实例将按预期完成。

使用 Hive0.9 和 Oozie 3.3.0,使用 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>

第一次运行成功,工作正常 甲骨文元商店也得到了更新第二次运行失败,并显示:无法访问元存储 {derby}1836 [main] INFO hive.ql.parse.ParseDriver - Parse 已完成1959 [主要] INFO org.apache.hadoop.hive.metastore.HiveMetaStore - 0:打开原始存储与实现类:org.apache.hadoop.hive.metastore.ObjectStore1985 [main] INFO org.apache.hadoop.hive.metastore.ObjectStore - ObjectStore,初始化调用2278 [main] ERROR DataNucleus.Plugin - 捆绑包"org.eclipse.jdt.core"需要"org.eclipse.core.resources",但无法解析。2278 [main] ERROR DataNucleus.Plugin - 捆绑包"org.eclipse.jdt.core"需要"org.eclipse.core.runtime",但无法解析。2278 [main] ERROR DataNucleus.Plugin - 捆绑包"org.eclipse.jdt.core"需要"org.eclipse.text",但无法解析。2420 [主要] INFO DataNucleus.Persistence - Property datanucleus.cache.level2 未知 - 将被忽略2421 [主要] INFO DataNucleus.Persistence - Property javax.jdo.option.NonTransactionalRead unknown - 将被忽略2421 [主要] 信息 数据核.持久性 - ================= 持久性配置 =================2426 [主要] INFO DataNucleus.Persistence - DataNucleus Persistence Factory - 供应商:"DataNucleus" 版本:"2.0.3"2426 [主要] INFO DataNucleus.Persistence - DataNucleus Persistence Factory 初始化为 datastore URL="jdbc:derby:;d atabaseName=metastore_db;create=true" driver="org.apache.derby.jdbc.EmbeddedDriver" userName="APP"2426 [主要] 信息 数据核.持久性 - =======================================================================8704 [主要] INFO DataNucleus.Datastore.Schema - 初始化目录",使用"无"自动启动选项的架构"APP"8704 [主要] 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"8832 [主要] INFO DataNucleus.MetaData - 注册元数据初始化侦听器8858 [main] INFO org.apache.hadoop.hive.metastore.ObjectStore - Initialized ObjectStore

我不确定为什么Oozie没有读取用户定义的"hive-default.xml",同样是从某个Jar读取的,不确定它使用的是哪个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

。 默认。

最新更新