2017-05-17 1 views
5

현재 Cassandra의 현재 버전은 2.2.4이며 모든 데이터를 잃지 않고 3.0.10으로 업그레이드하려고합니다. 그게 어떻게 가능해?현재 데이터를 잃지 않고 Cassandra 업그레이드

내 클러스터는 복제 계수가 2 인 노드가 3 개로 구성됩니다.이 업데이트가 클러스터 아키텍처에 영향을 줍니까?

답변

2

을 기반으로 한 데이터로 dba.stackexchange에 대해 비슷한 질문에 답했습니다. 예. 기존 데이터를 손실하지 않고 클러스터를 업그레이드 할 수 있으며, 2.2에서 3으로 직접 업그레이드 할 수 있습니다. 롤링 업그레이드 방식을 사용하는 것이 좋습니다. 기본적으로 업그레이드하려면 다음 단계를 따라야합니다.

  1. 노드를 중지하십시오. 구성 파일을 백업하십시오. 제품을 설치하는 방법에 따라이 파일은 설치 중에 기본값으로 겹쳐 쓸 수 있습니다.
  2. 새 버전의 카산드라에 대한 바이너리를 설치합니다 (tarball, apt-get, yum 등을 통해).
  3. 새 제품을 구성하십시오. 구성 파일로 만든 백업을 사용하여 이전에 수행 한 모든 수정 사항을 새 버전의 새 구성 파일에 병합하십시오. 구성 옵션이 자주 변경되므로 추가 단계 및 구성 관련 변경 사항에 대한 버전 제한 사항을 다시 한 번 확인하십시오. 이것은 Cassandra 3으로 업그레이드 할 때 필요합니다. 2.2 이하의 기존 설정 파일을 사용할 수 없기 때문입니다.
  4. 노드를 시작하십시오.
  5. 각 노드에 sstables 업그레이드
  6. : $ nodetool upgradesstables

확인 로그를 경고, 오류 및 예외. 클러스터의 각 노드에서 반복하십시오. upgradesstables 단계는 사실 이후 각 노드에서 실행할 수 있습니다. 카산드라는 한 가지 버전의 스토리지를 읽을 수 있지만 새로운 카산드라 3 스토리지 엔진의 모든 이점을 얻으려면 모든 노드에서 해당 단계를 완료해야합니다.

편집 20170518

당신이 2. 설치 단계와 방법을 설치하는 방법을 설명시겠습니까?

업그레이드 할 예정이므로 사용 된 OS 및 패키지 관리자 (있는 경우)에 따라 달라지는 초기 설치 방법에 따라 달라집니다.

  • 데비안 기반의 리눅스 (데비안, 우분투, 크노픽스)

    sudo dpkg -S cassandra가 설치된 위치를 알려 주어야합니다.

  • 레드햇 기반의 리눅스 (CentOS는, 페도라, RHEL)

    sudo rpm -q cassandra가 설치된 위치를 알려 주어야합니다.

둘 다 작동하지 않으면 노드가 tarball 설치 프로세스로 구축되었을 가능성이 큽니다. 그리고 진지하게 그것은 에 대한 사람의 추측과 같습니다. 바이너리가 설치된 곳입니다.일반적인 위치는 /etc/cassandra, /opt/cassandra//usr/local/cassandra입니다.

당신이 파악되면, 당신은 apt-get (데비안)를 사용하여 패키지 관리자로 업그레이드를 호출 할 수 있어야한다 :

yum (레드햇)에 대한 sudo apt-get update sudo apt-get install casandra

지금 나는 당신을 생각 여전히 꽤 그것을하지 않는 한 아직 정확한 REPOS에서 RPM을 다운로드해야합니다

sudo rpm cassandra-3.10-noarch.rpm

sudo mv /etc/cassandra /etc/cassandra_20170510 
sudo mv ~/Downloads/apache-cassandra-3.10.tar.gz /etc/ 
cd /etc 
sudo tar -zxvf apache-cassandra-3.10.tar.gz 
sudo mv /etc/apache-cassandra-3.10 /etc/cassandra 

과 일치하도록 새 디렉토리에 소유권을 변경하는 것을 잊지 마세요 : 설치 타르볼에서 실행하는 경우는 그리고, 내가 무엇을 좋아하는 것은 다운로드하고 새로운 바이너리 압축을 해제하기 전에 디렉토리의 이름을 변경입니다 이전 설치

이 프로세스 (및 각 방법)에 대한 자세한 내용은 Apache Cassandra Download page에서 확인할 수 있습니다.

+0

2 단계를 설명해주십시오. 설치 위치 및 설치 방법을 알려주십시오. –

+0

@Ajmalsha 편집하기. – Aaron

5

카산드라 버전 업그레이드 절차
1. 기존 카산드라 서비스를 종료하기 전에 nodetool drain을 실행하십시오.
nodetool drain -h hostname
2. 카산드라 서비스를 중지하십시오.
service cassandra stop
3. 기존 설치에서 안전한 장소로 Cassandra 구성 파일을 백업하십시오.
4. java 버전을 업데이트하십시오.
업데이트 apt-get을
apt-get을 오라클 - java8 - 설정 - 기본
자바 -version
5. 아파치 카산드라의 새 버전을 설치합니다.
apt-get update
apt-get install cassandra = 3.7.0
소스에서 Cassandra를 실행하는 경우 패키지 관리자를 사용하는 대신 최신 tar.gz를 다운로드해야합니다.
6. 새 제품을 구성하십시오. 이전에 새 버전의 새 구성 파일 (cassandra.yml, cassandra-env.sh 등)에 대한 수정 사항을 검토, 비교, 병합 및/또는 업데이트하십시오.
7. 카산드라 서비스를 시작합니다.
service cassandra start
로그에서 경고, 오류 및 예외를 확인하십시오.
tail -f /ttio/var/logs/cassandra/system.log # 또는 로그를 설정하는 경로.
8. nodetool upgradesstables를 실행하십시오.
nodetool upgradesstables
9. 경고, 오류 및 예외에 대한 로그를 확인하십시오.
tail -f /ttio/var/logs/cassandra/system.log # 또는 로그를 설정하는 경로.
10. 클러스터의 상태 확인
nodetool -h 호스트 이름 상태
11. 클러스터의 각 노드에서이 업그레이드 단계를 반복하십시오.

자세한 내용은 링크를 참조하십시오.upgrade Cassandra to the latest version

관련 문제