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

Hadoop如何退役数据阳极并用另一台机器替换它?

董昕
2023-03-14
    null

现在这实际上是一个开发环境,我可以使用Pig导出HDFS数据和HBase数据,清除所有datanode和zookeeper的数据目录,并使用Pig将数据导入回来。除了跛脚,我相信这对我来说是一个很好的锻炼。

共有1个答案

蒋高超
2023-03-14

如果您只是在一个大小合理的集群中替换一台机器,那么您通常只需关闭要解除任务的机器的regionserver,等待重新分配区域,然后关闭datanode,等待Hadoop NameNode UI中的“欠复制块数”降至零。然后,当您向集群中添加一台新机器时,您可以运行Hadoop balancer工具来重新平衡数据块。然后使用HBase shell运行HBasebalancer命令。这将重新平衡HBase区域。

如果您要使多个节点退役,则可能需要阅读有关清除节点的内容。还可以使用hdfs-site.xml(dfs.hosts.exclude)和mapred-site.xml(mapreduce.jobtracker.hosts.exclude.filename)中的节点排除项将节点标记为已退役。

我发现HBase中的重新平衡区域相对较快,并不令人担忧。重新平衡HDFS块要花费更多的时间,因此可能值得也可能不值得,这取决于集群的大小和集群的满度。

 类似资料:
  • 问题内容: 我在本地计算机上为postgres创建了一个docker卷。 然后,我使用了该卷并运行了一个docker。 之后,我做了一些数据库操作,这些操作自动存储在postgres-data中。现在,我想将该卷从本地计算机复制到另一台远程计算机。怎么做一样。 注意-数据库大小非常大 问题答案: 如果第二台计算机启用了SSH,则可以在第一台计算机上使用Alpine容器来映射该卷,将其捆绑并发送到第

  • 默认情况下,Hadoop在文件的块边界上拆分映射器要处理的文件。也就是说,这就是FileInputFormat实现为getSplits()所做的事情。然后,Hadoop确保映射器要处理的块被复制到映射器运行的Datanode上。 现在我想知道,如果我需要在InputSplit外部读取(在RecordReader中,但这是不相关的),与在InputSplit内部读取相比,这花费了我多少钱--假设它外

  • 问题内容: 如Docker文档中有关使用卷的文档中所述,存在所谓 的仅数据 容器的概念,该容器提供了可以安装到多个其他容器中的卷,无论该数据容器是否正在运行。 基本上,这听起来很棒。但是有一件事我不明白。 这些卷(由于可移植性原因, 未 明确映射到主机上的文件夹,如文档所述)由Docker在主机上的某个内部文件夹中创建和管理。 假设我使用了这样一个卷,然后需要将其从一台主机迁移到另一台主机-如何移

  • 正如Docker有关卷的文档中所述,存在所谓的仅数据容器的概念,它提供了一个可以装入多个其他容器的卷,无论仅数据容器是否实际运行。 基本上,这听起来很棒。但有一件事我不明白。 这些卷(如文档所述,出于可移植性原因,这些卷不会显式映射到主机上的文件夹)由Docker在主机上的某个内部文件夹中创建和管理()。 假设我使用这样一个卷,然后我需要将它从一台主机迁移到另一台主机——我如何移植该卷?AFAIC

  • 我想在一个JFrame中用另一个Jpanel替换一个Jpanel,我已经搜索并尝试了我的代码,但什么也没有发生,这是我的代码: 有人能帮帮我吗?多谢

  • ...或在namenode文件中。jobtracker只是重复在datanode日志中发现的错误。在失败之前几分钟的一个错误是EOF错误,对于PartialBuilder来说,这可能是问题,也可能不是问题: 我能够直接读写文件到DFS。我甚至可以在数据的一个很小的子集上运行这个作业,但是我不能让这个map/reduce作业正确工作。知道我做错了什么吗? 有关我得安装得说明: null dfs.re