32. Ubuntu 해상도 문제
2. 게스트 확장 설치
Linux를 켜고 [게스트 확장 설치] 클릭(보통 virtual box 디렉토리에 존재함)
33. Ubuntu 호환 IP 설정
Virtual Box때문에 호스트 PC와 게스트 PC상 통신문제가 발생
2개의 어댑터를 통한 내부 통신 및 외부 통신이 가능하게 적용
34. Ubuntu 호환 IP 설정
설정->네트워크->어댑터1
NAT 선택 및 포트포워딩 클릭
35. Ubuntu 호환 IP 설정
호스트포트 9042, 게스트IP 192.168.56.101, 게스트포트 9042
지금부터 CA1의 내부 IP는 192.168.56.101로 설정할 것
9042포트는 Cassandra를 위한 설정
36. Ubuntu 호환 IP 설정
어댑터 2 생성->호스트전용어댑터->VirtualBox Host-Only
Ethernet Adaptor->모두 허용 설정->재시작
37. Ubuntu 호환 IP 설정
호스트PC의 네트워크->Virtual Host-Only Network 속성-
>IPv4 설정-> IP주소 아래와 같이 설정(DNS는 설정안함)->재시
작
38. 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하면 연결
불가됨 이는 나중에 포트포워딩으로 확인 가능
42. 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
43. 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 설치 확인
44. 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/*
45. Cassandra 환경 설정
환경 설정 파일 경로
/etc/cassandra/conf/cassandra.yaml
설정 내역
Simple Data Center
RackInferringSnitch
IP 192.168.56.101
Client 연결 포트 9042(기본)
Cli 연결 9160(기본)
주의: cassandra.yaml에서 설정이 xxx : xxx 일 경우 띄어쓰기 잘 해줘야 함 붙여
쓸 경우 parse 에러 발생함
46. Cassandra.yaml 설정
initial token 설정(메인 0)
seeds 설정(192.168.56.101)
Listen Address 설정(192.168.56.101)
주의: 대부분의 사이트에서 listen_address를 0.0.0.0 잡으라고 하는데 이럴 경우 실행
하면 나중에 broadcast 를 잡지 않았다고 에러가 발생함
48. Cassandra.yaml 설정
로그 위치
/var/log/cassandra/
데이터 위치
/var/lib/cassandra/commitlog
/var/lib/cassandra/data
/var/lib/cassandra/saved_caches
주의: 나중에 token이 중복되었다니 등의 문제가 발생하면 이는 데이터를 지우기 전엔 복구
가 안되므로 위의 데이터 내의 파일을 모두 지우고 초기화를 하면 initial_token이 새로 적용
된다
49. Cassandra.yaml 설정
서비스 시작 및 동작상황 확인
sudo service cassandra start
node status
이미지 처럼 1개가 우선 동작하고 있는 것이 확인된다
51. Node 복제
CA1을 종료하고 CA2를 실행하여 IP를 192.168.56.102로 변경
한다
Cassandra.yaml의 IP부분중 seeds를 제외하고 나머지를 전부
102로 바꾼다
initial token 설정은 0이 아닌 다른 키로 입력한다(이거 충돌나
면 안됨)
52. 순서대로 재시작
CA1을 켜고 CA2를 켠 다음 nodetool status를 확인한다
주의: 만약 error중 Cannot change the number of tokens from 1 to 256 에러 발생
하면 cassandra.yaml에서 num_tokens를 1로 바꾸고 data로그를 다 지운다
정상적인 동작상황이면 nodetool status를 통해 2개가 연결된
것을 확인할 수 있다
54. Client Lib
Client 종류는 여러가지가 존재함
https://github.com/datastax/java-driver에서 드라이버를 다운
받음 driver-core.jar
이 파트는 아무래도 SQL쿼리문 처럼 사용할 수 있기때문에 사용
함.
다른Lib는 가능한지 확인 안함
56. 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 생성
57. demodb에 연결 시도
에러가 나지 않으면 정상 연결
이 앞에 포트포워딩 한 포트와 해당 PC의 IP를 연결하여 테스트
Client Demo 접근 테스트
61. Insert Select Delete 등에 대해서 각 기능과 Update는 왜 어려
운지 등에 대한 별도의 연구가 필요
->update는 인덱스의 재배치가 필요하므로 페이지 로드가
크기 때문이다
시스템적인 구성에 대한 연구 또한 필요
Client SQL
62. 껐다 켜면 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/configuratio
n/configVnodesProduction_t.html?scroll=task_ds_jsd_xjd_2l__task_ds_jsd_xjd_2l_u
nique_1
MariaDB 연동은 가능은 하지만 현재 알파버전 (10.1)으로 진행중이기 때문에 현재는
큰 의미는 없다. 내용은 Cassandra의 table을 Mariadb에서 읽어 들일 수 있게 Table
Mapping처리를 해주는 방법을 사용한다
주의
63. MariaDB 연동은 가능은 하지만 현재 알파버전 (10.1)으로 진행중이기 때문에 현재는
큰 의미는 없다. 내용은 Cassandra의 table을 Mariadb에서 읽어 들일 수 있게 Table
Mapping처리를 해주는 방법을 사용한다
주의