< HBase 쓰기 경로 >

 데이터가 HBase 에 저장되면 가장 먼저 두 곳에 저장이 된다.

 - WAL(Write Ahead Log)

 - Memstore

 

< Memstore 란? >

 Memstore 는 memory 에 있는 buffer 이다.

 disk 에 데이터를 쓰기 전 데이터를 모아둔다.

 쓰여진 데이터들이 일단 Memstore buffer 에 쌓이고, 이 buffer 가 꽉 차면 그제서야 disk 에 쓰여지게 된다(Flush).

 이 때 HFile 형태의 데이터로 쓰여진다.

 Flush 되면 이어서 쓰여지는 게 아니라, 새로운 하나의 HFile 이 되어져서 쓰여진다.

 

< Write Ahead Log 란? >

 수행되는 모든 변경사항들을 기록한 것이다.

 서버가 중지되어도, WAL 의 기록을 보고 중지되기 전 상태까지 복구가 가능하다.

 만약 어떤 연산이 WAL 기록에 실패했다면, 그 연산은 실패한 연산이 된다.

 

< Memstore 에 장애 발생시 >

 Flush 가 되기 전에 장애가 나면 Memstore buffer 내의 데이터는 모조리 잃어버린다.

 하지만 WAL 의 기록들을 기준으로 복구된다.

 

< HFile 이란? >

 HFile 은 HBase 의 저장 포맷이다.

 HFile 은 하나의 컬럼 패밀리에 속한다.

 (하나의 컬럼 패밀리는 여러개의 HFile 들을 가질 수 있다.)

 

 

 

 

참고

hbase 아키텍처 자세한 설명

https://www.youtube.com/watch?v=2Ci_QxJ1kiE&t=1457s
https://mapr.com/blog/in-depth-look-hbase-architecture/

https://www.youtube.com/watch?v=V1fXSCASVDc

https://www.joinc.co.kr/w/man/12/hadoop/hbase/about

https://datacookbook.kr/40

https://data-flair.training/blogs/hbase-architecture/

https://www.youtube.com/watch?v=2Ci_QxJ1kiE

하둡 완벽 가이드 내용 정리 : http://wiki.gurubee.net/pages/viewpage.action?pageId=28117473

https://community.cloudera.com/t5/Community-Articles/How-Region-Split-works-in-HBase/ta-p/248814

https://m.blog.naver.com/PostView.nhn?blogId=talag&logNo=221019176724&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

 

 

+ Recent posts