当前位置: 首页 > 知识库问答 >
问题:

如何在hadoop中调度作业

尉迟远
2023-03-14

我是hadoop新手,我写了一些作业并将它们导出为jar文件。我可以使用hadoop jar命令运行它们,我想每一小时运行一次这些作业。我该怎么做?提前谢谢。

共有3个答案

黄逸清
2023-03-14

除了已经提到的Oozie之外,您可能还想看看Falcon。

然而,根据自己的经验,一种更简单的方法是尝试使用CI系统,以避免向堆栈中添加新系统,例如Jenkins

罗奇文
2023-03-14

您可能可以通过编写cron或一些脚本来实现这一点。但在我看来,更好的方法是使用Oozie之类的调度器。

闻人河
2023-03-14

Hadoop本身没有像您建议的那样安排作业的方法。所以您有两个主要选择,Java的时间和调度功能,或者从操作系统运行作业,我建议使用Cron。我个人会使用cron来实现这一点,它简单且非常灵活,默认情况下安装在大多数服务器上。还有很多教程。

Cron示例在每小时的第一分钟运行。

0 * * * *  /bin/hadoop jar myJar.jar

如果您想将其保留在java本身中,我建议查看这个问题,其中包含详细信息和代码,如何安排每小时开始的任务。

 类似资料:
  • 很长一段时间以来,我一直很头疼,目前我的hadoop集群是这样的,我有40个salve节点要运行,每个从节点我配置了25个映射器和10个简化器,所以我可以同时启动40*25=1000个映射器和400个简化器。好的,现在我有以下工作: job1:我配置为运行5个映射器和5个简化器job2:我配置为运行20个映射器和10个简化器job3:我配置为运行975个映射器和385个简化器 假设我使用默认的FI

  • 我正在使用spring-boot-starter-quartz2.2.1.release来调度Quartz作业,并且我已经在两个节点上部署了我的代码。而quartz.properties是这样的: 如果我发出了查询所有作业的请求,那么该请求可能会被发送到node1,并且只显示node1的作业。但我想同时显示node1和Node2的作业。 如果我发出了更新scanJobbyMachine1的请求,并

  • 我的困惑从这里开始,假设我们在HDFS中有一些数据需要使用下面运行在hadoop代码中的Java代码来处理 在这段代码中,Hadoop的类型类似于LongWritable,Text,intwritable。 让我们选择包裹在Java字符串类型周围的Text类型(如果是错误的请纠正我)。 我的疑问是,当我们在上面的代码中将这些参数传递给我们的方法映射时,这些参数如何与)交互 下面是文本类代码 我的第

  • 我有一个巨大的LPF(长度前缀文件)要由Hadoop处理。 但是,似乎没有合适的InputFormat可以随时读取各个记录,因为没有分隔符来分隔各个记录或列。 输入拆分必须发生在其中一条记录的末尾,这样在其他块中就没有半条记录。否则,记录读取器必须知道一半记录的结尾,以便将其与另一半记录连接起来。请建议一些读取和处理LPF文件的方法

  • 我有一个作业调度bash外壳脚本,其中包含以下代码: 我在后台运行这样的脚本: 我想用 kill -9 终止此调度程序进程。但是我第一次没有记录调度程序进程的 pid。相反,我使用作业来显示所有过程,但它什么也不显示。即使这个fg也不能将这个过程带到前台。 但是我认为这个调度程序进程仍然在运行,因为它仍然在继续分配java程序运行。我应该如何终止这个作业调度程序bash外壳脚本进程? 编辑:我使用

  • 问题内容: 我在redux存储中有一个Cart数组,其中包含我添加到购物车中的所有项目 像这样 并且我有一个输入来添加优惠券代码,当我添加优惠券代码会降低总价,所以如果我没有在商店中存储总计,该如何实现?并在添加此优惠券后渲染总价! 这是我的代码片段 reducer / index.js 购物车屏幕 问题答案: 我的建议是不要在状态中存储冗余(派生的)信息。这意味着您不需要(也不应该!)将总数存储