我一直在玩Cloudera,我在开始工作之前定义了簇的数量,然后使用cloudera管理器确保一切都在运行。
我正在开发一个新项目,而不是使用hadoop使用消息队列来分配工作,但工作结果存储在HBase中。我可能会启动10个服务器来处理作业并存储到Hbase但是我想知道我以后是否决定添加更多的工作节点我可以轻松(读取:可编程)使它们自动连接到正在运行的集群,以便它们可以在本地添加集群HBase / HDFS?
这有可能吗?为了做到这一点,我需要学习什么?
以下步骤可帮助您将新节点启动到正在运行的集群中。
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步骤。再次,这不是最好的做法。
如果我理解正确,你就有工人,你自己协调连接到HBase以保存他们的数据。您可以根据需要拥有尽可能多的内容,并且可以在添加时连接到Hbase(只要他们可以看到zookeeper仲裁)。
如果您正在谈论增加Hadoop集群。既然你已经使用了Cloudera,你可以通过cloudera Manager REST API或Java client someone implemented for it来做到这一点
可以在不重新启动hadoop集群的情况下完成。根据这个document,您可以在includes文件中添加节点,并在hdfs-site.xml和mapred-site.xml文件中进行一些更改,您可以实现此目的。详细说明见this document
使用CDH 5.8.5(Hadoop 2.6)更新了Cloudera的答案 -
要向群集添加新节点,请在ClouderaManager UI上按照下列步骤操作,