Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
1. 다운로드
http://cassandra.apache.org/download/
http://www.apache.org/dyn/closer.lua/cassandra/3.4/apache-cassandra-3.4-bin.tar.gz
2. 압축풀기
tar xvfz apache-cassandra-3.4-bin.tar.gz
3. 링크생성
ln -s apache-cassandra-3.4 cassandra
4. 환경변수 추가(카산드라가 설치되는 모든 서버에 설정함, root로 실행)
vi /etc/profile
#classandra
export CASSANDRA_HOME=$HOME/cassandra
*변경사항 반영
source /etc/profile
5. ./conf/cassandra.yaml 정보수정(각 노드 모두 수정필요함)
가. cluster_name: 'GSDA Cluster'
나. data_file_directories:
- /data/cassandra/data
다. commitlog_directory: /data/cassandra/commitlog
라. saved_caches_directory: /data/cassandra/saved_caches
라-1. hints_directory: /data/cassandra/hints
마. listen_address: sda1 (각 서버에 고유한 주소지정)
바. rpc_address: 0.0.0.0(대표(마스타) 서버는 0.0.0.0으로 하고 나머지 서버도 모두 0.0.0.0으로 지정)
사. endpoint_snitch: RackInferringSnitch
아. broadcast_rpc_address: sda1 (각 서버에 고유한 주소지정) <- 1.2.11에서는 지원되지 않음
자. - seeds: "sda1"로 지정함(cluster에서 대표가 되는 서버의 주소로 지정함)
차. start_rpc: true로 변경함(defalt는 false) <= 활성화 시켜줘야 client program에서 접근하여 명령을 실행할 수 있다.
(혹은 start_rpc값을 변경하지 않고, bin/nodetool enablethrift명령를 실행하여 직접 작동시킬 수도 있다)
=> 대표(마스타)서버에서만 실행할것(?)
카. listen_on_broadcast_address: true
하. broadcast_address: gsda1(각 서버에 고유한 주소지정)
5-1. 각 서버에 scp로 복사(서버에 특화된 설정값(listen_address, broadcast_address, broadcast_rpc_address)을 바꿀것)
scp -r -P 22 apache-cassandra-3.10 root@gsda2:$HOME
scp -r -P 22 apache-cassandra-3.10 root@gsda3:$HOME
scp -r -P 22 apache-cassandra-3.10 root@gsda4:$HOME
scp -r -P 22 apache-cassandra-3.10 root@gsda5:$HOME
6. cassandra기동(설치된 모든 서버에서 실행, -f는 background가 아닌 foreground로 기동,-R을쓰면 root로 기동할 수 있음(비추천))
bin/cassandra -R (필요시 -f)
* cassandra내리기 : ps -ef | grep cassandra해서 pid를 찾고 kill pid로 데몬을 죽여서 cassandra데몬을 내린다.
7. 각종 정보 확인
가. 디스크 강제 쓰기 : bin/nodetool -h localhost flush (-h localhost 생략가능)
나. 요청작업 상태보기 : bin/nodetool -h localhost tpstats (-h localhost 생략가능)
다. thrift 상태보기 : bin/nodetool -h localhost statusthrift (-h localhost 생략가능)
라. cfg 상태보기(db크기등) : bin/nodetool -h localhost cfstats (-h localhost 생략가능)
마. 클러스터 구성 정보 : bin/nodetool status (rpc_address를 0.0.0.0으로 지정햔 서버에서 명령을 주면 데몬이 죽어버림(?))
root@gsda4:~/cassandra/bin# nodetool status Datacenter: 251 =============== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 104.251.212.191 282.33 KiB 256 49.1% 1de4b4b4-ac78-45c0-9009-051fd09634e6 212 UN 104.251.212.146 219.62 KiB 256 48.0% 0ec06870-f209-4dd8-8013-cc0fe101e57c 212 UN 104.251.212.192 206.73 KiB 256 50.5% 95f9daf7-6b66-435f-9d0d-9bb0b81e4327 212 UN 104.251.212.183 311.93 KiB 256 52.4% 4060b53b-c4e1-42ef-a166-81c44f0bceaf 212
* jps로 데몬이 확인되지 않을 수 있는데 이때는 "ps -ef |grep cass"를 이용하여 확인한다.
* cassandra관련 포트
7199 JMX monitoring port
7000 Inter-node cluster
7001 SSL inter-node cluster
9042 CQL native Transport Port
9160 Thrift
1024-65355 Random port required by JMX, com.sun.management.jmxremote.rmi.port(cassandra-env.sh)를 지정하면
랜덤하게 부여하지 않고 고정할 수 있다.
댓글 0
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
5 | lagom의 online-auction-java프로젝트 실행시 외부의 kafka/cassandra를 사용하도록 설정하는 방법 | 2017.10.12 | 967 |
4 | Not enough replica available for query at consistency QUORUM가 발생하는 경우 | 2017.06.21 | 872 |
3 | cassandra cluster 문제가 있는 node제거 하기(DN상태의 노드가 있으면 cassandra cluster 전체에 문제가 발생하므로 반드시 제거할것) | 2017.06.21 | 921 |
2 | bin/cassandra -f -R로 startup할때 NullPointerException오류가 나면 조치할 내용 | 2016.04.14 | 459 |
» | Cassandra 3.4(3.10) 설치/설정 (5대로 clustering) | 2016.04.11 | 997 |