Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

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

...

  1. In node0:

    Code Block
    - seeds: "192.168.0.2"
    
    listen_address: 192.168.0.2
    
    rpc_address: 192.168.0.2
  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
languagehtml/xml
<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
languagehtml/xml
<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:
    1. Update the startup.sh as follows:

      Code Block
      -Dcassandra.rpc.port=9150 \
      -Dcassandra.storage.port=6990 \
    2. 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.