This page (revision-21) was last changed on 23-Apr-2022 17:06 by Harry Metske

This page was created on 23-Apr-2022 17:05 by Harry Metske

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
21 23-Apr-2022 17:06 11 KB Harry Metske to previous

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 69 added 4 lines
** configure ''endpoint_snitch: GossipingPropertyFileSnitch''
* edit {{./conf/log4j-server.properties}} : remove logging to stdout
* edit {{./conf/cassandra-rackdc.properties}} : see [Cassandra#Cluster config]
* edit {{./conf/cassandra-env.sh}} (at the bottom of the file) : uncomment and fill in : '' JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=10.0.4.12" '' %%small (this makes it possible to run nodetool against remote hosts) %%
At line 125 added one line
!! Cluster config
At line 127 added 138 lines
||IP||DC||RACK||seeder
|10.0.4.11|DC1|RAC1|Y
|10.0.4.12|DC1|RAC2|N
|10.0.4.13|DC2|RAC1|Y
|10.0.4.14|DC2|RAC2|N
!! Creating keyspace, tables, inserting, updating , querying
! Create keyspace
First create a keyspace. You can do that both with ''cassandra-cli'' and ''cqlsh'', but they have different syntaxes :-) .\\
Here's a cqlsh example:
{{{
[default@unknown] cssndra@ubuntu1:~$ cqlsh
Connected to Test Cluster at localhost:9160.
[cqlsh 2.3.0 | Cassandra 1.2.4 | CQL spec 3.0.0 | Thrift protocol 19.35.0]
Use HELP for help.
cqlsh> CREATE KEYSPACE demo_keyspace WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'DC1' : 2, 'DC2' : 2};
cqlsh> select * from system.schema_keyspaces;
keyspace_name | durable_writes | strategy_class | strategy_options
---------------+----------------+------------------------------------------------------+----------------------------
system_auth | True | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"1"}
demo_keyspace | True | org.apache.cassandra.locator.NetworkTopologyStrategy | {"DC2":"2","DC1":"2"}
system | True | org.apache.cassandra.locator.LocalStrategy | {}
system_traces | True | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"1"}
cqlsh>
}}}
! Create a column family
Create a columnfamily with the ''cassandra-cli'' utility:
{{{
cssndra@ubuntu1:~$ cassandra-cli
Connected to: "Test Cluster" on 127.0.0.1/9160
Welcome to Cassandra CLI version 1.2.4
Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.
[default@unknown] use demo_keyspace;
Authenticated to keyspace: demo_keyspace
[default@demo_keyspace] create column family users with key_validation_class = 'UTF8Type' and comparator = 'UTF8Type' and default_validation_class = 'UTF8Type';
0b6b0010-fc89-35a1-ad05-77d53e5a4443
}}}
! Insert data
Again with the ''cassandra-cli'' utility insert some data in the {{users}} columnfamily:
{{{
[default@demo_keyspace] cssndra@ubuntu1:~$ cassandra-cli
Connected to: "Test Cluster" on 127.0.0.1/9160
Welcome to Cassandra CLI version 1.2.4
Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.
[default@unknown] use demo_keyspace;
Authenticated to keyspace: demo_keyspace
[default@demo_keyspace] set users[1234][name] = scott;
Value inserted.
Elapsed time: 52 msec(s).
[default@demo_keyspace] set users[1234][password] = scott-secret;
Value inserted.
Elapsed time: 14 msec(s).
[default@demo_keyspace] set users[1234][length] = 185;
Value inserted.
Elapsed time: 8.76 msec(s).
[default@demo_keyspace] set users[1235][name] = harry;
Value inserted.
Elapsed time: 6.71 msec(s).
[default@demo_keyspace] set users[1235][length] = 181;
Value inserted.
Elapsed time: 13 msec(s).
[default@demo_keyspace] set users[1235][whatevercolumn] = skfkjdkfjdklsjfsjflkjldk181;
Value inserted.
Elapsed time: 6.2 msec(s).
[default@demo_keyspace] list users;
Using default limit of 100
Using default column limit of 100
-------------------
RowKey: 1234
=> (column=length, value=185, timestamp=1368883341707000)
=> (column=name, value=scott, timestamp=1368883316118000)
=> (column=password, value=scott-secret, timestamp=1368883330142000)
-------------------
RowKey: 1235
=> (column=length, value=181, timestamp=1368883368497000)
=> (column=name, value=harry, timestamp=1368883358461000)
=> (column=whatevercolumn, value=skfkjdkfjdklsjfsjflkjldk181, timestamp=1368883385475000)
2 Rows Returned.
Elapsed time: 42 msec(s).
}}}
And insert with the ''cqlsh -2'' utility :
{{{
cssndra@ubuntu1:~$ cqlsh -2
Connected to Test Cluster at localhost:9160.
[cqlsh 2.3.0 | Cassandra 0.0.0 | CQL spec 2.0.0 | Thrift protocol 19.35.0]
Use HELP for help.
cqlsh> USE demo_keyspace ;
cqlsh:demo_keyspace> INSERT INTO users ( key, name, password, whatevercolumn) VALUES ( '12345' , 'harry' , 'wachtwoordje' , 'blablabla fjkdsjf l4j 2k43u');
cqlsh:demo_keyspace>
}}}
And a stupid shell script to insert bulk data :
%%prettify
{{{
#!/bin/bash
#
num=$1
let n=0
TMPFILE=/tmp/$RANDOM.cql
echo "use demo_keyspace;" > $TMPFILE
while [ $n -lt $num ]
do
# echo $n
CQL="INSERT INTO users ( key, name, password, whatevercolumn) VALUES ( '99${n}' , 'harry${n}' , 'wachtwoordje${n}' , 'blablabla fjkdsjf ${n} ${n} ${n}2k43u');"
echo $CQL >> $TMPFILE
let n=n+1
done
echo "echoing inserts to cqlsh..."
cqlsh -2 -f $TMPFILE
echo "listing users..."
cat <<EOF | cassandra-cli
use demo_keyspace;
list users;
EOF
rm $TMPFILE
}}}
%%
At line 131 changed one line
** ''ALTER KEYSPACE "Excalibur" WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 }; ''
** run through cqlsh: ''ALTER KEYSPACE "Excalibur" WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 }; ''
** On each affected node, run nodetool repair. Wait until repair completes on a node before moving to the next node.
** also see [http://www.datastax.com/docs/1.2/cql_cli/using/keyspace]
At line 278 added one line
* what snitch to use ?
At line 282 added 2 lines
* Use NetworkTopologyStrategy when you have (or plan to have) your cluster deployed __across multiple data centers__
* Use vnodes, see ''num_tokens'' in cassandra.yaml and [http://wiki.apache.org/cassandra/Operations]