Upload
-
View
1.553
Download
4
Embed Size (px)
Citation preview
이걸 한지 꽤 오래됐는데 이제서야 이걸 올리게 됐다이게 다 옹차장이 술을 사지 않았기 때문이다!
그리고 이 내용은 한짤로 요약하자면 아래와 같다
캐리어 가야 되요~~.develop
Ubuntu 해상도 문제
Virtual Box 특성상 Ubuntu의 해상도가 800x600 고정되어 있는 경우가 종종 있음
<해결책>
1. Ubuntu 업데이트 및 DKMS 설치
터미널을 연다
Ubuntu 해상도 문제
1. Ubuntu 업데이트 및 DKMS 설치
sudo apt-get update 실행
sudo apt-get upgrade 실행
sudo apt-get install dkms 실행
Ubuntu 호환 IP 설정
호스트포트 9042, 게스트IP 192.168.56.101, 게스트포트 9042
지금부터 CA1의 내부 IP는 192.168.56.101로 설정할 것
9042포트는 Cassandra를 위한 설정
Ubuntu 내부 IP 설정
터미널 열고 -> sudo vi /etc/network/interfaces [ENTER]
다음과 같이 입력 저장 및 리붓
앞으로 CA1은 IP가 192.168.56.101로 설정됨
추후 CA2는 IP가 192.168.56.102로 설정될 예정
주의 : 설정이후 호스트PC에서 ping 192.168.56.101하면 연결불가됨 이는 나중에 포트포워딩으로 확인 가능
Cassandra 설치
설치 메뉴얼
http://www.datastax.com/documentation/cassandra/2.0/cassandra/install/installDeb_t.html
JDK 설치
설치되어있던 openjdk 삭제
sudo apt-get purge openjdk*
apt-repository에 경로 추가
sudo apt-get install software-properties-common
ppa 추가
sudo add-apt-repository ppa:webupd8team/java
JDK 7 설치
sudo apt-get install oracle-java7-installer
JDK 설치
설치되어있던 openjdk 삭제
sudo apt-get purge openjdk*
apt-repository에 경로 추가
sudo apt-get install software-properties-common
ppa 추가
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
JDK 7 설치
sudo apt-get install oracle-java7-installer
JDK 설치 확인
Cassandra 설치
Curl 설치
repository에 경로 추가
sudo curl -L http://debian.datastax.com/debian/repo_key | sudo apt-key add -
패키지 설치
sudo apt-get update
sudo apt-get install dsc20
초기화
sudo service cassandra stop
sudo rm -rf /var/lib/cassandra/data/system/*
Cassandra 환경 설정
환경 설정 파일 경로
/etc/cassandra/conf/cassandra.yaml
설정 내역
Simple Data Center
RackInferringSnitch
IP 192.168.56.101
Client 연결 포트 9042(기본)
Cli 연결 9160(기본)
주의: cassandra.yaml에서 설정이 xxx : xxx 일 경우 띄어쓰기 잘 해줘야 함 붙여
쓸 경우 parse 에러 발생함
Cassandra.yaml 설정
initial token 설정(메인 0)
seeds 설정(192.168.56.101)
Listen Address 설정(192.168.56.101)
주의: 대부분의 사이트에서 listen_address를 0.0.0.0 잡으라고 하는데 이럴 경우 실행하면 나중에 broadcast 를 잡지 않았다고 에러가 발생함
Cassandra.yaml 설정
rpc_address 설정(192.168.56.101)
cluster_name 설정(적당히 알아서)
endpoint_snitch(RackInferringSnitch)
기타 설정들에 대한 설명과 각 전략에 대한 설명은 칸이 부족해적지 않는다
Cassandra.yaml 설정
로그 위치
/var/log/cassandra/
데이터 위치
/var/lib/cassandra/commitlog
/var/lib/cassandra/data
/var/lib/cassandra/saved_caches
주의: 나중에 token이 중복되었다니 등의 문제가 발생하면 이는 데이터를 지우기 전엔 복구
가 안되므로 위의 데이터 내의 파일을 모두 지우고 초기화를 하면 initial_token이 새로 적용
된다
Cassandra.yaml 설정
서비스 시작 및 동작상황 확인
sudo service cassandra start
node status
이미지 처럼 1개가 우선 동작하고 있는 것이 확인된다
Node 복제
CA1을 종료하고 CA2를 실행하여 IP를 192.168.56.102로 변경한다
Cassandra.yaml의 IP부분중 seeds를 제외하고 나머지를 전부102로 바꾼다
initial token 설정은 0이 아닌 다른 키로 입력한다(이거 충돌나면 안됨)
순서대로 재시작
CA1을 켜고 CA2를 켠 다음 nodetool status를 확인한다주의: 만약 error중 Cannot change the number of tokens from 1 to 256 에러 발생하면 cassandra.yaml에서 num_tokens를 1로 바꾸고 data로그를 다 지운다
정상적인 동작상황이면 nodetool status를 통해 2개가 연결된것을 확인할 수 있다
Client Lib
Client 종류는 여러가지가 존재함
https://github.com/datastax/java-driver에서 드라이버를 다운받음 driver-core.jar
이 파트는 아무래도 SQL쿼리문 처럼 사용할 수 있기때문에 사용함.
다른Lib는 가능한지 확인 안함
DB 생성
connect 192.168.56.101/9160 ; 실행
create keyspace demodb with placement_strategy=‘org.apache.cassandra.locator.SimpleStrategy’ and strategy_options = {replication_factor:1};
demodb라는 keyspace 생성
Insert Select Delete 등에 대해서 각 기능과 Update는 왜 어려운지 등에 대한 별도의 연구가 필요
->update는 인덱스의 재배치가 필요하므로 페이지 로드가
크기 때문이다
시스템적인 구성에 대한 연구 또한 필요
Client SQL
껐다 켜면 cassandra cannot change the number of tokens from 1 to 256 라는게종종 뜨는데 이건 num_tokens 세팅 때문이다 이는 데이터센터가 1개이상 즉NetworkTopologyStrategy 사용시에 virtual node가 사용되고 이 virtual node의 갯수를 설정할때 쓰는 부분이다. 우린 SimpleStrategy라 별 의미가 없다. 자세한건 여기참조
http://www.datastax.com/documentation/cassandra/2.0/cassandra/configuration/configVnodesProduction_t.html?scroll=task_ds_jsd_xjd_2l__task_ds_jsd_xjd_2l_unique_1
MariaDB 연동은 가능은 하지만 현재 알파버전 (10.1)으로 진행중이기 때문에 현재는큰 의미는 없다. 내용은 Cassandra의 table을 Mariadb에서 읽어 들일 수 있게 Table Mapping처리를 해주는 방법을 사용한다
주의
MariaDB 연동은 가능은 하지만 현재 알파버전 (10.1)으로 진행중이기 때문에 현재는큰 의미는 없다. 내용은 Cassandra의 table을 Mariadb에서 읽어 들일 수 있게 Table Mapping처리를 해주는 방법을 사용한다
주의