草庐IT

oozie-workflow

全部标签

hadoop - 通过oozie运行shell脚本

我正在尝试通过oozie执行shell脚本,但我遇到了一些问题。我有一个这样的属性文件(import.properties):startIndex=2000chunkSize=2000想法是,在每次执行中,startIndex值都会根据block大小进行更新。所以如果我执行它,它应该有startIndex=4000chunkSize=2000我已经单独测试了脚本,它运行良好。这是我的其他相关文件。工作属性nameNode=hdfs://192.168.56.101:8020jobTracker=192.168.56.101:50300wfeRoot=wfequeueName=defau

hadoop - 为 HA JobTracker 配置 oozie 工作流属性

对于Oozie工作流,您必须在工作流的属性中指定集群的JobTracker。当您只有一个JobTracker时,这很容易:jobTracker=主机名:端口当集群配置为HA(高可用性)JobTracker时,我需要能够设置我的属性文件以便能够访问任何一个JobTracker主机,而无需在JobTracker具有时更新我的​​所有属性文件故障转移到第二个节点。当通过http访问一个JobTracker时,如果它没有运行,它会重定向到另一个,但是oozie不使用http,所以没有重定向,如果属性文件指定作业,这会导致工作流失败未运行的跟踪器主机。如何配置我的属性文件以处理在HA中运行的Jo

hadoop - Hive 操作失败,主类 [org.apache.oozie.action.hadoop.HiveMain],退出代码 [40000]

我是这方面的新手,所以我完全有可能错过一些基本的东西。我正在尝试运行从协调器启动的Oozie工作流。协调器等待文件出现在目录中。工作流包含运行此脚本的Hive操作:CREATEexternalTABLEIFNOTEXISTSdaily_dump(idbigint,creationdatetimestamp,datelastupdatedtimestamp,data1string,data2string)LOCATION'/data/daily_dump';FROMdaily_dumpdINSERTOVERWRITETABLEmydata_orcPARTITION(id,datelast

hadoop - 如何使用oozie检查文件是否存在于HDFS位置?

如何使用Oozie检查HDFS位置的文件是否存在?在我的HDFS位置,我会在每天晚上11点得到一个像这样的文件test_08_01_2016.csv。我想在晚上11点15分之后检查这个文件是否存在。我可以使用Oozie协调器作业安排批处理。但是我如何验证该文件是否存在于HDFS中? 最佳答案 您可以在oozie中使用EL表达式,例如:${fs:exists('/path/test_08_01_2016.csv')}您还可以使用简单的shell脚本使用捕获输出来构建文件的名称。 关于had

hadoop - 如何在 OOZIE 工作流中使用逻辑运算符

我有一个oozie工作流程我正在使用决策控制节点在谓词中我想“&&”两个不同的条件我需要在它们之间使用“&&”来获得最终的TRUE/FALSE结果我找不到这种条件的谓词语法我正在使用这个---------我想做这个=condition1&&condition2谁能帮我解决语法问题? 最佳答案 我会用一个例子来解释这一点。假设我们有一个Java操作(我们将此操作称为getAgeInfo),它输出一个人的年龄:'person.age':AgeofthepersonAction:..........下一个Action是makeClassi

hadoop - 如何在 oozie 作业中指定多个 libpath?

我的oozie作业使用2个jarx.jar和y.jar,下面是我的job.properties文件。oozie.libpath=/liboozie.use.system.libpath=true当两个jar都位于HDFS上的相同位置/lib/x.jar和/lib/y.jar时,这非常有效现在我有2个jar放在不同的位置/lib/1/x.jar和/lib/2/y.jar。我如何重写我的代码,以便在运行mapreduce作业时同时使用这两个jar?注意:我已经引用了答案Howtospecifymultiplejarfilesinoozie但是,这并不能解决我的问题

hadoop - 我可以动态重命名 oozie 作业名称吗

我们有一个Hadoop服务,其中有多个应用程序。我们需要通过重新执行相同的工作流来处理每个应用程序的数据。这些计划在一天的同一时间执行。问题是,当这些作业正在运行时,很难知道该作业正在为哪个应用程序运行/失败/成功。当然,我可以打开作业配置并知道它,但这确实需要时间,因为有10多个应用程序在该服务下运行。oozie中是否有任何选项可以在执行作业时动态传递工作流(或其中的一部分)的名称ooziejob-run-config-name""ORooziejob-run-config-nameSuffix""此外,我们不希望创建多个作业文件夹来单独执行,因为那样复制粘贴会太多。请推荐。

hadoop - Oozie:oozie 是否生成输出事件?

在oozie中,input-events非常简单,如果指定的文件/文件夹不存在,协调器作业将保持在WAITING状态。但我无法理解output-events的作用。根据我的理解,在output-events标签中指定的文件/文件夹应该由oozie创建,以防所有指定的操作都成功。但那不会发生。我也找不到任何相关日志。文档也不清楚这一点。那么,问题是,Oozie是否真的创建了output-events中指定的文件/文件夹?或者它只是提到这些特定的文件/文件夹是在工作流程中创建的,创建的责任在工作上,而不是在Oozie上?相关代码见https://gist.github.com/venkat

java - 使用 oozie 为 mapreduce 作业写入多个输出流的正确方法是什么?

我正在使用新的HadoopAPI编写一系列map-reduce作业。我打算使用Oozie将所有这些管道连接在一起,但我似乎无法找到一种方法来从工作流中的map-reduce节点执行多个输出流。通常要编写多个输出,我会使用类似于MultipleOutputsjavadoc中给出的代码的代码,但oozie从workflow.xml文件中获取所有配置,因此无法像示例中那样配置命名输出。我遇到了一个thread讨论了Oozie中多个输出的使用,但除了创建Java任务并将其直接添加到Oozie管道之外,没有提出任何解决方案。有没有办法通过workflow.xml中的map-reduce节点来实现

bash - Oozie shell 脚本 Action

我正在探索Oozie管理Hadoop工作流的功能。我正在尝试设置调用一些配置单元命令的shell操作。我的shell脚本hive.sh看起来像:#!/bin/bashhive-fhivescripthive脚本(已独立测试)创建一些表等的位置。我的问题是将hivescript保存在哪里,然后如何从shell脚本中引用它。我尝试了两种方法,首先使用本地路径,比如hive-f/local/path/to/file,然后使用像上面那样的相对路径,hive-fhivescript,在这种情况下,我将我的hivescript保存在oozie应用程序路径目录中(与hive.sh和workflow.