Apache Cassandra Learning Step by Step (1): Setup to play

本文介绍了Apache Cassandra这一强大的NoSQL平台,并提供了详细的安装配置步骤,包括如何设置单节点环境及必要的软件配置。同时,还对比了Cassandra与其他NoSQL数据库如MongoDB、CouchDB等的特点。

By Bright Zheng (IT进行时, MSN: zhengxianquan AT hotmail)

1.   About Apache Cassandra

Apache Cassandra is one of the powerful NoSQL platforms.

Link: http://cassandra.apache.org/

 

Following are some useful comparisons on some classic NoSQL platforms which we need to make a decision if we want to get involved in such a domain.

      1. Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparison: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

      2. HBase vs Cassandra: http://blog.adku.com/2011/02/hbase-vs-cassandra.html

2.  Development environment Setup

2.1.  Software required

SN

Name

Description

1

Apache Cansandra

Mandatory. Current stable version is 1.0.7

@http://cassandra.apache.org/download/

2

Cassandra Tutorial

Mandatory. Source code for following writeups.

@http://github.com/zznate/cassandra-tutorial.git

3

GIT

Optional. Tools for latest source code download & sync

4

Maven

Optional. I’m using 3.x, or 3.0.3 exactly.

5

Hactor

Optional. Recommended Java client implementation for deeper learning experience since it encapsulates all Cassandra’s Concepts/APIs as a higer layer Concepts/APIs.

2.2. Software install & configuration

2.2.1. Apache Cassandra (as single node first)

Download & unzip, that’s almost done.

Better to configure two files for some runtime info (data/log/etc.).

 

1. $APACHE_CASSANDRA$/conf/cassandra.yaml

cluster_name: 'Test Cluster'

 

# directories where Cassandra should store data on disk.

data_file_directories:

    - ../runtime/data

 

# commit log

commitlog_directory: ../runtime/commitlog

 

# saved caches

saved_caches_directory: ../runtime/saved_caches

 

2. $APACHE_CASSANDRA$/conf/log4j-server.properties

log4j.appender.R.File=../runtime/system.log

 

Double click $APACHE_CASSANDRA$/bin/cassandra.bat  to start Cassandra.


 

If you want to enable JMX for runtime monitoring, please download MX4J from here and extract mx4j.jar and mx4j-tools.jar to $APACHE_CASSANDRA$/lib and then restart Cassandra.

One more thing you should understand is that the JMX port will be defaulted to 8081 (Ref to the source code here). If you got port conflict issue, you have two ways to change the port.

1. Add a parameter to the start up bat (or $APACHE_CASSANDRA$/bin/cassandra.bat) as -Dmx4jport=8082, or

2. Change the bat directly at following lines:
@REM original
@REM "%JAVA_HOME%\bin\java" %JAVA_OPTS% %CASSANDRA_PARAMS% -cp %CASSANDRA_CLASSPATH% "%CASSANDRA_MAIN%"
@REM change to follwing
set mx4jport=7599
"%JAVA_HOME%\bin\java" %JAVA_OPTS% %CASSANDRA_PARAMS% -Dmx4jport=%mx4jport% -cp %CASSANDRA_CLASSPATH% "%CASSANDRA_MAIN%"


2.2.2. Git & Maven

Omitted…

2.2.3.  Cassandra Tutorial

1. Open Git Bash:

By double clicking the Git Bash under Git install folder.

 

2. Download the source:

git clone http://github.com/zznate/cassandra-tutorial.git

Note:

If your network is via proxy, run follwing command first:

export http_proxy={YOUR PROXY HOST/IP}:{PORT}

 

3. Import to Eclipse:

This is a maven project so we can import it to Eclipse as existing Maven project.


2.2.4. Hactor

1. Open Git Bash:

By double clicking the Git Bash under Git install folder.

 

2. Download the source:

git clone http://github.com/rantav/hector.git

 

3. Import to Eclipse:

Hactor is a mavan project(s). So we can import it to Eclipse as existing maven project.

It has 3 sub projects: core, orm & test.

 

Take note that the orm sub project is lack of javax.persistence dependency.

I added it as org.hibernate.javax.persistence: hibernate-jpa-2.0-api.jar


Learning Apache Cassandra - Second Edition by Sandeep Yarabarla English | 25 Apr. 2017 | ASIN: B01N52R0B5 | 360 Pages | AZW3 | 10.68 MB Key Features Install Cassandra and set up multi-node clusters Design rich schemas that capture the relationships between different data types Master the advanced features available in Cassandra 3.x through a step-by-step tutorial and build a scalable, high performance database layer Book Description Cassandra is a distributed database that stands out thanks to its robust feature set and intuitive interface, while providing high availability and scalability of a distributed data store. This book will introduce you to the rich feature set offered by Cassandra, and empower you to create and manage a highly scalable, performant and fault-tolerant database layer. The book starts by explaining the new features implemented in Cassandra 3.x and get you set up with Cassandra. Then you'll walk through data modeling in Cassandra and the rich feature set available to design a flexible schema. Next you'll learn to create tables with composite partition keys, collections and user-defined types and get to know different methods to avoid denormalization of data. You will then proceed to create user-defined functions and aggregates in Cassandra. Then, you will set up a multi node cluster and see how the dynamics of Cassandra change with it. Finally, you will implement some application-level optimizations using a Java client. By the end of this book, you'll be fully equipped to build powerful, scalable Cassandra database layers for your applications. What you will learn Install Cassandra Create keyspaces and tables with multiple clustering columns to organize related data Use secondary indexes and materialized views to avoid denormalization of data Effortlessly handle concurrent updates with collection columns Ensure data integrity with lightweight transactions and logged batches Understand eventual consistency and use the right consistency l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值