Apache Phoenix를 사용하여 Amazon EMR 읽기 전용 복제본 클러스터의 Apache HBase에 연결할 때 다음과 유사한 오류 메시지가 표시됩니다.
Error: ERROR 1108 (XCL08): Cache of region boundaries are out of date. (state=XCL08,code=1108) org.apache.phoenix.schema.StaleRegionBoundaryCacheException: ERROR 1108
(XCL08): Cache of region boundaries are out of date.
at org.apache.phoenix.exception.SQLExceptionCode$14.newException(SQLExceptionCode.java:365)
at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:150)
at org.apache.phoenix.util.ServerUtil.parseRemoteException(ServerUtil.java:189)
at org.apache.phoenix.util.ServerUtil.parseServerExceptionOrNull(ServerUtil.java:169)
at org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:140)
간략한 설명
Phoenix는 기본적으로 hbase:meta에 연결하려고 합니다. 그러나 hbase:meta 테이블이 기본 클러스터에 속하기 때문에 Phoenix는 읽기 전용 복제본 클러스터에 연결할 수 없습니다. 이 문제를 해결하려면 hbase-site.xml을 수정하여 HBase 읽기 전용 복제본 클러스터에 속하는 hbase:meta_cluster-id를 가리키십시오.
해결 방법
시작하기 전에 먼저 Phoenix가 기본 클러스터 및 읽기 전용 복제본 클러스터에 설치되어 있는지 확인하십시오. Phoenix가 기본 클러스터에 설치되어 있지 않은 경우 읽기 전용 복제본 클러스터에서 HBase에 연결할 수 없습니다.
실행 중인 클러스터의 경우
1. 다음 구성을 프라이머리 노드의 HBase 구성 파일 ( /etc/phoenix/conf/hbase-site.xml)에 추가합니다. cluster-id를 읽기 전용 복제본 클러스터 ID로 대체합니다.
<property>
<name>hbase.balancer.tablesOnMaster</name>
<value>hbase:meta</value>
</property>
<property>
<name>hbase.meta.table.suffix</name>
<value>cluster-id</value>
</property>
2. Phoenix 서비스를 다시 시작합니다.
Amazon EMR 릴리스 버전 5.29 이하의 경우:
sudo stop phoenix-queryserver
sudo start phoenix-queryserver
Amazon EMR 릴리스 버전 5.30 이상의 경우:
sudo systemctl stop phoenix-queryserver.service
sudo systemctl start phoenix-queryserver.service
Amazon EMR 릴리스 버전 5.2.1.0 이상에서는 마스터 인스턴스 그룹의 클러스터 구성을 재정의하여 이 구성을 변경할 수도 있습니다.
1. Amazon EMR 콘솔을 엽니다.
2. 클러스터 목록에서 재구성할 활성 읽기 전용 복제본 클러스터를 선택합니다.
3. 해당 클러스터의 클러스터 세부 정보 페이지를 열고 [구성] 탭으로 이동합니다.
4. 필터 드롭다운 목록에서 마스터 인스턴스 그룹을 선택합니다.
5. 재구성 드롭다운 목록에서 테이블에서 편집을 선택합니다.
6. 구성 추가를 선택한 후, 다음의 두 구성을 추가합니다.
분류: phoenix-hbase-site
속성: hbase.balancer.tablesOnMaster
값: hbase:meta
분류: phoenix-hbase-site
속성: hbase.meta.table.suffix
값: ${emr.clusterId}
7. 변경 사항 저장을 선택합니다.
이 프로세스에 대한 자세한 내용은 콘솔에서 인스턴스 그룹에 대해 재구성을 참조하십시오.
새 클러스터의 경우
Amazon EMR 릴리스 버전 4.6.0 이상을 사용하여 클러스터를 시작하는 경우에는 다음과 유사한 구성 객체를 추가하세요.
[
{
"Classification": "phoenix-hbase-site",
"Configurations": [
],
"Properties": {
"hbase.balancer.tablesOnMaster" : "hbase:meta",
"hbase.meta.table.suffix" : "${emr.clusterId}"
}
},
{
"Classification": "hbase-site",
"Configurations": [
],
"Properties": {
"hbase.meta.table.suffix" : "${emr.clusterId}"
}
}
]
관련 정보
Amazon S3 기반 HBase(Amazon S3 스토리지 모드)
Apache Phoenix