草庐IT

hadoop - 在 Oozie 中访问和操作日期

我有一个Oozie工作流程,它需要能够使用不同的日期格式。例如,假设我在2015年1月16日使用job.properties中的属性runDate=20150116运行工作流。我希望能够在Oozie操作中自动使用以下路径:external-file-20150116.csv还有一些其他的数据:/rootDir/resource/150116/*第一个例子很简单,我只是引用:external-file-${runDate}.csv但是第二个例子是不可能的。我只能找到Oozie的内置ELtimestamp()函数,该函数没有用,因为它是固定格式并且不提供任何操作。似乎使用协调器可以解决问题

hadoop - 将 Oozie 协调器的运行日期传播到工作流中

问题总结运行Oozie协调器时,我需要工作流能够以yyyyMMdd格式访问当前日期(即协调器运行的日期)。信息我有一个由协调器初始化的大型Oozie工作流。coord.propertiesnameNode=jobTracker=:8050queueName=defaultoozie.use.system.libpath=trueoozie.libpath=${nameNode}/project/workflow/liboozie.coord.application.path=${nameNode}/project/workflow协调器.xml:${nameNode}/project/

hadoop - 如何将参数传递给 Oozie 中的 mapreduce 作业

我有一个打包为jar文件(mymapreduce.jar)的mapreduce作业。运行时,它需要一些参数,例如hadoopjarmymapreduce.jarStartClass-i输入-p参数1-u参数2。如何将它写为Oozie工作流文件中的一个Action? 最佳答案 在job.properties文件中写入你要在oozie工作流中使用的参数如下nameNode=hdfs://localhost:9000hdfs://abc.xyz.yahoo.com:8020jobTracker=localhost:9001queueNam

hadoop - Oozie 协调工作流

我需要根据命中同一个表的不同文件集运行多个mapreduce作业。我正在探索Oozie,但我并不完全了解Oozie。我的要求是1.根据时间限制(和/或)文件限制运行作业。2.如果某些文件不可用,则应跳过此步骤。3.用户应该能够配置哪些步骤以及每个步骤的优先级。任何人都可以建议Oozie是否符合我的要求?如果可以,我该如何完成?如果没有,是否有任何类似于VisualCron的免费或商业工具可供我们替换以运行mapreduce和基于java的作业? 最佳答案 基本上,您希望根据一天中预定时间的数据可用性为一堆MR作业运行oozie工作流

hadoop 作业与 pyspark 和 oozie 陷入僵局

我正在尝试使用oozie在yarn上运行pyspark,提交工作流后,hadoop作业队列中有2个作业,一个是oozie作业,其应用程序类型为“mapreduce”,另一个作业被触发通过前一个,应用程序类型为“Spark”,当第一个作业正在运行时,第二个作业仍处于“已接受”状态。问题来了,而第一个作业正在等待第二个作业完成继续,第二个是等待第一个完成运行,我可能陷入死锁,我怎么能摆脱这个麻烦,应用程序类型为“mapreduce”的hadoop作业是否与不同应用程序的其他作业并行运行类型?感谢任何建议,谢谢! 最佳答案 请将属性值检查

hadoop - sqoop 导出通过 oozie 失败

我正在尝试通过sqoop从hdfs将数据导出到mysql。我能够通过shell运行sqoop,并且运行良好。但是当我通过oozie调用时。它出现以下错误并失败。我还包括jar。没有描述性日志sqoop脚本:export--connectjdbc:mysql://localhost/bigdata--usernameroot--passwordcloudera--verbose--tableAGGREGATED_METRICS--input-fields-terminated-by'\0001'--export-dir/bigdata/aggregated_metrics错误:Launc

java - 在java中一次设置属性文件中的所有属性

我正在尝试在java中为oozieclient设置属性,这些属性是从属性文件中读取的。属性文件有10个奇怪的属性。有没有一种方法可以一次设置所有这些属性,而不必从文件中读取每个键值对,然后为oozieclient设置它们?OozieClientwc=newOozieClient(http://something:1100/oozie);Propertiesconf=wc.createConfiguration();conf.setProperty("jobTracker",....);conf.setProperty("nameNode",......);...除此之外,有没有一种方法

sql-server - Oozie Sqoop 作业

我正在尝试将sqoop作业作为oozie操作运行。我将MySQL作为jobtracker节点上的元存储。我在某处读到ooziesqoop无法通过导入创建配置单元表。所以我试图将数据转储到hdfs中。现在还是这样吗?我检查了共享库。我正在尝试从MSSQL数据库中获取Sqoop。当我运行不需要来自shell的元存储的sqoop命令时,它可以工作。sqoopimport--connect'jdbc:sqlserver://host;username=sqoopimport;password=password;database=db1'--tablet1--target-dir/user/ro

hadoop - oozie ssh 操作需要很长时间才能完成

我尝试使用以下操作代码在oozie中运行ssh操作工作流作业无密码ssh已配置:127.0.0.1/bin/bash/home/510600/HADOOP_ECO/CDH4/oozietest/test.shfirst${jobTracker}${nameNode}${parse_mainClass}${inputDir}${parse_Output}我在上面的代码中遇到的问题是ooziessh操作需要很长时间才能完成,即使使用2行shell脚本,但是其他操作运行速度非常快。对于上述2个操作,sshaction需要12分钟才能完成,而WordCount操作只需要15秒即可完成我的she

hadoop - 是否可以只用一个协调器启动一些 oozie 工作流?

我不确定如何使用好的工具来完成我想要的。我有很多工作流可以依赖也可以不依赖。例子:/工作流程1/workflow.xml/job.properties/工作流程2/workflow.xml/job.properties....我认为我们可以拥有一个可以启动(在某些数据条件下)所有工作流的协调器。但我开始认为这不是好的做法。我们是否应该为每个工作流程配备一名协调员,并提供所有执行条件+一个启动所有协调员的bundle?像那样:/wf1/workflow.xml/job.properties/协调器.xml/wf2/workflow.xml/job.properties/协调器.xml/b