【问题标题】:Could an HDFS read/write process be suspended/resumed?可以暂停/恢复 HDFS 读/写进程吗?
【发布时间】:2016-10-12 00:59:43
【问题描述】:

我有一个关于HDFS读/写过程的问题:

假设我们有一个客户端(为了示例,假设客户端是一个 HADOOP 映射进程)请求从 HDFS 读取文件或将文件写入 HDFS,这是实际从/向 HDFS 进行读/写的进程?

我知道Namenode有一个进程,每个Datanode都有一个进程,他们对系统的一般职责是什么,但我在这种情况下感到困惑。

是客户端本身的进程,还是 HDFS 中的另一个进程,创建并专用于该特定客户端,以便访问和读取/写入 HDFS

最后,如果第二个答案是真的,有没有可能让这个进程暂停一段时间?

我做了一些研究,发现最重要的解决方案是 hadoop API 中的 OozieJobControl 类。

但是,由于我不确定上述工作流程,因此我不确定我正在使用这些工具暂停和恢复哪个流程。

是客户端的进程还是为了满足客户端的请求而运行在 HDFS 中的进程?

【问题讨论】:

    标签: hdfs hadoop2 hadoop-2.7.2


    【解决方案1】:

    查看这些 SE 帖子以了解 HDFS 写入的工作原理:

    Hadoop 2.0 data write operation acknowledgement

    Hadoop file write

    Hadoop: HDFS File Writes & Reads

    除了文件/块写入之外,上述问题还解释了数据节点故障场景。

    良好的datanode上的当前块被赋予一个新的身份,该身份被传达给namenode,这样如果失败的datanode稍后恢复,则失败的datanode上的部分块将被删除。失败的datanode从管道中移除,并从两个好的datanode构建一个新的管道。

    datanode 中的一次故障会触发框架的纠正措施。

    关于您的第二个查询:

    你有两种调度器:

    FairScheduler

    CapacityScheduler

    看看这个article 暂停和恢复

    在多应用集群环境中,运行在 Hadoop YARN 内的作业的优先级可能低于运行在 Hadoop YARN 之外的作业(如 HBase)。为了让位于 Hadoop 中其他更高优先级的作业,用户或某些集群级资源调度服务应该能够暂停和/或恢复 Hadoop YARN 中的某些特定作业.

    当 Hadoop 内的目标作业暂停时,那些已经分配并正在运行的任务容器将继续运行,直到它们完成或通过其他方式主动抢占。但不会再为目标作业分配新的容器。

    相比之下,当暂停的作业进入恢复模式时,它们将继续从之前的作业进度运行,并分配新的任务容器来完成其余的作业。

    【讨论】:

    • 感谢您的回答!我不明白最后一部分。第二个客户端优先级更高的例子呢?
    • 现在我正在尝试重新考虑我之前的答案,是否可以使用基于这两个帖子的数据队列? stackoverflow.com/questions/34464187/hadoop-file-write/…stackoverflow.com/questions/32038000/…
    • 并关注我最初的帖子:JobControl 类暂停客户端的进程,而不是 HDFS 读/写对吗?有没有办法暂停 HDFS 读/写过程?
    • 非常有用的信息,但是如何手动暂停读/写请求呢?根据 cmets,[YARN-2172] 补丁不起作用。
    • 我没有看到任何文档问题。暂停作业的运行任务无法停止。它们将使用有限的容器运行。一旦工作恢复,任务将获得更多容器。
    【解决方案2】:

    据我了解,Datanode 的进程从客户端进程(请求在 HDFS 中存储一些数据)接收数据并将其存储。然后这个Datanode将完全相同的数据转发到另一个Datanode(以实现复制)等等。当复制完成时,一个确认将返回给 Namenode,Namenode 将最终通知客户端他的写请求完成。

    根据上面的流程,为了服务第二个客户端的写请求而暂停 HDFS 写操作是不可能的(假设第二个客户端具有更高的优先级),因为如果我们自己暂停 Datanode,它将保持对所有想在上面写的人暂停,因此这部分 HDFS 将保持阻塞状态。最后,如果我暂停 JobController 类函数的作业,我实际上暂停了客户端的进程(如果我真的设法在他的请求完成之前捕获它)。如果我错了,请纠正我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多