Hadoop 节点和角色
Hadoop Nodes and Roles
我有一个 Hadoop 集群在工作,它有超过 50 个节点,我们偶尔会遇到磁盘故障,需要停用数据节点角色。
我的问题是 - 如果我只停用数据节点并保留 tasktracker 运行,是否会由于该节点上的 HDFS 服务不可用而导致该节点上的 tasks/jobs 失败?
我预计任何尝试从 "dead" 节点上的 HDFS 读取的任务都会失败。这应该导致节点在 N 次失败后被 M/R 列入黑名单(我认为默认是 3 次)。另外,我相信每次作业运行时都会发生这种情况。
但是,作业仍应完成,因为路由到错误节点的任务将在其他节点上简单地重试。
首先,为了 运行 一份工作,您需要有输入文件。因此,当您将输入文件加载到 HDFS 时,默认情况下这将被拆分为 64 MB 的块大小。也将有 3 个具有默认设置的复制。现在,由于集群中的一个数据节点出现故障,Name node 将不会在该节点中存储数据。即使它也尝试存储,它也会从数据节点获取有关状态的频繁更新。所以它不会选择那个特定的数据节点来存储数据。
当你没有磁盘space并且集群中剩下唯一的死数据节点时,它应该抛出异常。那么是时候更换数据节点并扩展集群了。
希望对您有所帮助。
- Node1 上的 TaskTracker 是否闲置,因为该节点上没有 DataNode 服务? 正确,如果数据节点被禁用,那么任务跟踪器将无法处理数据,因为数据将不可用;它将空闲。 2. 或者 TaskTracker 是否处理来自其他节点上的 DataNode 的数据? 不会,由于数据局部性原则,任务跟踪器不会处理来自其他节点的数据。。 3. Node1 上的 TaskTracker 服务是否由于其节点上的 DN 关闭而出现错误? , 任务跟踪器将无法处理任何数据,因此没有错误。; 4. 如果我在 HDFS 上有 Hive、Impala 等 运行 等服务——这些服务会在与 Node1 上的 TaskTracker 联系时抛出错误吗? 他们将无法联系节点 1 上的任务跟踪器。当客户端请求处理数据时,名称节点会告诉客户端数据位置,因此所有其他应用程序将根据数据位置进行通信有数据节点
我有一个 Hadoop 集群在工作,它有超过 50 个节点,我们偶尔会遇到磁盘故障,需要停用数据节点角色。
我的问题是 - 如果我只停用数据节点并保留 tasktracker 运行,是否会由于该节点上的 HDFS 服务不可用而导致该节点上的 tasks/jobs 失败?
我预计任何尝试从 "dead" 节点上的 HDFS 读取的任务都会失败。这应该导致节点在 N 次失败后被 M/R 列入黑名单(我认为默认是 3 次)。另外,我相信每次作业运行时都会发生这种情况。
但是,作业仍应完成,因为路由到错误节点的任务将在其他节点上简单地重试。
首先,为了 运行 一份工作,您需要有输入文件。因此,当您将输入文件加载到 HDFS 时,默认情况下这将被拆分为 64 MB 的块大小。也将有 3 个具有默认设置的复制。现在,由于集群中的一个数据节点出现故障,Name node 将不会在该节点中存储数据。即使它也尝试存储,它也会从数据节点获取有关状态的频繁更新。所以它不会选择那个特定的数据节点来存储数据。
当你没有磁盘space并且集群中剩下唯一的死数据节点时,它应该抛出异常。那么是时候更换数据节点并扩展集群了。
希望对您有所帮助。
- Node1 上的 TaskTracker 是否闲置,因为该节点上没有 DataNode 服务? 正确,如果数据节点被禁用,那么任务跟踪器将无法处理数据,因为数据将不可用;它将空闲。 2. 或者 TaskTracker 是否处理来自其他节点上的 DataNode 的数据? 不会,由于数据局部性原则,任务跟踪器不会处理来自其他节点的数据。。 3. Node1 上的 TaskTracker 服务是否由于其节点上的 DN 关闭而出现错误? , 任务跟踪器将无法处理任何数据,因此没有错误。; 4. 如果我在 HDFS 上有 Hive、Impala 等 运行 等服务——这些服务会在与 Node1 上的 TaskTracker 联系时抛出错误吗? 他们将无法联系节点 1 上的任务跟踪器。当客户端请求处理数据时,名称节点会告诉客户端数据位置,因此所有其他应用程序将根据数据位置进行通信有数据节点