自动设置多节点Hadoop集群

时间:2012-10-15 13:39:30

标签: hadoop amazon-ec2 configuration-management

我有一个安装了Hadoop的EC2映像。但是,我将它设置为在实例化时无角色(它不是奴隶或主人)。为了启动Hadoop集群,我在EC2上启动了我需要的尽可能多的实例(节点),然后我必须对每个节点执行以下3项操作:

  1. 更新/ etc / hosts以包含必要的IP地址。
  2. 如果是主节点,请更改$ HADOOP_HOME / conf / masters和$ HADOOP_HOME / conf / slaves
  3. 在节点之间启用SSH访问。
  4. 我希望能够找到一种自动执行此操作的方法,以便对于任意数量的节点,我不必进入并在每个节点上设置所有这些设置。

    其他人如何处理自动设置Hadoop群集的问题?有没有办法自动化网络部分?

    我不确定这是可能的,因为IP地址每次都会有所不同,但我想知道其他人尝试了什么或者常用的是什么。是否有一种自动化这些过程的好方法,所以每次我设置一个集群进行测试时,我都不必为每个节点做这些事情?我不太了解Linux脚本,这可能是脚本吗?或者我只需要手动配置每个节点吗?

2 个答案:

答案 0 :(得分:0)

我没有使用Hadoop的经验,但总的来说,您所拥有的任务称为“配置管理”。通常,您会编写一些“receipes”并为服务器定义“角色”(主,从)。这样的角色可能包含服务,待安装软件包,主机名更改,SSH密钥等的配置文件。服务器最初启动后,您可以告诉它们应该是哪个角色,它们将自动安装。

这些任务有不同的工具,例如PuppetSalt。有comparison available at Wikipedia

答案 1 :(得分:-1)

我正在寻找是否存在这样的实用程序,但却找不到。

所以我为" Hadoop配置自动化"构建了一个自动化实用程序。使用蟒蛇,盐和织物。

准备好hadoop集群需要做很多步骤。

  • 通过EC2实例启动。
  • 创建安全组。
  • 设置ssh密钥,以便实例master可以ssh到slave。
  • 安装JDK。
  • 安装hadoop。
  • 将节点指定为namenode,secondary namenode,slaves -make hadoop 配置文件更改..
  • 启动服务

做所有这些事情说4个节点需要1个小时。对于我想要做的工作,我需要反复进行这些工作,因此需要大量节点,因此需要自动化。

对于需要在每个节点中执行的步骤(例如:jdk install,hadoop package install等),我使用salt进行配置管理。 Salt提供类似木偶和厨师的能力。

请随时查看 https://github.com/varmarakesh/aws-hadoop

如果您已经拥有一个aws帐户,它的设计便于设置和运行。