롤백
롤백
이 문서는 HBase 업그레이드 후 이전 HBase 릴리스로 롤백하는 방법을 설명해요. 업그레이드를 시도할 때 예상대로 되지 않을 때가 있어요. 롤백은 메이저와 일부 마이너 릴리스 사이에서만 필요할 수 있어요. 같은 마이너 버전 내의 HBase 패치 릴리스 간에는 항상 다운그레이드할 수 있어야 해요.
출처: 문서
본문
업그레이드를 시도할 때 때때로 일이 계획대로 되지 않아요. 이 문서는 더 이른 HBase 릴리스로 롤백을 수행하는 방법을 설명해요. 이는 메이저와 일부 마이너 릴리스 사이에서만 필요할 수 있다는 점에 유의하세요. 같은 마이너 버전 내의 HBase 패치 릴리스 간에는 항상 다운그레이드할 수 있어야 해요. 이 지침은 업그레이드 프로세스를 시작하기 전에 취해야 할 단계가 있을 수 있으므로, 미리 이 문서를 끝까지 읽어 두세요.
주의 사항
롤백 vs 다운그레이드
이 문서는 HBase 마이너 및 메이저 버전 간 업그레이드에서 롤백을 수행하는 방법을 설명해요. 여기서 롤백은 업그레이드된 클러스터를 업그레이드 이후 발생한 모든 변경을 잃어버리면서 이전 버전으로 복원하는 과정을 의미해요. 반대로 클러스터 다운그레이드는 업그레이드 이후 쓰인 데이터를 유지하면서 업그레이드된 클러스터를 이전 버전으로 복원해요. 우리는 현재 HBase 클러스터를 롤백하는 지침만 제공해요. 또한 롤백은 이 지침이 업그레이드를 수행하기 전에 따랐을 때만 동작해요.
이 지침이 사전 준비 클러스터 서비스(즉 HDFS)의 롤백 vs 다운그레이드에 대해 말할 때, 서비스 버전을 그대로 두는 것을 다운그레이드의 축소된 경우로 취급해야 해요.
복제
모든 서비스 롤백을 하는 것이 아니라면, HBase 클러스터는 HBase 복제를 위해 구성된 피어를 잃게 돼요. 클러스터가 HBase 복제용으로 구성되어 있다면, 이 지침을 따르기 전에 모든 복제 피어를 문서화해야 해요. 롤백을 수행한 후 문서화된 각 피어를 다시 클러스터에 추가해야 해요. 또한 업그레이드 이후 클러스터에 쓰인 데이터가 이미 일부 피어에 복제되었을 수도 있고 아닐 수도 있다는 점에 유의하세요. 어떤 피어가 복제 데이터를 보았는지 판단하고 그 피어의 데이터를 롤백하는 것은 이 가이드의 범위 밖이에요.
데이터 지역성(Data Locality)
모든 서비스 롤백을 하는 것이 아니라면, 롤백 절차를 거치면 Region Server의 모든 지역성이 파괴될 가능성이 높아요. 클러스터가 컴팩션을 통해 데이터 지역성을 복원할 시간을 가질 때까지 성능 저하를 기대해야 해요. 선택적으로 클러스터 부하를 발생시키는 대가로 강제 컴팩션으로 이 과정을 빠르게 할 수 있어요.
구성 가능한 위치
아래 지침은 HBase 데이터 디렉터리와 HBase znode의 기본 위치를 가정해요. 두 위치 모두 구성 가능하며 진행 전에 클러스터에서 사용된 값을 확인해야 해요. 다른 값을 가진 경우 기본값을 구성에서 찾은 값으로 대체하면 돼요.
- HBase 데이터 디렉터리는 'hbase.rootdir' 키로 구성되고 기본값은 '/hbase'예요.
- HBase znode는 'zookeeper.znode.parent' 키로 구성되고 기본값은 '/hbase'예요.
모든 서비스 롤백
HDFS와 ZooKeeper 서비스 모두를 롤백할 것이라면, 그 과정에서 HBase 데이터도 롤백돼요.
요구 사항
- HDFS와 ZooKeeper를 롤백할 수 있는 능력
업그레이드 전
업그레이드 전에 추가 단계가 필요하지 않아요. 추가 예방 조치로, 업그레이드할 클러스터에서 distcp로 HBase 데이터를 백업할 수 있어요. 그러려면 'HDFS 다운그레이드 후 롤백'의 '업그레이드 전' 섹션 단계를 따르되 같은 인스턴스가 아닌 다른 HDFS 인스턴스에 복사하세요.
롤백 수행
HBase 중지
HDFS와 ZooKeeper에 대한 롤백 수행(HBase는 중지된 상태여야 함)
설치된 HBase 버전을 이전 버전으로 변경
HBase 시작
HBase 내용 확인 — HBase 셸을 사용해 테이블을 나열하고 일부 알려진 값을 스캔하세요.
HDFS 롤백 및 ZooKeeper 다운그레이드 후 롤백
HDFS를 롤백하지만 ZooKeeper 다운그레이드를 거치게 된다면, HBase는 일관되지 않은 상태가 될 거예요. 이 프로세스를 완료할 때까지 클러스터가 시작되지 않도록 해야 해요.
요구 사항
- HDFS를 롤백할 수 있는 능력
- ZooKeeper를 다운그레이드할 수 있는 능력
업그레이드 전
업그레이드 전에 추가 단계가 필요하지 않아요. 추가 예방 조치로, 업그레이드할 클러스터에서 distcp로 HBase 데이터를 백업할 수 있어요. 그러려면 'HDFS 다운그레이드 후 롤백'의 '업그레이드 전' 섹션 단계를 따르되 같은 인스턴스가 아닌 다른 HDFS 인스턴스에 복사하세요.
롤백 수행
HBase 중지
HDFS에 대한 롤백과 ZooKeeper에 대한 다운그레이드 수행(HBase는 중지된 상태여야 함)
설치된 HBase 버전을 이전 버전으로 변경
HBase와 관련된 ZooKeeper 정보 정리. 경고: 이 단계는 모든 복제 피어를 영구적으로 파괴해요. 자세한 내용은 주의 사항의 HBase 복제 섹션을 참고하세요.
ZooKeeper에서 HBase 정보 정리:
[hpnewton@gateway_node.example.com ~]$ zookeeper-client -server zookeeper1.example.com:2181,zookeeper2.example.com:2181,zookeeper3.example.com:2181
Welcome to ZooKeeper!
JLine support is disabled
rmr /hbase
quit
Quitting...
HBase 시작
HBase 내용 확인 — HBase 셸을 사용해 테이블을 나열하고 일부 알려진 값을 스캔하세요.
HDFS 다운그레이드 후 롤백
HDFS 다운그레이드를 수행할 것이라면, ZooKeeper가 롤백, 다운그레이드 또는 재설치를 거치든 관계없이 이 지침을 따라야 해요.
요구 사항
- HDFS를 다운그레이드할 수 있는 능력
- 업그레이드 전 클러스터가 MapReduce 작업을 실행할 수 있어야 함
- HDFS 슈퍼 사용자 접근
- HBase 데이터 디렉터리의 복사본 최소 두 개를 위한 HDFS의 충분한 공간
업그레이드 전
업그레이드 프로세스를 시작하기 전에 HBase의 뒷받침 데이터의 완전한 백업을 가져와야 해요. 다음 지침은 현재 HDFS 인스턴스 내부의 데이터 백업을 다뤄요. 대안으로 distcp 명령을 사용해 다른 HDFS 클러스터에 데이터를 복사할 수 있어요.
HBase 클러스터 중지
HDFS 슈퍼 사용자로 distcp 명령을 사용해 HBase 데이터 디렉터리를 백업 위치에 복사(아래는 보안 활성화 클러스터에서 보여줌)
distcp를 사용한 HBase 데이터 디렉터리 백업:
[hpnewton@gateway_node.example.com ~]$ kinit -k -t hdfs.keytab [email protected]
[hpnewton@gateway_node.example.com ~]$ hadoop distcp /hbase /hbase-pre-upgrade-backup
Distcp는 분산 방식으로 파일 복사를 처리하기 위해 mapreduce 작업을 실행할 거예요. 이 작업이 성공적으로 완료됐는지 distcp 명령의 출력을 확인하세요.
롤백 수행
HBase 중지
HDFS에 대한 다운그레이드와 ZooKeeper에 대한 다운그레이드/롤백 수행(HBase는 중지된 상태여야 함)
설치된 HBase 버전을 이전 버전으로 변경
업그레이드 전의 HBase 데이터 디렉터리 복원. HDFS 슈퍼 사용자로 업그레이드 전의 HBase 데이터 디렉터리를 복원하세요(아래는 보안 활성화 클러스터에서 보여줌). 데이터를 로컬이 아닌 다른 HDFS 클러스터에 백업했다면 distcp 명령을 사용해 현재 HDFS 클러스터로 다시 복사해야 해요.
HBase 데이터 디렉터리 복원:
[hpnewton@gateway_node.example.com ~]$ kinit -k -t hdfs.keytab [email protected]
[hpnewton@gateway_node.example.com ~]$ hdfs dfs -mv /hbase /hbase-upgrade-rollback
[hpnewton@gateway_node.example.com ~]$ hdfs dfs -mv /hbase-pre-upgrade-backup /hbase
HBase와 관련된 ZooKeeper 정보 정리. 경고: 이 단계는 모든 복제 피어를 영구적으로 파괴해요. 자세한 내용은 주의 사항의 HBase 복제 섹션을 참고하세요.
ZooKeeper에서 HBase 정보 정리:
[hpnewton@gateway_node.example.com ~]$ zookeeper-client -server zookeeper1.example.com:2181,zookeeper2.example.com:2181,zookeeper3.example.com:2181
Welcome to ZooKeeper!
JLine support is disabled
rmr /hbase
quit
Quitting...
HBase 시작
HBase 내용 확인 — HBase 셸을 사용해 테이블을 나열하고 일부 알려진 값을 스캔하세요.