파이문

[HBase] NotServingRegionException 해결 본문

트러블 슈팅

[HBase] NotServingRegionException 해결

민Z 2021. 4. 7. 12:25

org.apache.hadoop.hbase.NotServingRegionException: Region xxx is not online on ... 에러 발생

 

hbase table 이름도 로그에 있었기 때문에, 해당 table 을 HBase WebUI 로 확인해 봄

살펴보니 Regions by Region Server 에서 내용이 없었음 (region is off line)

Region 을 다시 Region server 에 할당해줘야 한다.

그러기 위해선 region_name 을 알아야 하는데, 역시나 HBase WebUI 에서 확인 가능함 (빨간색으로 칠한 부분이다!)

 

Table Regions 에서 보여지는 Name 은 RegionInfo 로 아래와 같은 형식으로 이루어진 것임 (최신 버젼 RegionInfo 확인)

table_name,start_key,timestamp.encoded_region_name.

 

여기서 encoded_region_name 으로 region 을 다시 할당해주고, major compaction 을 돌렸다,

assign 'acc1ad1b7962564fc3a43e5907e8db33'
major_compact 'test_table'

 

근데 이렇게 해도 안되더라. 알고보니 오프라인 region 이 꽤 되었던 것이었다. 

하나하나 찾아서 할당해주긴 힘드니까 그냥 repair 를 함

hbase hbck -repair

hbase client 정상 동작 확인함

 

이렇게 막 해도 (?) 되는 이유는 서비스 클러스터가 아니여서 그랬던것이다. (그래서 major compaction 도 막하고...)

서비스는 또 다르게 접근해야할수도?

Comments