有没有办法将节点添加到正在运行的Hadoop集群?

时间:2012-10-31 13:32:27

标签: hadoop cluster-computing hbase hdfs cloudera

我一直在玩Cloudera,我在开始工作之前定义了簇的数量,然后使用cloudera管理器确保一切都在运行。

我正在开发一个新项目,而不是使用hadoop使用消息队列来分发工作,但工作结果存储在HBase中。我可能会启动10个服务器来处理作业并存储到Hbase但是我想知道我以后是否决定添加更多的工作节点我可以轻松(读取:可编程)使它们自动连接到正在运行的集群,以便它们可以在本地添加集群HBase / HDFS?

这是否可行,为了做到这一点我需要学习什么?

5 个答案:

答案 0 :(得分:13)

以下是向HadoopHBase添加节点的文档。查看文档,无需重新启动群集。可以动态添加节点。

答案 1 :(得分:1)

以下步骤可帮助您将新节点启动到正在运行的群集中。

1> Update the /etc/hadoop/conf/slaves list with the new node-name
2> Sync the full configuration /etc/hadoop/conf to the new datanode from the Namenode. If the file system isn't shared.  
2>  Restart all the hadoop services on Namenode/Tasktracker and all the services on the new Datanode. 
3>  Verify the new datanode from the browser http://namenode:50070
4>  Run the balancer script to readjust the data between the nodes. 

如果您不想在NN上重新启动服务,则在添加新节点时。我想说将前面的名称添加到从属配置文件中。因此,他们报告退役/死节点,直到它们可用。按照上面的DataNode步骤。再次,这不是最好的做法。

答案 2 :(得分:0)

如果我理解你的话,你有工人,你自己协调连接到HBase以保存他们的数据。您可以根据需要拥有尽可能多的内容,并且可以在添加时连接到Hbase(只要他们可以看到动物园管理员的法定人数)。

如果您正在谈论增加Hadoop集群。由于您已经使用了Cloudera,您可以通过cloudera Manager REST APIJava client someone implemented for it

来实现

答案 3 :(得分:0)

可以在不重启hadoop集群的情况下完成。根据此document,您可以在包含文件中添加节点,并在hdfs-site.xml和mapred-site.xml文件中进行一些更改,您可以实现此目的。详细说明见this document

答案 4 :(得分:0)

使用CDH 5.8.5(Hadoop 2.6)的Cloudera更新答案-

要将新节点添加到集群中,请在ClouderaManager UI上执行以下步骤,

  1. 单击您的集群名称。
  2. 转到主机列表。
  3. 在“主机”页面上,单击“将新主机添加到群集”。
  4. 输入主机的IP,然后搜索。
  5. 遵守说明并继续进行下一步。
  6. 最后将角色分配给新节点,例如,如果它是数据节点,则仅分配与数据节点相关的角色,然后继续。
  7. 最后,您的新节点将添加到您的集群中。单击完成。