无法从第二次运行oozie工作流作业开始配置单元操作

quhf5bfb  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(355)

在第二次工作流作业运行时,从oozie运行配置单元操作时遇到位问题。在第一次运行worfklow时,作业可以通过pig&hive操作正常运行,但是每当作业要在其第二个示例上运行时,在计划的时间相同的作业会失败,hive异常表示无法访问metastore derby{不确定是哪个jar same在检查derby,我使用的是oracle,same在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-parse completed 1959[main]info org.apache.hadoop.hive.metastore.hivemetastore-0:打开原始存储并实现class:org.apache.hadoop.hive.metastore.objectstore 1985 [main]info org.apache.hadoop.hive.metastore.objectstore-objectstore,initialize调用2278[main]error datanucleus.plugin-bundle“org.eclipse.jdt.core”需要“org.eclipse.core.resources”,但无法解析。2278[main]error datanucleus.plugin-bundle“org.eclipse.jdt.core”需要“org.eclipse.core.runtime”,但无法解析。2278[main]error datanucleus.plugin-bundle“org.eclipse.jdt.core”需要“org.eclipse.text”,但无法解析。2420[main]info datanucleus.persistence-属性datanucleus.cache.level2 unknown-将被忽略2421[main]info datanucleus.persistence-属性javax.jdo.option.nontransactionalread unknown-将被忽略2421[main]info datanucleus.persistence-================持久性配置=================2426[main]infodatanucleus.persistence-datanucleus persistence factory-vendor:“datanucleus”version:“2.0.3”2426[main]info datanucleus.persistence-datanucleus persistence factory为数据存储url=初始化jdbc:derby:;databasename=metastore\u db;create=true“driver=”org.apache.derby.jdbc.embeddeddriver“username=”app“2426[main]info datanucleus.persistence-==========================================================8704[main]info datanucleus.datastore.schema-初始化目录”“,schema“app”使用“none”自动启动选项8704[main]info datanucleus.datastore.schema-目录“”,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[main]info datanucleus.metadata-注册用于元数据初始化的侦听器8858[main]info org.apache.hadoop.hive.metastore.objectstore-初始化的objectstore
我不知道为什么oozie没有读取用户定义的“hivedefault.xml”,同样是从某个jar中读取,不知道使用的是哪个jar。还有为什么/如何每第一次运行的新鲜oozie作业都获得成功,而从第二次运行开始,该作业就无法读取相同的内容。你们能帮我找出我失踪的地方或者需要更新的地方吗

uqjltbpv

uqjltbpv1#

一旦将ojdbc驱动程序放在hdfs的共享库位置,问题就解决了。
上述jar在oozie共享位置不可用,因为derbyjar在那里可用,所以oozie试图连接derbyforhivemetastore。默认情况下。

mspsb9vt

mspsb9vt2#

你需要把它插在 <configuration> 标签:

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

哪里 [HIVE SETTINGS FILE] 是最常调用的文件 hive-site.xml . 这将使您的配置单元脚本能够连接到元存储。

相关问题