Phoenix를 사용하여 HBase 읽기 전용 복제본 Amazon EMR 클러스터를 실행할 때 발생하는 "리전 경계 캐시가 더 이상 사용되지 않음" 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 4월 13일

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 서비스를 다시 시작합니다.

sudo stop phoenix-queryserver
sudo start phoenix-queryserver

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}"
      }
  }
]

이 문서가 도움이 되었습니까?

개선할 부분이 있습니까?


다른 도움이 필요하십니까?