繁体   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