diff --git a/README.txt b/README.txt index 43ba58865f..e8a05c1e58 100644 --- a/README.txt +++ b/README.txt @@ -1,9 +1,95 @@ Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store. + +Project description +------------------- + Cassandra brings together the distributed systems technologies from Dynamo and the data model from Google's BigTable. Like Dynamo, Cassandra is eventually consistent. Like BigTable, Cassandra provides a ColumnFamily-based data model richer than typical key/value systems. -For more information see http://incubator.apache.org/cassandra \ No newline at end of file +For more information see http://incubator.apache.org/cassandra + + +Getting started +--------------- + +This short guide will walk you through getting a basic one node cluster up +and running, and demonstrate some simple reads and writes. + + * tar -zxvf cassandra-$VERSION.tgz + * cd cassandra-$VERSION + * sudo mkdir -p /var/cassandra/logs + * sudo chown `whoami` -R /var/cassandra + +Note: The sample configuration files in conf/ determine the file-system +locations Cassandra uses for logging and data storage. You are free to +change these to suit your own environment and adjust the path names +used here accordingly. + +Now that we're ready, let's start it up! + + * bin/cassandra -f + +Running the startup script with the -f argument will cause Cassandra to +remain in the foreground and log to standard out. + +Now let's try to read and write some data using the command line client. + + * bin/cassandra-cli --host localhost --port 9160 + +The command line client is interactive so if everything worked you should +be sitting in front of a prompt... + + Connected to localhost/9160 + Welcome to cassandra CLI. + + Type 'help' or '?' for help. Type 'quit' or 'exit' to quit. + cassandra> + +As the banner says, you can use 'help' or '?' to see what the CLI has to +offer, and 'quit' or 'exit' when you've had enough fun. But lets try +something slightly more interesting... + + cassandra> set Table1.Standard1['jsmith']['first'] = 'John' + Statement processed. + cassandra> set Table1.Standard1['jsmith']['last'] = 'Smith' + Statement processed. + cassandra> set Table1.Standard1['jsmith']['age'] = '42' + Statement processed. + cassandra> get Table1.Standard1['jsmith'] + COLUMN_TIMESTAMP = 1241129773658; COLUMN_VALUE = 42; COLUMN_KEY = age; + COLUMN_TIMESTAMP = 1241129537336; COLUMN_VALUE = Smith; COLUMN_KEY = last; + COLUMN_TIMESTAMP = 1241129520503; COLUMN_VALUE = John; COLUMN_KEY = first; + Statement processed. + cassandra> + +If your session looks similar to what's above, congrats, your single node +cluster is operational! But what exactly was all of that? Let's break it +down into pieces and see. + + set Table1.Standard1['jsmith']['first'] = 'John' + \ \ \ \ \ + \ \ \_ key \ \_ value + \ \ \_ column + \_ table \_ column family + +Data stored in Cassandra is associated with a column family (Standard1), +which in turn is associated with a table (Table1). In the example above, +we set the value 'John' in the 'first' column for key 'jsmith'. + +For more information on the Cassandra data model be sure to checkout +http://cwiki.apache.org/confluence/display/CSDR/Data+Model + +Wondering where to go from here? + + * The wiki (http://cwiki.apache.org/confluence/display/CSDR) is the + best source for additional information. + * Join us in #cassandra on irc.freenode.net and ask questions. + * Subscribe to the Users mailing list by sending a mail to + cassandra-user-subscribe@incubator.apache.org + + + diff --git a/bin/cassandra-cli b/bin/cassandra-cli new file mode 100755 index 0000000000..0ac560fdb7 --- /dev/null +++ b/bin/cassandra-cli @@ -0,0 +1,21 @@ +#!/bin/sh + +classpath() +{ + cassandra_home=`dirname $0`/.. + classp=$cassandra_home/build/classes + + for j in $cassandra_home/lib/*.jar; do + classp=$classp:$j + done + + printf $classp +} + +if [ -z $CLASSPATH ]; then + jvmargs="-cp `classpath`" +fi + +java $jvmargs org.apache.cassandra.cli.CliMain "$@" + +# vi:ai sw=4 ts=4 tw=0 et