如何使用热代码加载在几个远程节点上安装Riak?

时间:2010-02-04 07:20:51

标签: erlang cluster-computing riak

我一直在一台机器上学习Riak,并且可以访问一组Erlang节点(在Ubuntu 9上)。使用远程代码加载如何将Riak安装到所有远程节点上?

例如,假设我有一组Erlang节点。其中一个节点安装了Riak。我可以像nl(riak)那样将Riak安装到其他节点上。

3 个答案:

答案 0 :(得分:4)

由于我们添加了Innostore和嵌入式a Javascript engine,因此Riak不再是纯粹的Erlang应用程序。这意味着通过Erlang的远程代码加载安装将无法正常工作。如果你在同源集群上运行Riak,你应该能够通过'make rel'构建一个OTP版本,将版本复制到集群中的每台机器,并调整app.config和vm.args以适应。

启动服务器理论上可行,但我不知道有人以这种方式运行Riak。如果您决定尝试一下,我们(Basho)很乐意通过riak-users邮件列表提供帮助。

答案 1 :(得分:3)

简短的回答是:你不能 远程代码加载在模块(与应用程序相对)级别上运行。 Riak由几个Erlang模块组成,需要一些依赖项。 nl(riak)实际上在所有连接的节点上加载了一个模块。

答案很长:你可以,但不要这样做 实际上,您可以收集与Riak相关的模块列表,然后远程加载这些模块并通过线路配置Riak。 application模块可能对此有所帮助。 此方法的问题在于,如果远程节点出现故障或重新启动,则需要再次传输所有模块并重复配置。

如果涉及某种“远程加载” ,则应在远程计算机上的$ERL_LIBS中的某处安装Riak,以便可以通过{{1}启动加载过程}。

答案 2 :(得分:1)

Afaik,因为有erl_boot_server模块。我从未使用过(或尝试过)它,但它看起来就像你在寻找: http://erldocs.com/R13B03/kernel/erl_boot_server.html?search=erl&i=0