Cassandra – First Touch
[tweetmeme source=”anismiles” only_single=false http://www.URL.com%5D
Go to Apache Cassandra download page, and get yourself a latest copy.
Once downloaded, extract the zip file to some directory, say,
Cassandra keeps all important information in storage-conf.xml. We will talk about this in details later, for now, let’s just tell Cassandra where to store Logs and Data?
- Let’s create a directory,
- Create 2 subdirectories, one for Logs and another for Data.
D:/Lab/Cassandra/conf/storage-conf.xmlfor following information:
<CommitLogDirectory>D:\iLabs\cassanra-data\commitlog</CommitLogDirectory> <DataFileDirectories> <DataFileDirectory>D:\iLabs\cassanra-data\data</DataFileDirectory> </DataFileDirectories>
Ignite the engine
- Make sure that you have
- Also, make sure that port 8080 and 9160 is available. Generally, 9160 remains free, and Tomcat or Jboss might be running on 8080. Please shut down, Tomcat/Jboss or whatever server you have on 8080.
- Open command prompt, and go to Cassandra directory:
D:\iLabs\apache-cassandra-0.6.1>bin\cassandra.bat -f Starting Cassandra Server Listening for transport dt_socket at address: 8888 INFO 13:09:00,234 Auto DiskAccessMode determined to be standard INFO 13:09:00,531 Sampling index for D:\iLabs\cassanra-data\data\ Keyspace1\Standard1-1-Data.db INFO 13:09:00,559 Sampling index for D:\iLabs\cassanra-data\data\ system\LocationInfo-1-Data.db INFO 13:09:00,567 Replaying D:\iLabs\cassanra-data\commitlog\ CommitLog-1274081403711.log INFO 13:09:00,607 Creating new commitlog segment D:/iLabs/cassanra-data/ commitlog\CommitLog-1274081940607.log INFO 13:09:00,748 LocationInfo has reached its threshold; switching in a freshMemtable at CommitLogContext(file='D:/iLabs/cassanra-data/commitlog\ CommitLog-1274081940607.log', position=133) INFO 13:09:00,752 Enqueuing flush of Memtable(LocationInfo)@20827431 INFO 13:09:00,756 Writing Memtable(LocationInfo)@20827431 INFO 13:09:00,948 Completed flushing D:\iLabs\cassanra-data\data\system\ LocationInfo-2-Data.db INFO 13:09:00,996 Log replay complete INFO 13:09:01,046 Saved Token found: 23289801966927000784786040626191443480 INFO 13:09:01,047 Saved ClusterName found: Test Cluster INFO 13:09:01,061 Starting up server gossip INFO 13:09:01,128 Binding thrift service to localhost/127.0.0.1:9160 INFO 13:09:01,136 Cassandra starting up...
Hallelujah! Engine is revved up.
Note: it’s listening to
Cassandra distribution comes with Cassandra CLI, which is interactive command line tool. We will use this tool to test our server.
- Open another command prompt, and go to Cassandra directory:
D:\iLabs\apache-cassandra-0.6.1>bin\cassandra-cli.bat Starting Cassandra Client Welcome to cassandra CLI. Type 'help' or '?' for help. Type 'quit' or 'exit' to quit. cassandra>
- Now, connect with the server:
cassandra> connect localhost/9160 Connected to: "Test Cluster" on localhost/9160
- Insert a key/value:
cassandra> set Keyspace1.Standard1['0']['msg'] = 'Hello World!' Value inserted.
- Query it back:
cassandra> get Keyspace1.Standard1['0']['msg'] => (column=6d7367, value=Hello World!, timestamp=1274086005825000)
We have successfully connected to Cassandra server, inserted a value, and fetched it back. But, few things might have been overwhelming, right? Let’s try to understand that.
Let’s have a quick look at the schema. Remember, it is defined in the same file we modified earlier in the setup step: D:/Lab/Cassandra/conf/storage-conf.xml
You will notice below entry there:
<Keyspace Name="Keyspace1"> <ColumnFamily Name="Standard1" CompareWith="BytesType" />
Keyspace1 is the name of the schema, Standard1 is a collection of rows, and each row has an ordered set of key-value pairs. We will learn more about Keyspaces and Data Schemas in the next blog.