首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:我应该对`aerospike.conf`做些什么来设置集群?

:我应该对`aerospike.conf`做些什么来设置集群?
EN

Stack Overflow用户
提问于 2015-07-13 04:51:51
回答 1查看 1.2K关注 0票数 4

我正试图在Ubuntu14.04上建立一个三节点的Aerospike集群。除了IP地址/名称之外,每台机器都是相同的。我在每台机器上安装了文档和管理控制台。

然后,我在/etc/aerospike/aerospike.conf中编辑了网络/服务和网络/心跳部分

代码语言:javascript
复制
network {
    service {
        address any
        port 3000
        access-address 10.0.1.11  # 10.0.1.12 and 10.0.1.13 on the other two nodes
    }

    heartbeat {
        mode mesh
        port 3002
        mesh-seed-address-port 10.0.1.11 3002
        mesh-seed-address-port 10.0.1.12 3002
        mesh-seed-address-port 10.0.1.13 3002
        interval 150
        timeout 10
    }

[...]

}

当我在每个节点上运行sudo service aerospike start时,服务会运行,但它不是集群的。如果我试图在管理控制台中添加另一个节点,它会告诉我:"Node 10.0.1.12:3000在这里无法监视,因为它属于不同的集群。“

你能看出我做错了什么吗?我应该在每个节点上对aerospike.conf做什么更改,以便设置一个Aerospike集群而不是三个孤立的实例?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-13 05:47:32

您的配置似乎正确。

检查是否能够通过端口3001和3002从每个主机打开TCP连接到其他主机。

代码语言:javascript
复制
nc -z -w5 <host> 3001; echo $?
nc -z -w5 <host> 3002; echo $?

如果不是,我会首先怀疑防火墙配置。

更新1:

netcat命令返回0,所以让我们尝试获取更多信息。

在每个节点上运行并提供以下输出:

代码语言:javascript
复制
asinfo -v service
asinfo -v services
asadm -e info

更新2:

在对gists中的输出进行检查之后,asadm -e "info net"表示所有节点都具有相同的节点ID。

代码语言:javascript
复制
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Network Information~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Node               Node                        Fqdn               Ip   Client     Current      HB        HB   
   .                 Id                           .                .    Conns        Time    Self   Foreign   
h      *BB9000000000094   hadoop01.woolford.io:3000   10.0.1.11:3000       15   174464730   37129         0   
Number of rows: 1

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Network Information~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Node               Node                        Fqdn               Ip   Client     Current      HB        HB   
   .                 Id                           .                .    Conns        Time    Self   Foreign   
h      *BB9000000000094   hadoop03.woolford.io:3000   10.0.1.13:3000        5   174464730   37218         0   
Number of rows: 1

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Network Information~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Node               Node                        Fqdn               Ip   Client     Current      HB        HB   
   .                 Id                           .                .    Conns        Time    Self   Foreign   
h      *BB9000000000094   hadoop02.woolford.io:3000   10.0.1.12:3000        5   174464731   37203         0   
Number of rows: 1

节点ID由fabric端口(十六进制端口3001 )和MAC地址反向字节顺序构造。另一个标志是"HB Self“为非零,在网格配置中预期为零(在多播配置中,这也是非零,因为节点将接收自己的心跳消息)。

因为所有的节点ID都是相同的,这意味着所有的MAC地址都是相同的(尽管可以使用机架感知更改节点ID)。似乎起源于本地节点(由具有相同节点id的hb确定)的心跳被忽略。

更新3:

MAC地址都是唯一的,这与以前的结论相矛盾。一个答复提供了正在使用的接口名em1,它不是Aerospike寻找的接口名。Aerospike寻找名为eth#bond#wlan#的接口。我想,由于名称不是预期的三个名称之一,这导致了MAC地址的问题;如果是的话,我怀疑日志中存在以下警告?

代码语言:javascript
复制
Tried eth,bond,wlan and list of all available interfaces on device.Failed to retrieve physical address with errno %d %s

对于这种情况,可以使用网络接口名称参数来指示用于节点id生成的接口。此参数还确定应该向客户端应用程序发布哪个接口的IP地址。

代码语言:javascript
复制
network {
    service {
        address any
        port 3000
        access-address 10.0.1.11  # 10.0.1.12 and 10.0.1.13 on the other two nodes
        network-interface-name em1 # Needed for Node ID
    }

更新4:

使用3.6.0版本,将自动发现这些设备名称。见AER-4026发布说明。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31375598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档