hadoop - Hive 暂停和恢复任务

标签 hadoop hive

我的问题

我是 Hive 和 Hadoop 环境的新手。我想暂停和恢复在 Hadoop 上运行的 Hive 作业。

我尝试了什么

我想要一些与此相关的想法。我在想的是,如果可行的话,我可能会保存映射器和缩减器的状态。

但我不知道如何跟踪 mapper 和 reducer。我在 hadoop 中找到了一些接口(interface)和类,比如 JobId、JobClient,它们可以帮助跟踪相同的东西。我还阅读了一些工作流类的东西来跟踪每个任务,但不是很清楚。

最佳答案

这几乎是不可能的

如果我没记错的话是 Hive job (或与此相关的任何 hadoop mapreduce 作业)可以等待、运行或完成(成功或失败)。

通常没有办法暂停 Hive 作业并继续。 绝对没有像某些语言中那样的“调试快捷方式”允许您在步骤中间暂停处理,而且我也没有看到断点。

但这是您可以接近的方法

1。拆分作业

这是实用的(虽然有限)方法。

与其制作一个配置单元脚本,不如制作 2 个并运行第一个。第一个可以执行部分​​步骤,或者只能对部分数据进行操作,有效地让您“暂停”。然后恢复将运行补充的第二个脚本。

(如果你愿意,你可以使用调度程序来启动第一个,然后稍后或在触发器之后启动第二个,但我会从简单开始)

2。卡住整个环境

这对于大多数意图和目的来说不是很实用,但可能是可行的,并且可能对资源目的有用。

你也许可以卡住整个集群,如果你真的想深入了解,这应该是可能的。

如何做到这一点(并调查系统的状态)将不是关于 hive 的问题,而是所有节点的整个操作系统。如果您只有 1 个节点,我想将其放入虚拟机可能会很简单。

关于hadoop - Hive 暂停和恢复任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45363534/

相关文章:

hadoop - Hive 字符串索引超出范围错误

hadoop - Hive - 根据某些列选择唯一行

XML Hive Serde 提取时间戳 Hadoop

hadoop - sqoop 脚本中的错误

hadoop - hadoop的gzip与tar -zvcf不同吗?

java - 如何单独测试作为 oozie 工作流一部分的 hadoop MapReduce java 操作(带有文件标签)?

hive - 在Hive中将 “hive.exec.parallel”设置为false有什么好处?

SQL/配置单元 : How to calculate days to purchase

hadoop - 如何选择部分行并在 HBase 中创建新表?

java - Apache gora,在reducer中设置新表名的位置