我有以下用例。在oozie工作流中,map-reduce操作会生成一系列诊断计数器。我想在map-reduce操作之后有另一个java操作。java操作基本上根据来自map-reduce操作的计数器进行验证,并根据验证条件和结果生成一些通知。这个想法起作用的关键是java操作必须能够访问上游map-reduce操作中的所有计数器,就像oozie如何使用EL在其工作流xml中访问它们一样。现在我不知道从哪里开始。因此,非常感谢任何指针。更新例如,假设我有一个名为foomr的map-reduce操作。在oozie工作流xml中,您可以使用EL访问计数器,例如,${hadoop:counte
我有ooziejava操作。成功完成作业后,我在oozie日志中找不到System.out.println输出。我正在查看网络控制台“作业日志”屏幕。我在那里看到与我的oozie作业相关的日志输出,但不是System.out.println输出。我如何配置oozie以便我可以看到`System.out.println的输出? 最佳答案 您应该覆盖hadoopjar文件中的log4j.properties:-Dlog4j.configuration=PATH_TO_FILE(带空格键)例如:ooziejob-oozie"$oozieS
我正在尝试执行同事编写的oozie工作流。我执行这个命令:ooziejob-config./job.properties-run我已经在job.properties中设置了参数,包括我的user.name,当我检查日志时,我可以看到工作流中使用的这些值-在我的hdfs目录中创建文件(例如exportDir=/user/${user.name}/ra_export)。但在工作流程的某个时刻,它因权限错误而失败,因为它试图修改我同事目录中的某些内容。它的行为就好像${user.name}被缓存在某个地方,并且正在使用旧值。有没有人见过这样的行为,如果有,解决方案是什么?更新:这是日志的失败
Hadoop版本-1.2.1Maven版本-3.0.5配置单元版本-0.14.0pig版本-0.14.0当我开始使用以下命令构建oozie时./mkdistro.sh-DskipTests我得到以下错误[INFO]ApacheOozieShareLibSqoop......................SKIPPED[INFO]ApacheOozieShareLibStreaming..................SKIPPED[INFO]ApacheOozieShareLibDistcp.....................SKIPPED[INFO]ApacheOozieW
我有一个当前的oozie作业查询Oracle表并写入-覆盖配置单元查询的结果。现在我需要防止覆盖配置单元表并将现有数据保存在该配置单元表上。为此,我想计划这样的步骤:第一步:获取运行“selectcount(*)from...”查询的记录数并将其写入文件。第2步:检查写入文件的计数。第三步:决定是否应用第四步的步骤。第4步:运行主查询并覆盖hive表。我的问题是我找不到任何关于将它们写入文件的文档和/或示例(我知道导入和导出是sqoop的目标)。有谁知道如何将wuery结果写入文件? 最佳答案 理论上:构建一个Pig作业来运行“co
在我的hadoop集群中,我们有一个namenode和一个secondaryNameNode。我正在我的oozie作业中执行一个步骤,该步骤必须具有“事件”名称节点。有什么东西可以让我从Oozie查询“事件”名称节点吗?请注意,这是一个相当大的集群,不能保证Oozie和HDFS位于同一位置。编辑:请注意,我的问题与Oozie配置无关。配置已经完成。我的问题是查询工作流中的事件名称节点。 最佳答案 如果您有主动-被动/HA配置-oozie应该使用命名空间而不是主动名称节点进行配置。 关于h
我在sqoopJob.sh中编写了以下sqoop作业------------myscript.sh--------------------TARGET_DIR=date+"%Y_%m_%d"sqoopimport--connectjdbc:mysql://localhost/mydb--usernameroot--passwordroot--tableCustomer--m1--target-dir/temp/$TARGET_DIR我想使用oozie执行。它给了我以下错误Cannotrunprogram"CustomerImportScript.sh"(indirectory"/had
设置coordinatoroozie时错误文件不存在的解决方法:我在日志协调器中有错误:Pig日志文件转储:后端错误信息错误:java.io.FileNotFoundException:文件不存在:/user/hdfs/jay/part-0.tmp设置协调器:LAST_ONLY${nameNode}/user/hdfs/jay/${YEAR}/${MONTH}/${DAY}/${HOUR}${MINUTE}${nameNode}/user/hdfs/jay/output${coord:current(-2)}${coord:current(-2)}${appFolder}INPUT${
我想检查文件是否存在于给定的HDFS位置。我们可以在fs:exists的帮助下检查文件是否存在于给定的HDFS位置,即如果文件名为test_25082016,在协调工作的帮助下,我们可以获得日期值,即在我们的示例中作为参数today。工作Proppath=/user/cloudera/file/input/test_在workflow.xml中${fs:exists(concat(concat(nameNode,path),today))}${fs:exists(concat(concat(nameNode,path),yesterday))}它按预期工作。但就我而言,我的HDFS位置
我正在浏览大量Oozie示例,我最感兴趣的三个操作是Sqoop、Hive和Pig操作。在某些示例中,mapreduce.job.queuename属性(旧版本为mapred.queue.name)通常配置为default,例如这个:...mapreduce.job.queuenamedefault另一方面,其他示例没有指定任何队列(也没有指定全局配置)。是否需要配置队列?如果我没有指定会发生什么? 最佳答案 Doesconfiguringthequeuenecessary?否没有必要。WhatwouldhappenifIdidn't