- HBase๋ NoSQL์ ํ ์ข ๋ฅ์ด๋ค.
- HBase๋ ๋ถ์ฐ Database ์ด๋ค.
- HBase๋ ์ฌ์ค "Data Base" ๋ณด๋ค๋ "Data Store"์ด๋ค. (RDBMS์ Feature์ธ culumns, secondary indexies, triggers, and advanced query languages ๋ฑ ๋ง์ ๋ถ๋ถ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ)
- HBase๋ ์ ํ์ ์ด๊ณ ๋ชจ๋ํ๋ scaling ์ํด ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- Strongly consistent reads/writes: HBase๋ "eventually consistent" DataStore๊ฐ ์๋๋ค. ์ด๋ ๋งค์ฐ ๋น ๋ฅธ counter aggregation์ด ๊ฐ๋ฅํ๊ฒ ํ๋ค.
- Automatic sharding: HBase tables๋ Region์ ํตํด ํด๋ฌ์คํฐ์ ๋ถ์ฐ๋์ด ์๊ณ Region์ ์๋์ ์ผ๋ก ๋๋์ด์ง๊ณ Data์ ์์ด ๋์ด๋จ์ ๋ฐ๋ผ ์ฌ ๋ถ์ฐ๋๋ค.
- Automatic RegionServer Failover
- Hadoop/HDFS Integration: HBase๋ HDFS๋ฅผ ์ง์ํ๋ค.
- MapReduce: HBase๋ฅผ ํ์ฉํ๋ Source์ Sink๋ก์จ MapReduce๋ฅผ ํตํด massively parallelized processing๋ฅผ ์ง์ํ๋ค.
- Java Client API: HBase๋ ํ๋ก๊ทธ๋จ์ ์ธ ์ ๊ทผ์ ์ฝ๊ฒ Java API๋ฅผ ์ด์ฉ๋๋ก ์ง์ํ๋ค.
- Thrift/REST API: Java๊ฐ ์ด๋ Front-end๋ฅผ ์ํด Thrift์ REST๋ฅผ ์ง์ํ๋ค.
- Block Cache and Bloom Filters: ๊ณ ์ฉ๋ ์ฟผ๋ฆฌ ์ต์ ํ๋ฅผ ์ํด Block Cache์ Bloom Filter๋ฅผ ์ง์ํ๋ค.
- Operational Management: JMX Metric์ ๋ํ์ฌ ์ถ๊ฐ์ ์ธ insight๋ฅผ ์ํด Build-in web-page๋ฅผ ์ ๊ณตํ๋ค.
Catalog table hbase:meta๋ ํ๋์ HBase table์ด๊ณ HBase shell์ list ๋ช
๋ น์์ ์ ์ธ ๋์ด์๋ค. ๊ทธ๋ฌ๋ ์ฌ์ค ๋ค๋ฅธ ๊ฒ๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋จ์ง ํ
์ด๋ธ์ด๋ค.
hbase:meta table์ Region๋ค์ ๋ชฉ๋ก์ ๊ฐ์ง๊ณ ์๊ณ hbase:meta์ ์์น๋ Zookeeper์ ์ ์ฅ๋์ด ์๋ค.
- Reagion key of the format (
[table],[region start key],[region id])
info:regioninfoํด๋น Region์ HRegionInfo instance ๊ฐ ๋์ด๋จinfo:serverํด๋น Region์ ๋ด๊ณ ์๋ RegionServer์ portinfo:serverstartcodeํด๋น Region์ ๋ด๊ณ ์๋ RegionServer process์ ์์ ์๊ฐ
Data๋ rows์ columns๋ฅผ ๊ฐ๋ tables๋ก ์ ์ฅ๋๋ค. Terminology๊ฐ RDBMS์ overlap๋์ง๋ง ์์ ํ ๊ฐ์ ์ ์ฌ์ ์ด ์๋๋ค. ๋์ , HBase table์ multi-dementional map์ด๋ผ๊ณ ์๊ฐํ๋ ๊ฒ์ด ๋์ฑ ํจ๊ณผ์ ์ผ๋ก ์ดํดํ ์ ์๋ค.
Table์ ์ฌ๋ฌ Row๋ค๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
Column์ ์ฝ๋ก (:)๋๋์ด์ง๋ Column family์ Column qualifier๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
Column family๋ ์ฑ๋ฅ ๊ด๋ จ ์ด์ ๋ก ํํ column๊ณผ ๊ทธ ๊ฐ์ด ๋ฌผ๋ฆฌ์ ์ผ๋ก ๊ฐ์ด ์กด์ฌํ๋ค. ๊ฐ Column family๋ ๊ฐ๋ค์ด ๋ฉ๋ชจ๋ฆฌ์ ์บ์ฑ๋์ด์ผ ํ๋์ง data๊ฐ ์์ถ๋๊ฑฐ๋ row key๊ฐ encoding๋๋์ง ๋ฑ์ storage properties์ ์งํฉ์ ๊ฐ์ง๊ณ ์๋ค.
Column qualifier๋ ๋จํธ์ Data๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด column family์ ์ถ๊ฐ๋์ด ์๋ค. Column family "content"๊ฐ ์๋ค๋ฉด Column qualifier๋ "content:html"๋ "content:pdf"์ผ ๊ฒ์ด๋ค. ๋น๋ก Column family๋ table ์์ฑ ์ ๊ณ ์ ๋์ง๋ง, Column qualifier๋ ๋ณํ ์ ์๊ณ , row๋ค ์ฌ์ด์์๋ ๋งค์ฐ ๋ค๋ค ์ ์๋ค.
Cell์ ๊ฐ์ ๋ฒ์ ์ ๋ํ๋ด๋ row์ column family, column qualifier, ๊ฐ๊ณผ Timestamp๋ฅผ ํฌํจํ๊ณ ์๋ ๊ฒฐํฉ์ด๋ค.
- Row key -> Coulmn Family -> Coulmn -> Version: Value
{row, column, version}
๊ฐ ๊ฐ๊ณผ ๋๋ํ ์ฐ์ฌ์ง timestamp๋ก ์๋ณ์๋ก์จ ๊ฐ์ ์ฃผ์ด์ง ๋ฒ์ ์ด๊ธฐ๋ ํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก timestamp๋ RegionServer์์ data๋ฅผ ์ธ ๋ ๋ํ๋๋ ์๊ฐ์ด์ง๋ง data๋ฅผ cell์ ๋ฃ์ ๋ ํน์ timestamp ๊ฐ์ ์ง์ ํ ์ ์๋ค.
Row Key๋ Human readableํ์ง ์์ ๋ฐ์ดํธ๋ก ๊ตฌ์ฑ๋ ํค์ด๋ค.
๋จ์ผ row์ ๋ํ ์ฝ๊ธฐ/์ฐ๊ธฐ๋ ์์์ฑ์ด ๋ณด์ฅํ๋ค. ํ ์ด๋ธ์์ ๊ฐ์ฅ ๋ฎ์ ์์๋ก ์ฒซ ๋ฒ์งธ๋ก ํ์๋๋ ์ฌ์ ์ ์ ๋ ฌ๋๋ค. ๋น ๋ฐ์ดํธ ๋ฐฐ์ด์ ํ ์ด๋ธ์ ๋ค์ ์คํ์ด์ค์ ์์๊ณผ ๋์ ๋ํ๋ด๋๋ฐ ์ฌ์ฉ๋๋ค. table์ ๋์ ์ผ๋ก row key์ ๋ฒ์๋ฅผ ์๋ผ์ ํํฐ์ ๋(tablet)ํ๋ค.
| Row Key | Time Stamp | ColumnFamily contents | ColumnFamily anchor | ColumnFamily people |
|---|---|---|---|---|
| "com.cnn.www" | t9 | anchor:cnnsi.com = "CNN" | ||
| "com.cnn.www" | t8 | anchor:my.look.ca = "CNN.com" | ||
| "com.cnn.www" | t6 | contents:html = "โฆโ" | ||
| "com.cnn.www" | t5 | contents:html = "โฆโ" | ||
| "com.cnn.www" | t3 | contents:html = "โฆโ" | ||
| "com.example.www" | t5 | contents:html = "โฆโ" | people:author = "John Doe" |
| Row Key | Time Stamp | ColumnFamily anchor |
|---|---|---|
| "com.cnn.www" | t9 | anchor:cnnsi.com = "CNN" |
| "com.cnn.www" | t8 | anchor:my.look.ca = "CNN.com" |
| Row Key | Time Stamp | ColumnFamily contents |
|---|---|---|
| "com.cnn.www" | t6 | contents:html = "โฆโ" |
| "com.cnn.www" | t5 | contents:html = "โฆโ" |
| "com.cnn.www" | t3 | contents:html = "โฆโ" |
RDB์ ์ ์ฌํ ๋ ผ๋ฆฌ์ ์ธ ๊ทธ๋ฃน์ด๋ค. ์ด ์ถ์์ ๊ฐ๋ ์ ์๋์ multi-tenancy ๊ด๋ จ ๊ธฐ๋ฅ์ ๊ธฐ์ด๊ฐ ๋๋ค.
- Quota Management: Namespace๊ฐ ์๋นํ๋ ์์์ ์์ ์ ํํ๋ค.
- Namespace Security Administration: tenants๋ฅผ ์ํ ๋ณด์๊ด๋ฆฌ์ ๋ค๋ฅธ ๋ ๋ฒจ์ ์ ๊ณตํ๋ค.
- Region server groups: Namespace/table์ RegionServer์ ํ์ ์งํฉ์ด๋ผ๊ณ ํ ์ ์์ด ๊ฑฐ์น ์์ค์ ๊ฒฉ๋ฆฌ๊ฐ ๋ณด์ฅ๋๋ค.
- ๊ธฐ๋ณธ์ ์ธ ๋ค๊ฐ์ง์ model operation์ Get๊ณผ Put, Scan, Delete์ด๋ค. Operration์ Table Instance๋ฅผ ํตํด ์ ์ฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ Row ๋จ์ ์์ ์ ์์์ฑ์ด ๋ณด์ฅ
- ์ผ๋ฐ์ ์ผ๋ก Table์ Application์ ์์ํ ๋ ๋จ ํ๋ฒ๋ง ์์ฑ
- put instance๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ row key๋ฅผ ์ ๊ณตํด์ผ ํ๋ค.
- HBase์ Row๋ ๊ณ ์ ํ Row key๋ก ์๋ณํ๋ฉฐ, Rowkey ํ์ ์ java ๋ฐ์ดํฐํ์ ์ธ byte array๋ก ์ ์ฅ๋๋ค.
- Cloumn์ ์ถ๊ฐํ๋ ค๋ฉด add()๋ฅผ ์ฌ์ฉํ๋ค.
- ํน์ cell์ด ์กด์ฌํ๋์ง ์์๋ณด๋ ค๋ฉด has()๋ฅผ ์ฌ์ฉํ๋ค.
- ํด๋ผ์ด์ธํธ ์ฝ๋์์ ์ค์ ํ์ผ์ ์ ๊ทผํ๋ ค๋ฉด HBaseConfiguration class๋ฅผ ์ฌ์ฉํ๋ค.
- Row ๋จ์๊ฐ ์๋ ํน์ Cell ๋จ์์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ฐํํ๋ค.
- ์ขํ๊ณ์ฒ๋ผ Row key, Column qualifier, timestamp๊ฐ 3์ฐจ์ ๊ณต๊ฐ์ ํ ์ง์ ์ ๊ฐ๋ฆฌํค๋ ๋ชจ์ต์ด๋ค.
- ์ฃผ๋ก Key ๋ฐ์ดํฐ๊ฐ์ ๋น๊ต/๊ฒ์ฆ/๋ณต์ ๋ฑ์ ์ฌ์ฉํ๋ค.
- ์ ์ฅ๊ณต๊ฐ์ ์ต์ํํ์ฌ ํจ์จ์ ์ผ๋ก ๋ฐ์ดํฐ ์ ์ฅํ๊ณ , ๋น ๋ฅธ ๋ฐ์ดํฐ ์ฐ์ฐ์ ์ ๊ณตํ๊ธฐ ์ํด Byte Array ํ์ ์ ์ฌ์ฉํ๋ค.
- ์ฐ์ฐ์ ์ผ๊ด๋ก ํ๋ฐ ๋ฌถ์ด์ ์ฒ๋ฆฌํ๋ค.
- ๋ฆฌ์คํธ ๊ธฐ๋ฐ์ ์ ๋ ฅ์ ์๋ฒ ์ธก์์ ์ผ๋ ฅ ์ฐ์ฐ์ด ์ ์ฉ๋๋ ์์๋ฅผ ์ ์ด ํ ์ ์๋ค.
- ๋ฐ์ดํฐ ์ ๋ ฅ ์์๋ฅผ ๋ณด์ฅํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ์๊ฒ ๋๋ ํ White cache๋ฅผ ๋ช ์์ ์ผ๋ก Flushํด์ผ ํ๋ค.
- ํน์ Row ํ๋๋ฅผ ๋์์ผ๋ก ์ํ๋์ง๋ง, row ๋ด์์๋ Column/Cell ์ ํ์ด ์๋ค.
- ๋ฒ์ ๊ฐ์๋ 1๋ก ์ต๊ทผ ๊ฐ๋ง ๋ฆฌํด ๋ฐ๊ณ , setMaxVersions()๋ฅผ ํตํ์ฌ ์ง์ ๊ฐ๋ฅํ๋ค.
- get()์ ํตํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ๋ค์ผ ๋ get ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ชจ๋ Cell์ ๋ด๊ณ ์๋ Result class์ Interface๋ฅผ ๋ฐํํ๋ค.
- ์๋ฒ์์ ๋ฐํํ ๋ชจ๋ Column family, Column qualifier, Timestamp ์ ๊ทผ ์๋จ์ ์ ๊ณตํ๋ค.
- ํ๋์ ์์ฒญ์ผ๋ก ์ฌ๋ฌ๊ฐ์ Row๋ฅผ ์๊ตฌํ ๋ ์ฌ์ฉ๋๋ค.
- get instance์ ๋์ผํ ๋ฐฐ์ด์ ๋ฐํ, ์์ธ๋ฐ์ ์ค ํ๋๋ก๋ง ๋์ํ๋ค.
- Delete class๋ฅผ ์์ฑํ๋ ค๋ฉด ์ญ์ ๋์ Row Key๋ฅผ ์ ๋ ฅํด์ผ ํ๋ค.
- Rowlock ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ๊ฐ ์ ํํ์ฌ ๋์ผํ Row๋ฅผ ๋ ๋ฒ ์ด์ ๋ณ๊ฒฝํ๊ณ ์ ํ ๋ ์ฌ์ฉ์ ์์ ์ ๋ฝ์ ์ค์ ํ๋ค.
- ์ ์ฒด Family ๋ฐ ๊ทธ์ ์ํ๋ Column ์ญ์ , Timestamp ์ง์ ์ด ๊ฐ๋ฅํ๋ค.
- put list ์ ์ ์ฌํ๊ฒ ๋์ํ๋ค.
- Remote ์๋ฒ์์๋ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋๋ ์์๋ฅผ ๋ณด์ฅํ ์ ์๋ค๋ ๊ฒ์ ์ฃผ์ํ๋ค.
- Table.delete(deletes) ์ํ ์ ์คํจํ ์์ ์ deletes์ ๋จ๊ฒ ๋๋ฉฐ, Exception ์ฒ๋ฆฌ๋ try/catch ๊ตฌ๋ฌธ์ ์ด์ฉํ๋ค.
- Table์ row key๋ง ์ธ๋ฑ์ค๋ก ๊ฐ๋๋ค.
- Row๋ค์ row key์ ์ํด ์ฌ์ ์ ์ ๋ ฌ๋ก ๋์ด ์๋ค.
- Row ์์ค์ ๋ชจ๋ operation์ ์์์ฑ(Atomic)์ ๊ฐ๋๋ค.
- ์ฝ๊ธฐ์ ์ฐ๊ธฐ๋ ๊ณ ๋ฅด๊ฒ ๋ถ์ฐ๋์ด ์์ด์ผ ํ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ๋จ์ผ row์๋ entity์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ๋๋ค.
- ๊ด๊ณ๊ฐ ์๋ entity๋ ์ธ์ ํ row์ ์ ์ฅํ๋ค.
- ๋น column์ ๊ณต๊ฐ์ ์๊ณ ํ์ง ์์ ๋งค์ฐ ๋ง์ ์์ column์ด ๋๋ถ๋ถ์ row์ ๋น์ด ์์ด๋ ๊ด์ฐฎ๋ค.
- Salting: ์์ ๋๋คํ๊ฒ ๋ฌธ์๋ฅผ ์ฝ์
- Hashing: ์ฌ๋ฌ ๊ฐ์ ํ๋์ row key๋ก ์ฌ์ฉํ๋ ๊ฒจ์ฐ ์ ์ฉํ๊ณ , ์์ธก๊ฐ๋ฅํ ๊ธธ์ด์ ๊ฐ ์ ์ป์ ์ ์์
- Reversing the Key: ์ ์ฌํ row์ ๋ฐ์ดํฐ๊ฐ ์๋ก ์ธ์ ํ๊ฒ ๋๊ณ , ์์ถ๋ฅ ์ด ๋์์ง
์์ฐจ์ ์ผ๋ก ์ฆ๊ฐ๋๋ key๋ฅผ ๋ถ์ฌํ๋ค๋ฉด, ์ต์ ์ ์๋ก์ด ์ฌ์ฉ์๊ฐ ๋ ํ๋์ ์ธ ๊ฒฝํฅ์ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋๋ถ๋ถ์ ํธ๋ ํฝ์ด ํ์ ๋ ์์ ๋ ธ๋์ ์ง์ค๋๋ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์๋ค. ์ด๋ฐ ์ํฉ์์ ๋ค์ง์ด์ง ID๋ฅผ ์ฌ์ฉํด ๋ชจ๋ ๋ ธ๋๋ก ๋ฐ์ดํฐ๊ฐ ๋ถ์ฐ๋๋๋ก ๊ณ ๋ คํด์ผ ํ๋ค.
- Column Families: ๊ฐ๊ธ์ ์ด๋ฉด ์ด๋ฆ์ ์งง๊ฒ ํ์. (์: data๋ d)
- Attributes: ์๋ก myVeryImportantAttribute๊ฐ ์ฝ๊ธฐ ์ฝ๋๋ผ๋ via๋ก ์ ์ฅํ๋ ๊ฒ์ด ์ข๋ค.
- Rowkey Length: ํค๋ ๊ฐ๋ฅํ ์งง๊ฒ ํ์. (ํธ๋ ์ด๋ ์คํ ๊ณ ๋ ค)
- Byte Patterns: 8๋ฐ์ดํธ์ long์ ์ ์ฅํ๋ฉด 3x๋ฐ์ดํธ๊ฐ ๋๋ค.
์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ก database processing์์ ๊ฐ์ฅ ์ต๊ทผ์ ๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ๋ ๊ฒ์ด๋ค. ๋ค์ง์ด์ง timestamp๋ฅผ ํค์ ์ผ๋ถ๋ก ์ฌ์ฉํ๋ technique์ ์ด ๋ฌธ์ ๋ฅผ ํธ๋ ํน๋ณํ ์ฌ๋ก์ด๋ค. (Long์ ์ต๋ ๊ฐ์์ timestamp๋ฅผ ๋นผ๋ ๋ฑ์ ๋ฐฉ๋ฒ)
Rowkey๋ ColumnFamily์ ๋ฒ์์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ table์์ ์ถฉ๋์ด ์๋ ์ํ๋ก ์กด์ฌํ๋ ColumnFamily์ด๋ค.
Row key๋ ๋ณํ ์ ์๊ณ , "changed"๋ ์ญ์ ํ๊ณ ๋ค์ ์ฝ์ ํ๋ ๊ฒ์ด๋ค.
Coprocessor framework๋ data๋ฅผ ๊ด๋ฆฌํ๋ RegionServer์ ์ง์ ์์ฑํ ์ปค์คํ ์ฝ๋๋ฅผ ๋์์ํค ์ฐํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ค.
RDBMS๋ SQL ์ฟผ๋ฆฌ๋ฅผ ์ฐ๋ ๋ฐ๋ฉด HBase๋ Data๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด Get ๋๋ Scan๋ฅผ ์ฌ์ฉํ๋ค. RDBMS์์ WHERE๋ฅผ ์ฐ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ์ ์ ํ data๋ง์ ๊ฐ์ ธ์ค๊ธฐ ์ํด HBase Filter๋ฅผ ์ฌ์ฉํ๋ค.
Data๋ฅผ ๊ฐ์ง๊ณ ์์ ์ง์ ๊ณ์ฐ์ ์คํํ๋ค. ์ด ํ๋ฌ๋ค์์ ๋ช ์ฒ๊ฐ row์ ๋ช column์ผ๋ก ์ด๋ฃจ์ด์ง "Small data"๋ ์ ๋์ํ๋ค. ๊ทธ๋ฌ๋ 10์ต๋จ์์ row์ ๋ฐฑ๋ง๋จ์์ column์ ๋๋์ data๊ฐ network์์ ๋ณดํ๋ ์ ๋ง๋ค์ด ๋ด๊ณ , client๋ ์ถฉ๋ถํ powerfulํ๊ณ ์ถฉ๋ถํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ์ด์ผ ํ๋ค.
๋น์ง๋์ค ๊ณ์ฐ ์ฝ๋๋ฅผ coprocessor๋ก์จ ์ง์ด๋ฃ์ด RegionServer ์์์ data์ ๊ฐ์ ์์น๋ก ๊ณ์ฐํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก client ์๊ฒ ๋ฐํํด ์ค ์ ์๋ค.
Observer coprocessor๋ ํน์ event๊ฐ ๋ฐ์ํ ์ ํ์ custom code๊ฐ ์คํ๋๋ RDBMS์ trigger์ ๋น์ทํ๊ณ endpoint coprocessor๋ RDBMS์ ์ ์ฅ ํ๋ก์์ ์ ๋น์ทํ๋ค.
MapReduce๋ ๊ณ์ฐ์ด Data๊ฐ ์๋ ์์น๋ก ์ด๋ํ๋ ์์น์ผ๋ก ๋์ํ๋ค. Coprocessor ์ญ์ ๊ฐ์ ์์น์ผ๋ก ๋์ํ๋ค.
Aspect Oriented Programming (AOP)์ด ์ต์ํ๋ค๋ฉด, Coprocessor๋ฅผ ๋ง์ง๋ง ๋์ฐฉ์ง๋ก ๊ฐ๊ธฐ์ ์ ์์ฒญ์ ๊ฐ๋ก์ฑ๊ณ custom code๋ฅผ ์คํํ๋๋ก ์ ์ฉํ๋ ๊ฒ์ผ๋ก์ผ ๋ณผ ์ ์๋ค.
- Coprocessor interface ์ค ํ๋๋ฅผ ๊ตฌํ
- HBase Shell์ ์ ์ ๋๋ ๋์ ์ผ๋ก coprocessor ๋ก๋
- client-side code ์์ ํธ์ถ
Event๊ฐ ๋ฐ์ ์ ํ์ Trigger๋์ด ์ฌ์ฉํ๋ค.
- RegionObserver:
Get๊ณผPutoperation ๊ฐ์ด Region์์์ Event๋ฅผ Observeํ๊ธฐ ์ํด ์ฌ์ฉ - RegionServerObserver: ์์ ๋๋ ์ ์ง, Merge, Commit, Rollback ๋ฑ RegionSercer์ ์ด์์ ๊ด๊ณ๋ Event๋ฅผ Observeํ๊ธฐ ์ํด ์ฌ์ฉ
- MasterObserver: Table ์์ฑ๋๋ ์ญ์ , ์์ ๋ฑ HBase Master์ ๊ด๊ณ๋ Event๋ฅผ Observeํ๊ธฐ ์ํด ์ฌ์ฉ
- WalObserver: Write-Ahead Log๋ก ์ฐ๊ธฐ ๊ฒ์ ๊ด๊ณ๋ Event๋ฅผ Observeํ๊ธฐ ์ํด ์ฌ์ฉ
Endpoint Coprocessor๋ Data์ ์์น์์ ๋ฐ๋ก ๊ณ์ฐ์ ์คํํ ์ ์๋๋ก ์ฌ์ฉํ๋ค.