自动设置多节点hadoop集群

gopyfrb3  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(442)

我有一个安装了hadoop的ec2映像。但是,我在示例化时将其设置为无角色(它不是从机或主机)。为了启动hadoop集群,我在ec2上启动了我所需要的任意多个示例(节点),然后我必须对每个节点执行以下3项操作:
更新/etc/hosts以包含必要的ip地址。
如果是主节点,则更改$hadoop\u home/conf/masters和$hadoop\u home/conf/slaves
启用节点之间的ssh访问。
我希望能够找到一种方法来自动做到这一点,这样对于任意数量的节点,我就不必进去设置每个节点上的所有这些设置。
其他人如何处理自动设置hadoop集群的问题?有没有办法使网络部分自动化?
我不确定这是否可能,因为ip地址每次都会不同,但我想知道其他人尝试过什么或常用什么。有没有一种好的方法可以自动执行这些过程,这样每次设置集群进行测试时就不必对每个节点都执行这些操作?我对linux脚本不太了解,这是否可以通过脚本实现?或者我只需要手动配置每个节点?

wxclj1h5

wxclj1h51#

我想去看看是否有这样的实用程序存在,但找不到任何。
因此,我使用python、salt和fabric为“hadoop配置自动化”构建了一个自动化实用程序。
准备好hadoop集群需要很多步骤。
由ec2示例启动。
正在创建安全组。
设置ssh密钥,以便主示例可以ssh到从示例。
安装jdk。
安装hadoop。
将节点指定为namenode、secondary namenode、slaves-进行hadoop配置文件更改。。
启动服务
做所有这些,比如说4个节点需要1个小时。对于我想做的工作,我需要重复地做这些工作,而且经常需要大量的节点,因此需要自动化。
对于需要在每个节点中完成的步骤(例如:jdk安装、hadoop包安装等),我使用salt进行配置管理。salt提供类似于木偶和厨师的功能。
请随时退房https://github.com/varmarakesh/aws-hadoop
如果你已经有一个aws帐户,它是为方便安装和运行而设计的。

kpbwa7wx

kpbwa7wx2#

我没有使用hadoop的经验,但一般来说,您的任务称为“配置管理”。一般来说,您编写一些“receipes”并为服务器定义“角色”(主、从)。这样的角色可能包含服务的配置文件、要安装的包、主机名更改、ssh密钥等。在服务器最初启动后,您可以告诉它们应该是哪个角色,它们将自动安装。
有不同的工具可用于这些任务,例如puppet或salt。维基百科上有一个比较。

相关问题