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

问题描述 投票:14回答:5

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

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

这有可能吗?为了做到这一点,我需要学习什么?

hadoop cluster-computing hbase hdfs cloudera
5个回答
13
投票

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


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步骤。再次,这不是最好的做法。


0
投票

如果我理解正确,你就有工人,你自己协调连接到HBase以保存他们的数据。您可以根据需要拥有尽可能多的内容,并且可以在添加时连接到Hbase(只要他们可以看到zookeeper仲裁)。

如果您正在谈论增加Hadoop集群。既然你已经使用了Cloudera,你可以通过cloudera Manager REST APIJava client someone implemented for it来做到这一点


0
投票

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


0
投票

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

要向群集添加新节点,请在ClouderaManager UI上按照下列步骤操作,

  1. 单击您的群集名称。
  2. 转到主机列表。
  3. 进入主机页面后,单击“将新主机添加到群集”。
  4. 输入主机的IP和搜索。
  5. 继续按照说明操作并继续执行后续步骤。
  6. 最后,将角色分配给新节点,例如,如果它是数据节点,则仅分配与datanode相关的角色并继续。
  7. 最后,您的新节点将添加到您的群集中。单击完成。
© www.soinside.com 2019 - 2024. All rights reserved.