Cassandra cluster design does not allow you to run two nodes in a single host (machine). However, there are alternative methods to simulate two hosts in a single machine by adding virtual ethernet devices to the host on which we plan to run the cassandra cluster.
This setup includes two virtual ethernet devices on the default ethernet device (e.g., eth0). Since we run two Carbon servers in one machine, some ports may try to bind with the default device and this results in port conflicts. Therefore we are going to offset one WSO2 SS instance by 10.
Users can use carbon.xml or the -Doffset
option to offset a Carbon server. When offsetting takes place, all the nodes are shifted by the offset. It is necessary to set the Cassandra storage port (cluster port) into a common value (7000). Cassandra related port’s base values can be set via system variables as explained in this tutorial.
...
Create two IP aliases:
Code Block |
---|
ifconfig eth0:1 192.168.0.2
ifconfig eth0:2 192.168.0.3 |
...
In node0:
Code Block - seeds: "192.168.0.2" listen_address: 192.168.0.2 rpc_address: 192.168.0.2
In node1:
Code Block - seeds: "192.168.0.2" listen_address: 192.168.0.3 rpc_address: 192.168.0.3
...
Update the [SS_HOME]/repository/conf/etc/hector-config.xml
in node0.
Code Block | ||
---|---|---|
| ||
<HectorConfiguration>
<Cluster>
<Name>ClusterOne</Name>
<Nodes>192.168.0.2:9160</Nodes>
<AutoDiscovery disable="false" delay="1000"/>
</Cluster>
</HectorConfiguration> |
...
Update the [SS_HOME]/repository/conf/etc/hector-config.xml
in node1.
Code Block | ||
---|---|---|
| ||
<HectorConfiguration>
<Cluster>
<Name>ClusterOne</Name>
<Nodes>192.168.0.3:9160</Nodes>
<AutoDiscovery disable="false" delay="1000"/>
</Cluster>
</HectorConfiguration> |
...
Node 0 configurations: Use the
--start
command to start node 0.Code Block $SS_HOME/bin/wso2server.sh --start
- Node 1 configurations:
Update the startup.sh as follows:
Code Block -Dcassandra.rpc.port=9150 \ -Dcassandra.storage.port=6990 \
Use the
--start
command to start node 1.Code Block $SS_HOME/bin/wso2server.sh --start
...
You can verify the status of the cluster using a notetool
command.
Code Block |
---|
./nodetool -u admin -pw admin -p 9999 ring -h 192.168.0.2
./nodetool -u admin -pw admin -p 10009 ring -h 192.168.0.3 |
Also you can check the listening port using a netstat
command.
Code Block |
---|
netstat -anl |grep 7000
tcp6 0 0 192.168.0.3:7000 :::* LISTEN
tcp6 0 0 192.168.0.2:7000 :::* LISTEN |
Code Block |
---|
netstat -anl |grep 9160
tcp6 0 0 192.168.0.3:9160 :::* LISTEN
tcp6 0 0 192.168.0.2:9160 :::* LISTEN |
You can now connect to the cluster using the cassandra-cli
tool.
...
The following topics describe the various clustering configurations related to Storage Server.
Child pages (Children Display) |
---|
See here to cluster Cassandra with one host.