2

我有一个安装了 Hadoop 的 EC2 映像。但是,我在实例化时将其设置为无角色(它不是从属或主控)。为了启动 Hadoop 集群,我在 EC2 上启动了所需数量的实例(节点),然后我必须对每个节点执行以下 3 项操作:

  1. 更新 /etc/hosts 以包含必要的 IP 地址。
  2. 如果是主节点,更改 $HADOOP_HOME/conf/masters 和 $HADOOP_HOME/conf/slaves
  3. 启用节点之间的 SSH 访问。

我希望能够找到一种自动执行此操作的方法,以便对于任意数量的节点,我不必进入并在每个节点上设置所有这些设置。

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

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

4

2 回答 2

0

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

这些任务有不同的工具可用,例如PuppetSaltWikipedia 上有一个比较。

于 2012-10-15T13:58:23.970 回答
-1

我打算通过查看是否存在此类实用程序但找不到任何实用程序。

因此,我使用 python、salt 和 fabric 为“Hadoop 配置自动化”构建了一个自动化实用程序。

准备好 hadoop 集群涉及很多步骤。

  • 由 EC2 实例启动。
  • 创建安全组。
  • 设置 ssh 密钥,以便实例主机可以 ssh 到从机。
  • 安装 JDK。
  • 安装hadoop。
  • 将节点指定为namenode,辅助namenode,slaves - 使hadoop配置文件更改..
  • 启动服务

为 4 个节点做所有这些事情需要 1 个小时。对于我想做的工作,我需要重复且经常使用大量节点进行这些操作,因此需要自动化。

对于需要在每个节点中完成的步骤(例如:jdk 安装、hadoop 包安装等),我使用 salt 进行配置管理。Salt 提供类似 puppet 和 chef 的功能。

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

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

于 2015-11-25T23:16:59.730 回答