cassandra와 thrift 의 설치

cassandra 는 facebook 에서 만든 NoSQL 입니다.
아버지를 아버지라 부르지 못한다고, 최근에 Facebook 에서 더 이상 cassandra 에 대한 contribution 은 없다고
선언한 상황이지만, apache main project 이므로 어느정도 발전을 기대할 수는 있지 않을까 싶습니다.

현재 cassandra의 공식 버전은 0.6.8 이고, 0.7.0-RC 버전이 진행중입니다.

http://cassandra.apache.org/

cassandra의 설치는 굉장히 쉽습니다.

1. 다운을 받습니다.
2. 압축을 풉니다.
3. conf/storage-conf.xml 파일을 수정합니다.

DataFileDirectory 는 데이터가 저장될 디렉토리 이고
Seeds 는 cassandra 새 노드가 추가될 때, 관련 정보를 어디서 확인할 것인지 알려주는 서버주소입니다.
ListenAddress 는 Cassandra 끼리 통신할 때 어느주소로 바인딩 할것인지 결정하는 겁니다.
여기서는 0.0.0.0 이나 localhost 라고 적으면 시작이 안됩니다.
ThriftAddress 는 Thrift RPC로 접근할 수 있는 Port 주소 입니다. 0.0.0.0 으로 하면 모든 주소로
바인딩 하게 됩니다.
ThriftFramedTransport 는 FramedTransport 를 쓸것이냐 여부입니다. Framed는 Buffered 와 호환이
되지 않으므로, 취향에 맞게 결정하시면 됩니다.
ReplicationFactor 는 몇개의 Replica 를 구성할 것인지 여부입니다.

  <SavedCachesDirectory>/data/cassandra/saved_caches</SavedCachesDirectory>
  <CommitLogDirectory>/data/cassandra/commitlog</CommitLogDirectory>
  <DataFileDirectories>
      <DataFileDirectory>/data/cassandra/data</DataFileDirectory>
  </DataFileDirectories>

  <Seeds>
      <Seed>172.27.0.3</Seed>
  </Seeds>

  <ListenAddress>172.27.0.2</ListenAddress>
  <!– internal communications port –>
  <StoragePort>7000</StoragePort>

  <ThriftAddress>0.0.0.0</ThriftAddress>
  <!– Thrift RPC port (the port clients connect to). –>
  <ThriftPort>9160</ThriftPort>

  <ThriftFramedTransport>true</ThriftFramedTransport>
  <ReplicationFactor>1</ReplicationFactor>

이 파일을 수정하고 나면

4. log4j.properties 를 열어서 로그가 어디로 쌓일 건지 결정하면 됩니다.

그리고 bin/cassandra 만 하면 -_- 끝입니다. 엄청 간단하지요?

cassandra 가 hadoop, hbase 와 다른건, p2p 방식처럼 자신이 스스로를 broadcast 해서 다른 서버
설정을 특별히 알 필요가 없습니다.

5. thrift 의 설정
cassandra 0.6 대 버전은 thrift 0.4.0 버전을 써야 합니다.
thrift 0.5.0 은 현재 cassandra 0.7대 버전을 위한 것입니다. 잘못 고르면 빌드가 안되는 ㅎㅎㅎ