Sunday, December 05, 2010

Cassandra Installation

1) Install Java

# uname -a
Linux dmo-gkeyvalue050 2.6.18-194.8.1.el5 #1 SMP Thu Jul 1 19:04:48 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
Access http://java.sun.com/javase/downloads/widget/jdk6.jsp
Chose Linux x64 and download
Downloaded file is jdk1.6.0_21
# cp /home/gijutsu/soft/jdk1.6.0_21 /opt/
# cd /opt/
# ln -s jdk1.6.0_21 java
# vi ~/.bashrc
Add below lines
export JAVA_HOME=/opt/java
export PATH=$PATH:$JAVA_HOME/bin
# echo $JAVA_HOME
/opt/java
# java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)

2) Install Cassandra
cd /home/gijutsu/soft
# wget http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.6.3/apache-cassandra-0.6.3-bin.tar.gz (newest version)
# tar -xzf apache-cassandra-0.6.3-bin.tar.gz
# cd apache-cassandra-0.6.3
# yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel
# make clean
# ./configure
# make
# make install

# mkdir /var/log/cassandra
# mkdir /var/lib/cassandra
# mkdir /var/run/cassandra
# useradd cassandra
# chown cassandra.cassandra /var/log/cassandra
# chown cassandra.cassandra /var/lib/cassandra
# chown cassandra.cassandra /var/run/cassandra

# cp /home/gijutsu/soft/apache-cassandra-0.6.3 /opt/
# cd /opt/
# ln -s /home/gijutsu/soft/apache-cassandra-0.6.3 apache-cassandra
3) Create file /etc/init.d/cassandra

#!/bin/bash
#
# /etc/init.d/cassandra
#
# Startup script for Cassandra
#
# chkconfig: 345 95 10
# description: Apache Cassandra is highly scalable second-generation distributed database
#
# Source function library.
. /etc/init.d/functions

export JAVA_HOME=/opt/java
export CASSANDRA_HOME=/opt/apache-cassandra
export CASSANDRA_OWNR=cassandra
export PATH=$PATH:$CASSANDRA_HOME/bin
pid_file=/var/run/cassandra/cassandra.pid
lock_file=/var/lock/subsys/cassandra

if [ ! -f $CASSANDRA_HOME/bin/cassandra -o ! -d $CASSANDRA_HOME ]
then
echo "Cassandra startup: cannot start"
exit 1
fi

case "$1" in
start)
# Cassandra startup
echo -n "Starting Cassandra: "
su $CASSANDRA_OWNR -c "$CASSANDRA_HOME/bin/cassandra -p $pid_file > /dev/null 2>&1" && success || failure
RETVAL=$?
[ "$RETVAL" = 0 ] && touch $lock_file
echo
;;
stop)
# Cassandra shutdown
echo -n "Shutdown Cassandra: "
#su $CASSANDRA_OWN -c "kill `cat $pid_file`"
killproc -p $pid_file cassandra
RETVAL=$?
[ $RETVAL = 0 ] && rm -f $lock_file
echo
;;
reload|restart)
$0 stop
$0 start
;;
status)
status cassandra
RETVAL=$?
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac

exit 0

4) Restart cassandra
/etc/init.d/cassandra restart

5) Check port
netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2645/zabbix_agentd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2620/master
tcp 0 0 :::9160 :::* LISTEN 1877/java
tcp 0 0 :::55088 :::* LISTEN 1877/java
tcp 0 0 :::8080 :::* LISTEN 1877/java
tcp 0 0 :::47728 :::* LISTEN 1877/java
tcp 0 0 :::22 :::* LISTEN 2542/sshd
tcp 0 0 ::ffff:172.16.10.50:7000 :::* LISTEN 1877/java

6) Access to client
# /opt/apache-cassandra/bin/cassandra-cli --host 127.0.0.1

7) Config
# vi /opt/apache-cassandra/conf/storage-conf.xml

8) Install API Thrift for Web Server
# wget http://www.apache.org/dyn/closer.cgi?path=/incubator/thrift/0.2.0-incubating/thrift-0.2.0-incubating.tar.gz
Rename downloaded file to thrift-0.2.0-incubating.tar.gz
# tar -xvzf thrift-0.2.0-incubating.tar.gz
# ./configure
# yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel (noneed)
# make clean
#./configure
# make
# make install

1 comments:

JAvin @ HashTable vs HashMap in Java said...

Nice article , you have indeed covered topic in details with sample code, its indeed a topic which require a deeper understanding than many other java topics.

Thanks
Javin
How Classpath works in Java