我一直在一台机器上学习Riak,并且可以访问一组Erlang节点(在Ubuntu 9上)。使用远程代码加载如何将Riak安装到所有远程节点上?
例如,假设我有一组Erlang节点。其中一个节点安装了Riak。我可以像nl(riak)那样将Riak安装到其他节点上。
答案 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