EMR Phoenix사용중에 같은 테이블명의 QA환경, 개발환경을 구분하여 구현해야 할 때가 있다.
Phoenix 스키마를 사용하여
- QA.TEST_TABLE
- DEV.TEST_TABLE
과 같이 구분시킨다.
[ 1 ]
위와 같이 사용하기 위해선 네임스페이스 관련 hbase-site.xml설정을 해야하는데
Hbase의 Master, Region서버 모두 설정값을 수정한다.
sudo vi /usr/lib/hbase/conf/hbase-site.xml
[ 네임스페이스 관련 ]
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<property>
<name>phoenix.schema.mapSystemTablesToNamespace</name>
<value>true</value>
</property>
[ 성능관련 ]
<property>
<name>phoenix.functions.allowUserDefinedFunctions</name>
<value>true</value>
</property>
<property>
<name>phoenix.query.maxServerCacheBytes</name>
<value>2097152000</value>
</property>
<property>
<name>phoenix.mutate.maxSize</name>
<value>20000000</value>
</property>
<property>
<name>phoenix.mutate.batchSize</name>
<value>10000</value>
</property>
[ 2 ]
설정값 변경 후 서비스를 재시작한다.
systemctl --type=service | grep hbase (서비스이름확인)
sudo systemctl restart hbase-master.service (마스터노드에서)
sudo systemctl restart hbase-region.service (리전노드에서 )
sudo systemctl restart phoenix-queryserver.service (마스터노드에서)
[ 에러 ]
ERROR: SYSTEM.MUTEX is disabled.
or
AvaticaClientRuntimeException: Remote driver error: RuntimeException: org.apache.phoenix.exception.PhoenixIOException: SYSTEM:CATALOG -> PhoenixIOException: SYSTEM:CATALOG -> TableNotFoundException: SYSTEM:CATALOG. Error -1 (00000) null
과 같은 에러메세지가 쿼리서버에서 나타나면 주키퍼 Znode를 최신화시켜주어야한다.
bin/hbase clean --cleanZk
명령어 이후 [2]와 같이 서비스를 재시작한다.
'DataPipeline > Phoenix' 카테고리의 다른 글
Apache Phoenix - Thick Server 접속 Java예제코드 (0) | 2023.03.24 |
---|---|
Apache Phoenix - 기존 HBase테이블과 맵핑 (0) | 2023.03.24 |
Apache Phoenix - CDH 피닉스 초기 설정 [Init Configuration] (0) | 2023.03.22 |
Apache Phoenix - 설치 [ Install in cloudera manager ] (0) | 2023.03.14 |