ΠΠΎΠ±Π°Ρ Π΄Π΅Π½ ΠΠΎΠ΅ΡΠΎ ΠΈΠΌΠ΅ Π΅ ΠΠ°Π½ΠΈΠ» ΠΠΈΠΏΠΎΠ²ΠΎΡ, Π½Π°ΡΠΈΠΎΡ ΡΠΈΠΌ Π²ΠΎ Π‘Π±Π΅ΡΡΠ΅Ρ ΠΏΠΎΡΠ½Π° Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈ HBase ΠΊΠ°ΠΊΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ²Π°ΡΠ΅, ΡΠ΅ Π°ΠΊΡΠΌΡΠ»ΠΈΡΠ°ΡΠ΅ ΠΈΡΠΊΡΡΡΠ²ΠΎ ΠΊΠΎΠ΅ ΡΠ°ΠΊΠ°Π² Π΄Π° Π³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°ΠΌ ΠΈ ΠΎΠΏΠΈΡΠ°ΠΌ (ΡΠ΅ Π½Π°Π΄Π΅Π²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠ΅ ΠΈΠΌ Π±ΠΈΠ΄Π΅ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΡΠΌΠΈΠ½Π°). Π‘ΠΈΡΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ ΠΏΠΎΠ΄ΠΎΠ»Ρ Π±Π΅Π° ΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈ ΡΠΎ Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° HBase 1.2.0-cdh5.14.2 ΠΈ 2.0.0-cdh6.0.0-beta1.
- ΠΠΏΡΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
- ΠΠ°ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ HBASE
- Π§ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ HBASE
- ΠΠ΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ
- Π‘Π΅ΡΠΈΡΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ MultiGet/MultiPut
- Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡΠ° Π·Π° ΠΏΠΎΠ΄Π΅Π»Π±Π° Π½Π° ΡΠ°Π±Π΅Π»ΠΈΡΠ΅ Π²ΠΎ ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ (ΠΏΠΎΠ΄Π΅Π»Π±Π°)
- Π’ΠΎΠ»Π΅ΡΠ°Π½ΡΠΈΡΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ
- ΠΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ
- Π’Π΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΡΡΠ΅Ρ
- ΠΠ°ΠΎΠ΄ΠΈ
1. ΠΠΏΡΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°

Π Π΅Π·Π΅ΡΠ²Π½ΠΈΠΎΡ Master Π³ΠΎ ΡΠ»ΡΡΠ° ΡΡΠΊΠ°ΡΠ΅ΡΠΎ Π½Π° ΡΡΡΠ΅ΡΠΎ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΈΠΎΡ Π½Π° ZooKeeper ΡΠ°Π·ΠΎΠ»ΠΎΡ ΠΈ, Π²ΠΎ ΡΠ»ΡΡΠ°Ρ Π½Π° ΠΈΡΡΠ΅Π·Π½ΡΠ²Π°ΡΠ΅, Π³ΠΈ ΠΏΡΠ΅Π·Π΅ΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° Π³ΠΎΡΠΏΠΎΠ΄Π°ΡΠΎΡ.
2. ΠΠ°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ HBASE
ΠΡΠ²ΠΎ, Π΄Π° Π³ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ Π½Π°ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈΠΎΡ ΡΠ»ΡΡΠ°Ρ - ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎ ΠΊΠ»ΡΡΠ½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡ Π²ΠΎ ΡΠ°Π±Π΅Π»Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ put(rowkey). ΠΠ»ΠΈΠ΅Π½ΡΠΎΡ ΠΌΠΎΡΠ° ΠΏΡΠ²ΠΎ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ ΠΊΠ°Π΄Π΅ ΡΠ΅ Π½Π°ΠΎΡΠ° Root Region Server (RRS), ΠΊΠΎΡ ΡΠ° ΡΠΊΠ»Π°Π΄ΠΈΡΠ° ΡΠ°Π±Π΅Π»Π°ΡΠ° hbase:meta. ΠΠ²Π°Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ° ΡΠ° Π΄ΠΎΠ±ΠΈΠ²Π° ΠΎΠ΄ ZooKeeper. ΠΠΎΡΠ»Π΅ ΡΠΎΠ°, ΡΠΎΡ ΠΏΡΠΈΡΡΠ°ΠΏΡΠ²Π° Π΄ΠΎ RRS ΠΈ ΡΠ° ΡΠΈΡΠ° ΡΠ°Π±Π΅Π»Π°ΡΠ° hbase:meta, ΠΎΠ΄ ΠΊΠΎΡΠ° ΠΈΠ·Π²Π»Π΅ΠΊΡΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΠΎΠ° ΠΊΠΎΡ RegionServer (RS) Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π΄Π°Π΄Π΅Π½ ΡΠ΅Π΄ΠΎΡΠ»Π΅Π΄ Π²ΠΎ ΡΠ°Π±Π΅Π»Π°ΡΠ° Π·Π° ΠΈΠ½ΡΠ΅ΡΠ΅Ρ. ΠΠ° ΠΈΠ΄Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°, ΠΌΠ΅ΡΠ°-ΡΠ°Π±Π΅Π»Π°ΡΠ° Π΅ ΠΊΠ΅ΡΠΈΡΠ°Π½Π° ΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ ΠΈ Π·Π°ΡΠΎΠ° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠΈ ΠΎΠ΄Π°Ρ ΠΏΠΎΠ±ΡΠ·ΠΎ, Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄ΠΎ RS.
Π‘Π»Π΅Π΄Π½ΠΎ, Π Π‘, ΠΎΡΠΊΠ°ΠΊΠΎ Π΄ΠΎΠ±ΠΈ Π±Π°ΡΠ°ΡΠ΅, ΠΏΡΠ²ΠΎ Π³ΠΎ ΠΏΠΈΡΡΠ²Π° Π²ΠΎ WriteAheadLog (WAL), ΡΡΠΎ Π΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½ΠΎ Π·Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ Π²ΠΎ ΡΠ»ΡΡΠ°Ρ Π½Π° ΠΏΠ°Π΄. ΠΠΎΡΠΎΠ° Π³ΠΈ Π·Π°ΡΡΠ²ΡΠ²Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π²ΠΎ MemStore. ΠΠ²Π° Π΅ Π±Π°ΡΠ΅Ρ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΡΡΠΎ ΡΠΎΠ΄ΡΠΆΠΈ ΡΠΎΡΡΠΈΡΠ°Π½ ΡΠ΅Ρ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ Π·Π° Π΄Π°Π΄Π΅Π½ ΡΠ΅Π³ΠΈΠΎΠ½. Π’Π°Π±Π΅Π»Π°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ (ΠΏΠ°ΡΡΠΈΡΠΈΠΈ), ΠΎΠ΄ ΠΊΠΎΠΈ ΡΠ΅ΠΊΠΎΡΠ° ΡΠΎΠ΄ΡΠΆΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ ΡΠ΅Ρ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ. ΠΠ²Π° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΈ Π·Π° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠΎΠΊΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ. Π‘Π΅ΠΏΠ°ΠΊ, ΠΈ ΠΏΠΎΠΊΡΠ°Ρ ΠΎΡΠΈΠ³Π»Π΅Π΄Π½ΠΎΡΡΠ° Π½Π° ΠΎΠ²Π°Π° ΠΈΠ·ΡΠ°Π²Π°, ΠΏΠΎΠ΄ΠΎΡΠ½Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠΎΠ° Π½Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° Π²ΠΎ ΡΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ.
ΠΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π·Π°ΠΏΠΈΡ Π²ΠΎ MemStore, Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ ΡΠ΅ Π²ΡΠ°ΡΠ° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ Π΄Π΅ΠΊΠ° Π·Π°ΠΏΠΈΡΠΎΡ Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°ΡΡΠ²Π°Π½. ΠΠ΅ΡΡΡΠΎΠ°, Π²ΠΎ ΡΠ΅Π°Π»Π½ΠΎΡΡΠ° ΡΠΎΡ ΡΠ΅ ΡΡΠ²Π° ΡΠ°ΠΌΠΎ Π²ΠΎ Π±Π°ΡΠ΅Ρ ΠΈ Π΄ΠΎΠ°ΡΠ° Π΄ΠΎ Π΄ΠΈΡΠΊΠΎΡ ΡΠ°ΠΌΠΎ ΠΎΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΠΏΠΎΠΌΠΈΠ½Π΅ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΏΠΎΠΏΠΎΠ»Π½ΠΈ ΡΠΎ Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.

ΠΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°ΡΠ° βΠΠ·Π±ΡΠΈΡΠΈβ, ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΡΠΈΠ·ΠΈΡΠΊΠΈ Π½Π΅ ΡΠ΅ Π±ΡΠΈΡΠ°Ρ. Π’ΠΈΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ ΠΊΠ°ΠΊΠΎ ΠΈΠ·Π±ΡΠΈΡΠ°Π½ΠΈ, Π° ΡΠ°ΠΌΠΎΡΠΎ ΡΠ½ΠΈΡΡΡΠ²Π°ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΡ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π° Π³Π»Π°Π²Π½Π°ΡΠ° ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΡΠ°, ΡΡΠΎ Π΅ ΠΏΠΎΠ΄Π΅ΡΠ°Π»Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΠΎ ΡΡΠ°Π² 7.
ΠΠ°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ Π²ΠΎ ΡΠΎΡΠΌΠ°Ρ HFile ΡΠ΅ Π°ΠΊΡΠΌΡΠ»ΠΈΡΠ°Π°Ρ Π²ΠΎ HDFS ΠΈ ΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΡΡΠ°ΡΡΡΠ²Π° ΠΏΠΎΠΌΠ°Π»ΠΈΠΎΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ, ΠΊΠΎΡ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π³ΠΈ ΡΠΏΠΎΡΡΠ²Π° ΠΌΠ°Π»ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈ Π±Π΅Π· Π΄Π° Π±ΡΠΈΡΠ΅ Π½ΠΈΡΡΠΎ. Π‘ΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ΅ΡΠ²ΠΎΡΠ° Π²ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π° ΡΠ°ΠΌΠΎ ΠΏΡΠΈ ΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ (Π½Π° ΠΎΠ²Π° ΡΠ΅ ΡΠ΅ Π²ΡΠ°ΡΠΈΠΌΠ΅ ΠΌΠ°Π»ΠΊΡ ΠΏΠΎΠ΄ΠΎΡΠ½Π°).
ΠΠΎ ΠΏΡΠΈΠ»ΠΎΠ³ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° Π²ΡΠΈΡΡΠ²Π°ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ ΠΏΠΎΠ³ΠΎΡΠ΅, ΠΏΠΎΡΡΠΎΠΈ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ΅ΡΠΈΠΊΠ°ΡΠ½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΠΊΠΎΡΠ° Π΅ ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π°ΡΡΠΈΠ»Π½Π°ΡΠ° ΡΡΡΠ°Π½Π° Π½Π° ΠΎΠ²Π°Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ - BulkLoad. Π’ΠΎΠ° Π»Π΅ΠΆΠΈ Π²ΠΎ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΠ½ΠΎ ΡΠΎΡΠΌΠΈΡΠ°ΠΌΠ΅ HFiles ΠΈ Π³ΠΈ ΡΡΠ°Π²Π°ΠΌΠ΅ Π½Π° Π΄ΠΈΡΠΊΠΎΡ, ΡΡΠΎ Π½ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΡΠΎΠ²ΡΡΠ΅Π½ΠΎ Π΄Π° ΡΠΊΠ°Π»ΠΈΡΠ°ΠΌΠ΅ ΠΈ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΠΏΡΠΈΡΡΠΎΡΠ½ΠΈ Π±ΡΠ·ΠΈΠ½ΠΈ. ΠΡΡΡΠ½ΠΎΡΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ ΠΎΠ²Π΄Π΅ Π½Π΅ Π΅ HBase, ΡΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Ρ Π°ΡΠ΄Π²Π΅ΡΠΎΡ. ΠΠΎΠ΄ΠΎΠ»Ρ ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ ΠΏΠΎΠ΄ΠΈΠ³Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΡΠΎΡΡΠ°Π²Π΅Π½ ΠΎΠ΄ 16 RegionServers ΠΈ 16 NodeManager YARN (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 Π½ΠΈΡΠΊΠΈ), HBase Π²Π΅ΡΠ·ΠΈΡΠ° 1.2.0-cdh5.14.2.

ΠΠ²Π΄Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π΄Π΅ΠΊΠ° ΡΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΈ (ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ) Π²ΠΎ ΡΠ°Π±Π΅Π»Π°ΡΠ°, ΠΊΠ°ΠΊΠΎ ΠΈ ΠΈΠ·Π²ΡΡΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Spark, Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅. ΠΡΡΠΎ ΡΠ°ΠΊΠ°, Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΡΠ°ΡΠΈΠ½Π°ΡΠ° Π½Π° Π·Π²ΡΠΊΠΎΡ Π½Π° ΡΠ½ΠΈΠΌΠ°ΡΠ΅ΡΠΎ. ΠΠΎΠ»Π΅ΠΌΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Π΄Π°Π²Π°Π°Ρ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΠ/ΡΠ΅ΠΊ, ΠΌΠ°Π»ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Π²ΠΎ Π±ΡΠΎΡΠΎΡ Π½Π° Π²ΠΌΠ΅ΡΠ½Π°ΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π²ΡΠ΅ΠΌΠ΅, Π° ΡΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈ ΡΠ°Π±ΠΎΡΠΈ ΡΠ΅ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ.
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΡΠΎ Π²ΡΠΈΡΡΠ²Π°ΡΠ΅ Π²ΠΎ Π΄Π²Π΅ ΡΠ°Π±Π΅Π»ΠΈ Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ Π΄Π²ΠΎΡΠ½ΠΎ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠ° Π±ΡΠ·ΠΈΠ½Π°. ΠΠΎΠ΄ΠΎΠ»Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π΄Π΅ΠΊΠ° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΎΠ΄ 10 KB Π½Π° Π΄Π²Π΅ ΡΠ°Π±Π΅Π»ΠΈ ΠΎΠ΄Π΅Π΄Π½Π°Ρ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° ΡΠΎ Π±ΡΠ·ΠΈΠ½Π° ΠΎΠ΄ ΠΎΠΊΠΎΠ»Ρ 600 MB/ΡΠ΅ΠΊ Π²ΠΎ ΡΠ΅ΠΊΠΎΡΠ° (Π²ΠΊΡΠΏΠ½ΠΎ 1275 MB/sec), ΡΡΠΎ ΡΠ΅ ΡΠΎΠ²ΠΏΠ°ΡΠ° ΡΠΎ Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° Π΅Π΄Π½Π° ΡΠ°Π±Π΅Π»Π° 623 MB/sec (Π²ΠΈΠ΄ΠΈ Π±Ρ. 11 ΠΏΠΎΠ³ΠΎΡΠ΅)

ΠΠΎ, Π²ΡΠΎΡΠΎΡΠΎ Π²ΠΎΠ·Π΅ΡΠ΅ ΡΠΎ Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ΄ 50 KB ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° Π΄Π΅ΠΊΠ° Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ ΠΌΠ°Π»ΠΊΡ ΡΠ°ΡΡΠ΅, ΡΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° Π΄Π΅ΠΊΠ° ΡΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΡΠ²Π° Π΄ΠΎ Π³ΡΠ°Π½ΠΈΡΠ½ΠΈΡΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΡΡΠ΅Π±Π° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ Π½Π° ΡΠΌ Π΄Π΅ΠΊΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ Π½Π΅ΠΌΠ° ΠΊΡΠ΅ΠΈΡΠ°Π½ΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ°ΠΌΠΈΠΎΡ HBASE, ΡΓ¨ ΡΡΠΎ ΡΠ΅ Π±Π°ΡΠ° ΠΎΠ΄ Π½Π΅Π³ΠΎ Π΅ ΠΏΡΠ²ΠΎ Π΄Π° ΡΠ΅ Π΄Π°Π΄Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ hbase:meta, Π° ΠΎΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π°Ρ HFiles, Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ΅ΡΠΈΡΠ°Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π½Π° BlockCache ΠΈ Π΄Π° ΡΠ΅ Π·Π°ΡΡΠ²Π° MemStore Π±Π°ΡΠ΅Ρ Π½Π° Π΄ΠΈΡΠΊΠΎΡ, Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΏΡΠ°Π·Π΅Π½.
3. Π§ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ HBASE
ΠΠΊΠΎ ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ Π²Π΅ΡΠ΅ Π³ΠΈ ΠΈΠΌΠ° ΡΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ΄ hbase:meta (Π²ΠΈΠ΄ΠΈ ΡΠΎΡΠΊΠ° 2), ΡΠΎΠ³Π°Ρ Π±Π°ΡΠ°ΡΠ΅ΡΠΎ ΠΎΠ΄ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π²ΠΎ RS ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π΅ Π·Π°ΡΡΠ²Π°Π½ Π±Π°ΡΠ°Π½ΠΈΠΎΡ ΠΊΠ»ΡΡ. ΠΡΠ²ΠΎ, ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠ΅ Π²ΡΡΠΈ Π²ΠΎ MemCache. ΠΠ΅Π· ΠΎΠ³Π»Π΅Π΄ Π½Π° ΡΠΎΠ° Π΄Π°Π»ΠΈ ΠΈΠΌΠ° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠ°ΠΌΡ ΠΈΠ»ΠΈ Π½Π΅, ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠ΅ Π²ΡΡΠΈ ΠΈ Π²ΠΎ Π±Π°ΡΠ΅ΡΠΎΡ BlockCache ΠΈ, Π΄ΠΎΠΊΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ, Π²ΠΎ HFiles. ΠΠΎΠΊΠΎΠ»ΠΊΡ ΡΠ΅ ΠΏΡΠΎΠ½Π°ΡΠ΄Π΅Π½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ°, ΡΠΈΠ΅ ΡΠ΅ ΡΡΠ°Π²Π°Π°Ρ Π²ΠΎ BlockCache ΠΈ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ Π²ΡΠ°ΡΠ΅Π½ΠΈ ΠΏΠΎΠ±ΡΠ·ΠΎ Π½Π° ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ Π±Π°ΡΠ°ΡΠ΅. ΠΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ Π²ΠΎ HFile Π΅ ΡΠ΅Π»Π°ΡΠΈΠ²Π½ΠΎ Π±ΡΠ·ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΡΠΈΠ»ΡΠ΅ΡΠΎΡ Bloom, Ρ.Π΅. ΠΎΡΠΊΠ°ΠΊΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π» ΠΌΠ°Π»Π° ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Π²Π΅Π΄Π½Π°Ρ ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π° Π΄Π°Π»ΠΈ ΠΎΠ²Π°Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π³ΠΎ ΡΠΎΠ΄ΡΠΆΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΠΎΡ ΠΊΠ»ΡΡ ΠΈ Π°ΠΊΠΎ Π½Π΅, ΡΠΎΠ³Π°Ρ ΡΠ΅ ΠΏΡΠ΅ΡΡΠ»Π° Π½Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ°.

ΠΡΠΊΠ°ΠΊΠΎ Π΄ΠΎΠ±ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ ΡΡΠΈ ΠΈΠ·Π²ΠΎΡΠΈ, RS Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π½Π΅ΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΎΠ½Π°ΡΠ΄Π΅Π½ΠΈ Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΠ΄Π΅Π΄Π½Π°Ρ Π°ΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ ΠΏΠΎΠ±Π°ΡΠ°Π» Π²Π΅ΡΠ·ΠΈΡΠ°.
4. ΠΠ΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ
ΠΠ°ΡΠ΅ΡΠΈΡΠ΅ MemStore ΠΈ BlockCache Π·Π°ΡΠ°ΡΠ°Π°Ρ Π΄ΠΎ 80% ΠΎΠ΄ Π΄ΠΎΠ΄Π΅Π»Π΅Π½Π°ΡΠ° RS ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π½Π° ΠΊΡΠΏΠΎΡ (ΠΎΡΡΠ°ΡΠΎΠΊΠΎΡ Π΅ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠ°Π½ Π·Π° Π·Π°Π΄Π°ΡΠΈ Π·Π° ΡΡΠ»ΡΠ³ΠΈ Π½Π° RS). ΠΠΊΠΎ ΡΠΈΠΏΠΈΡΠ½ΠΈΠΎΡ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π΅ ΡΠ°ΠΊΠΎΠ² ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π³ΠΈ ΠΏΠΈΡΡΠ²Π°Π°Ρ ΠΈ Π²Π΅Π΄Π½Π°Ρ Π³ΠΈ ΡΠΈΡΠ°Π°Ρ ΠΈΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΡΠΎΠ³Π°Ρ ΠΈΠΌΠ° ΡΠΌΠΈΡΠ»Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ BlockCache ΠΈ Π΄Π° ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΠΈ MemStore, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΠΎΠ³Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π΅ Π²Π»Π΅Π³ΡΠ²Π° Π²ΠΎ ΠΊΠ΅ΡΠΎΡ Π·Π° ΡΠΈΡΠ°ΡΠ΅, BlockCache ΡΠ΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΠΎΡΠ΅ΡΠΊΠΎ. ΠΠ°ΡΠ΅ΡΠΎΡ BlockCache ΡΠ΅ ΡΠΎΡΡΠΎΠΈ ΠΎΠ΄ Π΄Π²Π° Π΄Π΅Π»Π°: LruBlockCache (ΡΠ΅ΠΊΠΎΠ³Π°Ρ Π²ΠΊΠ»ΡΡΠ΅Π½) ΠΈ BucketCache (ΠΎΠ±ΠΈΡΠ½ΠΎ off-heap ΠΈΠ»ΠΈ Π½Π° SSD). BucketCache ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠΎΠ³Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ Π±Π°ΡΠ°ΡΠ° Π·Π° ΡΠΈΡΠ°ΡΠ΅ ΠΈ ΡΠΈΠ΅ Π½Π΅ ΡΠ΅ Π²ΠΊΠ»ΠΎΠΏΡΠ²Π°Π°Ρ Π²ΠΎ LruBlockCache, ΡΡΠΎ Π΄ΠΎΠ²Π΅Π΄ΡΠ²Π° Π΄ΠΎ Π°ΠΊΡΠΈΠ²Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° Garbage Collector. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° ΠΎΡΠ΅ΠΊΡΠ²Π°ΡΠ΅ ΡΠ°Π΄ΠΈΠΊΠ°Π»Π½ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° ΠΊΠ΅ΡΠΎΡ Π·Π° ΡΠΈΡΠ°ΡΠ΅, Π½ΠΎ Π½ΠΈΠ΅ ΡΠ΅ ΡΠ΅ Π²ΡΠ°ΡΠΈΠΌΠ΅ Π½Π° ΠΎΠ²Π° Π²ΠΎ ΡΡΠ°Π² 8

ΠΠΌΠ° Π΅Π΄Π΅Π½ BlockCache Π·Π° ΡΠ΅Π»ΠΈΠΎΡ RS ΠΈ ΠΈΠΌΠ° ΠΏΠΎ Π΅Π΄Π΅Π½ MemStore Π·Π° ΡΠ΅ΠΊΠΎΡΠ° ΡΠ°Π±Π΅Π»Π° (ΠΏΠΎ Π΅Π΄Π΅Π½ Π·Π° ΡΠ΅ΠΊΠΎΠ΅ ΡΠ΅ΠΌΠ΅ΡΡΡΠ²ΠΎ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ).
ΠΠ°ΠΊΠΎ Π²ΠΎ ΡΠ΅ΠΎΡΠΈΡΠ°, ΠΊΠΎΠ³Π° ΡΠ΅ ΠΏΠΈΡΡΠ²Π°, ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π½Π΅ Π²Π»Π΅Π³ΡΠ²Π°Π°Ρ Π²ΠΎ ΠΊΠ΅ΡΠΎΡ ΠΈ Π½Π°Π²ΠΈΡΡΠΈΠ½Π°, ΡΠ°ΠΊΠ²ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ CACHE_DATA_ON_WRITE Π·Π° ΡΠ°Π±Π΅Π»Π°ΡΠ° ΠΈ βCache DATA on Writeβ Π·Π° RS ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π½Π° Π½Π΅ΡΠΎΡΠ½ΠΈ. ΠΠ΅ΡΡΡΠΎΠ°, Π²ΠΎ ΠΏΡΠ°ΠΊΡΠ°, Π°ΠΊΠΎ Π½Π°ΠΏΠΈΡΠ΅ΠΌΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ MemStore, ΠΏΠΎΡΠΎΠ° Π³ΠΈ ΡΡΠ»ΠΈΠΌΠ΅ Π½Π° Π΄ΠΈΡΠΊΠΎΡ (ΡΠΎ ΡΠΎΠ° ΡΠ΅ Π³ΠΎ ΠΈΡΡΠΈΡΡΠΈΠΌΠ΅), ΠΏΠΎΡΠΎΠ° ΡΠ° ΠΈΠ·Π±ΡΠΈΡΠ΅ΠΌΠ΅ Π΄ΠΎΠ±ΠΈΠ΅Π½Π°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, Π° ΠΏΠΎΡΠΎΠ° ΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π±Π°ΡΠ°ΡΠ΅ Π·Π° Π΄ΠΎΠ±ΠΈΠ²Π°ΡΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΅ Π³ΠΈ Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅. ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, Π΄ΡΡΠΈ ΠΈ Π°ΠΊΠΎ ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ BlockCache ΠΈ ΡΠ° Π½Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ°Π±Π΅Π»Π°ΡΠ° ΡΠΎ Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΠΏΠΎΡΠΎΠ° Π³ΠΎ ΡΠ΅ΡΠ΅ΡΠΈΡΠ°ΡΠ΅ MemStore Π½Π° Π΄ΠΈΡΠΊΠΎΡ, Π³ΠΈ ΠΈΠ·Π±ΡΠΈΡΠ΅ΡΠ΅ ΠΈ ΠΏΠΎΠ±Π°ΡΠ°ΡΠ΅ ΠΎΠ΄ Π΄ΡΡΠ³Π° ΡΠ΅ΡΠΈΡΠ°, ΡΠΈΠ΅ ΡΠ΅ΠΏΠ°ΠΊ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ΄ Π½Π΅ΠΊΠ°Π΄Π΅. Π’Π°ΠΊΠ°, HBase ΡΠΊΠ»Π°Π΄ΠΈΡΠ° Π½Π΅ ΡΠ°ΠΌΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΡΡΠΊΡ ΠΈ ΠΌΠΈΡΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ ΠΌΠΈΡΡΠ΅ΡΠΈΠΈ.
hbase(main):001:0> create 'ns:magic', 'cf'
Created table ns:magic
Took 1.1533 seconds
hbase(main):002:0> put 'ns:magic', 'key1', 'cf:c', 'try_to_delete_me'
Took 0.2610 seconds
hbase(main):003:0> flush 'ns:magic'
Took 0.6161 seconds
hdfs dfs -mv /data/hbase/data/ns/magic/* /tmp/trash
hbase(main):002:0> get 'ns:magic', 'key1'
cf:c timestamp=1534440690218, value=try_to_delete_me
ΠΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ βCache DATA on Readβ Π΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ Π½Π° Π½Π΅ΡΠΎΡΠ½ΠΎ. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ Π±ΠΈΠ»ΠΎ ΠΈΠ΄Π΅ΠΈ, Π΄ΠΎΠ±ΡΠ΅Π΄ΠΎΡΠ΄Π΅Π½ΠΈ Π΄Π° ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠ°ΡΠ΅ Π·Π° ΡΠΎΠ° Π²ΠΎ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅.
5. Π‘Π΅ΡΠΈΡΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ MultiGet/MultiPut
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ Π±Π°ΡΠ°ΡΠ° (ΠΠ΅ΠΌΠΈ/Π‘ΡΠ°Π²ΠΈ/ΠΠ·Π±ΡΠΈΡΠΈ) Π΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΡΠΊΠ°ΠΏΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°, ΠΏΠ° Π°ΠΊΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠ΅ Π²ΠΎ ΠΠΈΡΡΠ° ΠΈΠ»ΠΈ Π‘ΠΏΠΈΡΠΎΠΊ, ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅. ΠΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠΎΡΠ½ΠΎ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅, Π½ΠΎ ΠΏΡΠΈ ΡΠΈΡΠ°ΡΠ΅ΡΠΎ ΠΏΠΎΡΡΠΎΠΈ ΡΠ»Π΅Π΄Π½Π°Π²Π° Π·Π°ΠΌΠΊΠ°. ΠΡΠ°ΡΠΈΠΊΠΎΠ½ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ»Ρ Π³ΠΎ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅ 50 Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ΄ MemStore. Π§ΠΈΡΠ°ΡΠ΅ΡΠΎ Π±Π΅ΡΠ΅ ΠΈΠ·Π²ΡΡΠ΅Π½ΠΎ Π²ΠΎ Π΅Π΄Π½Π° Π½ΠΈΡΠΊΠ° ΠΈ Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½Π°ΡΠ° ΠΎΡΠΊΠ° Π³ΠΎ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° Π±ΡΠΎΡΠΎΡ Π½Π° ΠΊΠΎΠΏΡΠΈΡΠ° Π²ΠΎ Π±Π°ΡΠ°ΡΠ΅ΡΠΎ. ΠΠ²Π΄Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π΄Π΅ΠΊΠ° ΠΏΡΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΈΠ»ΡΠ°Π΄Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ Π²ΠΎ Π΅Π΄Π½ΠΎ Π±Π°ΡΠ°ΡΠ΅, Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΠΏΠ°ΡΠ°, Ρ.Π΅. Π±ΡΠ·ΠΈΠ½Π°ΡΠ° ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°. ΠΠ΅ΡΡΡΠΎΠ°, ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ MSLAB, ΠΏΠΎ ΠΎΠ²ΠΎΡ ΠΏΡΠ°Π³ Π·Π°ΠΏΠΎΡΠ½ΡΠ²Π° ΡΠ°Π΄ΠΈΠΊΠ°Π»Π΅Π½ ΠΏΠ°Π΄ Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΠΈ ΠΊΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠ° ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ Π·Π°ΠΏΠΈΡΠΎΡ, ΡΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΠ΄ΠΎΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ°.

Π’Π΅ΡΡΠΎΠ²ΠΈΡΠ΅ Π±Π΅Π° ΠΈΠ·Π²ΡΡΠ΅Π½ΠΈ Π½Π° Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, 8 ΡΠ°Π΄ΡΠ°, Π²Π΅ΡΠ·ΠΈΡΠ° HBase 2.0.0-cdh6.0.0-beta1.
Π Π΅ΠΆΠΈΠΌΠΎΡ MSLAB Π΅ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ Π΄Π° ΡΠ° Π½Π°ΠΌΠ°Π»ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΡΠΏΠΈΡΡΠ°ΡΠ°, ΡΡΠΎ ΡΠ΅ ΡΠ°Π²ΡΠ²Π° ΠΏΠΎΡΠ°Π΄ΠΈ ΠΌΠ΅ΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΎΠ΄ Π½ΠΎΠ²Π°ΡΠ° ΠΈ ΡΡΠ°ΡΠ°ΡΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡΠ°. ΠΠ°ΠΊΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π° Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ MSLAB, ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΡΠ΅ ΡΡΠ°Π²Π°Π°Ρ Π²ΠΎ ΡΠ΅Π»Π°ΡΠΈΠ²Π½ΠΎ ΠΌΠ°Π»ΠΈ ΡΠ΅Π»ΠΈΠΈ (ΠΏΠ°ΡΡΠΈΡΠ°) ΠΈ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π°Π°Ρ Π²ΠΎ ΠΏΠ°ΡΡΠΈΡΠ°. ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΠΊΠΎΠ³Π° Π²ΠΎΠ»ΡΠΌΠ΅Π½ΠΎΡ Π²ΠΎ Π±Π°ΡΠ°Π½ΠΈΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠ° Π½Π°Π΄ΠΌΠΈΠ½ΡΠ²Π° Π΄ΠΎΠ΄Π΅Π»Π΅Π½Π°ΡΠ° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°, ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ Π½Π°Π³Π»ΠΎ ΠΏΠ°ΡΠ°Π°Ρ. ΠΠ΄ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, ΠΈΡΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠ²ΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π½Π΅ Π΅ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΠ»ΠΈΠ²ΠΎ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΎΠ° ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΡΠ΅ΠΊΠΈΠ½ΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ GC Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΈ Π½Π° ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅. ΠΠΎΠ±ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΠΈ Π²ΠΎΠ»ΡΠΌΠ΅Π½ΠΎΡ Π½Π° ΡΠ΅Π»ΠΈΡΠ°ΡΠ° Π²ΠΎ ΡΠ»ΡΡΠ°Ρ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΏΡΠ΅ΠΊΡ ΡΡΠ°Π²Π°ΡΠ΅ Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠΎ ΡΠΈΡΠ°ΡΠ΅ΡΠΎ. ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅ Π΄Π΅ΠΊΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π½Π΅ ΡΠ΅ ΡΠ°Π²ΡΠ²Π° Π°ΠΊΠΎ, ΠΏΠΎ ΡΠ½ΠΈΠΌΠ°ΡΠ΅ΡΠΎ, ΡΠ° ΠΈΠ·Π²ΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° flush, ΠΊΠΎΡΠ° Π³ΠΎ ΡΠ΅ΡΠ΅ΡΠΈΡΠ° MemStore Π½Π° Π΄ΠΈΡΠΊΠΎΡ ΠΈΠ»ΠΈ Π°ΠΊΠΎ Π²ΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ BulkLoad. Π’Π°Π±Π΅Π»Π°ΡΠ° ΠΏΠΎΠ΄ΠΎΠ»Ρ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° Π΄Π΅ΠΊΠ° Π±Π°ΡΠ°ΡΠ°ΡΠ° ΠΎΠ΄ MemStore Π·Π° ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈ (ΠΈ ΠΈΡΡΠ° ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π°) ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ°Π°Ρ ΡΠΎ Π·Π°Π±Π°Π²ΡΠ²Π°ΡΠ΅. ΠΠ΅ΡΡΡΠΎΠ°, ΡΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ°, Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π³ΠΎ Π²ΡΠ°ΡΠ°ΠΌΠ΅ Π²ΠΎ Π½ΠΎΡΠΌΠ°Π»Π°.

ΠΠΎΠΊΡΠ°Ρ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ°, Π΄Π΅Π»Π΅ΡΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΏΠΎ ΡΠ΅Π³ΠΈΠΎΠ½ ΠΏΠΎΠΌΠ°Π³Π°, Ρ.Π΅. ΡΠ°Π·Π΄Π΅Π»ΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠ°ΡΠ°ΡΠ°. ΠΠ²Π° ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ ΠΏΠΎΠΌΠ°Π»ΠΊΡ Π±Π°ΡΠ°ΡΠ° ΠΊΠΎΠΈ Π΄ΠΎΠ°ΡΠ°Π°Ρ Π΄ΠΎ ΡΠ΅ΠΊΠΎΡ ΡΠ΅Π³ΠΈΠΎΠ½ ΠΈ Π°ΠΊΠΎ ΡΠ΅ Π²ΠΊΠ»ΠΎΠΏΠ°Ρ Π²ΠΎ ΡΠ΅Π»ΠΈΡΠ°, ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΎΡ ΠΎΡΡΠ°Π½ΡΠ²Π° Π΄ΠΎΠ±Π°Ρ.
6. Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡΠ° Π·Π° ΠΏΠΎΠ΄Π΅Π»Π±Π° Π½Π° ΡΠ°Π±Π΅Π»ΠΈΡΠ΅ Π²ΠΎ ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ (ΡΠ°Π·Π΄Π΅Π»ΡΠ²Π°ΡΠ΅)
ΠΠΈΠ΄Π΅ΡΡΠΈ HBase Π΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΡΠΎ Π²ΡΠ΅Π΄Π½ΠΎΡΡ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ ΠΈ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°ΡΠ΅ΡΠΎ ΡΠ΅ Π²ΡΡΠΈ ΡΠΎ ΠΊΠ»ΡΡ, ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΅Π»Π°Ρ ΡΠ°ΠΌΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎ Π²ΠΎ ΡΠΈΡΠ΅ ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄Π΅Π»Π±Π°ΡΠ° Π½Π° ΡΠ°ΠΊΠ²Π° ΡΠ°Π±Π΅Π»Π° Π½Π° ΡΡΠΈ Π΄Π΅Π»Π° ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ ΠΏΠΎΠ΄Π΅Π»Π±Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π²ΠΎ ΡΡΠΈ ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ:

Π‘Π΅ ΡΠ»ΡΡΡΠ²Π° ΠΎΠ²Π° Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π°Π³Π»ΠΎ Π·Π°Π±Π°Π²ΡΠ²Π°ΡΠ΅ Π°ΠΊΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π²ΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ΄ΠΎΡΠ½Π° ΠΈΠ·Π³Π»Π΅Π΄Π°Π°Ρ ΠΊΠ°ΠΊΠΎ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ»Π³ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΠ΄ Π½ΠΈΠ² ΠΏΠΎΡΠ½ΡΠ²Π°Π°Ρ ΡΠΎ ΠΈΡΡΠ° ΡΠΈΡΡΠ°, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ:
1000001
1000002
...
1100003
ΠΠΈΠ΄Π΅ΡΡΠΈ ΠΊΠΎΠΏΡΠΈΡΠ°ΡΠ° ΡΠ΅ Π·Π°ΡΡΠ²Π°Π½ΠΈ ΠΊΠ°ΠΊΠΎ Π½ΠΈΠ·Π° Π±Π°ΡΡΠΈ, ΡΠΈΡΠ΅ ΡΠΈΠ΅ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΈΡΡΠΎ ΠΈ ΡΠ΅ ΠΏΡΠΈΠΏΠ°ΡΠ°Π°Ρ Π½Π° ΠΈΡΡΠΈΠΎΡ ΡΠ΅Π³ΠΈΠΎΠ½ #1 ΡΡΠΎ Π³ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ° ΠΎΠ²ΠΎΡ ΠΎΠΏΡΠ΅Π³ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ. ΠΠΎΡΡΠΎΡΠ°Ρ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π·Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°ΡΠ΅:
HexStringSplit β ΠΠΎ ΠΏΡΠ΅ΡΠ²ΠΎΡΠ° ΠΊΠ»ΡΡΠΎΡ Π²ΠΎ Ρ Π΅ΠΊΡΠ°Π΄Π΅ΡΠΈΠΌΠ°Π»Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π° Π½ΠΈΠ·Π° Π²ΠΎ ΠΎΠΏΡΠ΅Π³ΠΎΡ β00000000β => βFFFFFFFFβ ΠΈ Π»Π΅Π²ΠΎ Π³ΠΎ ΠΏΠΎΠΏΠΎΠ»Π½ΡΠ²Π° ΡΠΎ Π½ΡΠ»ΠΈ.
UniformSplit β ΠΠΎ ΠΏΡΠ΅ΡΠ²ΠΎΡΠ° ΠΊΠ»ΡΡΠΎΡ Π²ΠΎ Π½ΠΈΠ·Π° ΠΎΠ΄ Π±Π°ΡΡΠΈ ΡΠΎ Ρ Π΅ΠΊΡΠ°Π΄Π΅ΡΠΈΠΌΠ°Π»Π½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ Π²ΠΎ ΠΎΠΏΡΠ΅Π³ΠΎΡ β00β => βFFβ ΠΈ ΠΏΠΎΠΏΠΎΠ»Π½ΡΠ²Π°ΡΠ΅ Π½Π° Π΄Π΅ΡΠ½Π°ΡΠ° ΡΡΡΠ°Π½Π° ΡΠΎ Π½ΡΠ»ΠΈ.
ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°Π²Π΅Π΄Π΅ΡΠ΅ ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΠΎΠΏΡΠ΅Π³ ΠΈΠ»ΠΈ Π·Π±ΠΈΡ Π½Π° ΠΊΠΎΠΏΡΠΈΡΠ° Π·Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ²Π°ΡΠ΅ ΠΈ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎΡΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ²Π°ΡΠ΅. Π‘Π΅ΠΏΠ°ΠΊ, Π΅Π΄Π΅Π½ ΠΎΠ΄ Π½Π°ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈΡΠ΅ ΠΈ Π½Π°ΡΠ΅ΡΠΈΠΊΠ°ΡΠ½ΠΈΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏΠΈ Π΅ UniformSplit ΠΈ ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° Ρ Π°Ρ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡΠ°, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΠ·Π½Π°ΡΠ°ΡΠ½ΠΈΠΎΡ ΠΏΠ°Ρ Π±Π°ΡΡΠΈ ΠΎΠ΄ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΠΎΡ ΠΏΡΠ΅ΠΊΡ ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° CRC32 (rowkey) ΠΈ ΡΠ°ΠΌΠΈΠΎΡ ΠΊΠ»ΡΡ:
Ρ Π°Ρ + ΡΠ΅Π΄ΠΈΡΠ°
Π’ΠΎΠ³Π°Ρ ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ ΡΠ°ΠΌΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄Π΅Π½ΠΈ Π½ΠΈΠ· ΡΠ΅Π³ΠΈΠΎΠ½ΠΈΡΠ΅. ΠΡΠΈ ΡΠΈΡΠ°ΡΠ΅, ΠΏΡΠ²ΠΈΡΠ΅ Π΄Π²Π° Π±Π°ΡΡΠ° Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠ΅ ΠΎΡΡΡΠ»Π°Π°Ρ ΠΈ ΠΎΡΡΠ°Π½ΡΠ²Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΠΎΡ ΠΊΠ»ΡΡ. RS ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ Π²ΠΎ ΡΠ΅Π³ΠΈΠΎΠ½ΠΎΡ ΠΈ, Π΄ΠΎΠΊΠΎΠ»ΠΊΡ ΡΠ΅ Π½Π°Π΄ΠΌΠΈΠ½Π°Ρ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅, Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ Π³ΠΎ Π΄Π΅Π»ΠΈ Π½Π° Π΄Π΅Π»ΠΎΠ²ΠΈ.
7. Π’ΠΎΠ»Π΅ΡΠ°Π½ΡΠΈΡΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ
ΠΠΈΠ΄Π΅ΡΡΠΈ ΡΠ°ΠΌΠΎ Π΅Π΄Π΅Π½ ΡΠ΅Π³ΠΈΠΎΠ½ Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΡΠ΅ΠΊΠΎΡ ΡΠ΅Ρ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΏΠ°Π΄ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° RS Π΅ Π΄Π° ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π°Ρ ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ HDFS. ΠΠΎΠ³Π° Π Π‘ ΠΏΠ°ΡΠ°, ΠΌΠ°ΡΡΡΠΎΡΠΎΡ Π³ΠΎ ΠΎΡΠΊΡΠΈΠ²Π° ΠΎΠ²Π° ΠΏΡΠ΅ΠΊΡ ΠΎΡΡΡΡΡΠ²ΠΎ Π½Π° ΠΎΡΡΡΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΡΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΎΠ»ΠΎΡ ZooKeeper. ΠΠΎΡΠΎΠ° Π³ΠΎ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π° ΠΎΠΏΡΠ»ΡΠΆΠ΅Π½ΠΈΠΎΡ ΡΠ΅Π³ΠΈΠΎΠ½ Π½Π° Π΄ΡΡΠ³ RS ΠΈ Π±ΠΈΠ΄Π΅ΡΡΠΈ HFiles ΡΠ΅ Π·Π°ΡΡΠ²Π°Π½ΠΈ Π²ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ, Π½ΠΎΠ²ΠΈΠΎΡ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈΠΊ Π³ΠΈ ΡΠΈΡΠ° ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡΠ²Π° Π΄Π° Π³ΠΈ ΠΎΠΏΡΠ»ΡΠΆΡΠ²Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅. ΠΠ΅ΡΡΡΠΎΠ°, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅Π±ΠΈ ΡΠ΅ Π²ΠΎ MemStore ΠΈ Π½Π΅ΠΌΠ°Π»Π΅ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π²Π»Π΅Π·Π°Ρ Π²ΠΎ HFiles, WAL, ΠΊΠΎΡ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π·Π°ΡΡΠ²Π°Π½ Π²ΠΎ HDFS, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Π²ΡΠ°ΡΠ°ΡΠ΅ Π½Π° ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅. ΠΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π°Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, RS ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΈ Π½Π° Π±Π°ΡΠ°ΡΠ°ΡΠ°, Π½ΠΎ ΠΏΠΎΡΠ΅Π³ΠΎΡ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΡΠΎ Π³ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ°Π°Ρ Π·Π°Π²ΡΡΡΠ²Π°Π°Ρ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π·Π»ΠΈ, Ρ.Π΅. Π»ΠΎΠΊΠ°Π»ΠΈΡΠ΅ΡΠΎΡ ΡΠ΅ Π½Π°ΠΌΠ°Π»ΡΠ²Π°.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π΅ Π³ΠΎΠ»Π΅ΠΌΠΎ Π½Π°Π±ΠΈΠ²Π°ΡΠ΅ - ΠΎΠ²Π°Π° ΠΏΠΎΡΡΠ°ΠΏΠΊΠ° Π³ΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΡΠ²Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ Π²ΠΎ ΠΎΠ½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈ ΠΊΠΎΠΈ ΡΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° Π½ΠΈΠ² (ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΡΠ΅ Π½Π°ΠΎΡΠ°Π°Ρ Π½ΠΈΠ²Π½ΠΈΡΠ΅ ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ), ΠΊΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΡΠΎ Π²ΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° ΠΎΠ²Π°Π° ΠΏΠΎΡΡΠ°ΠΏΠΊΠ° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡΠ΅ Π½Π°Π³Π»ΠΎ ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°. ΠΠ΅ΡΡΡΠΎΠ°, Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°, ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ Π΄ΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π°Π±ΡΠ·Π°Π½. ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, major_compaction Π²ΡΡΠΈ ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΈΡΠ΅ HFiles Π²ΠΎ Π΅Π΄Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π²ΠΎ ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΠ΅Π³ΠΈΠΎΠ½ΠΎΡ, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π³ΠΈ ΡΠΈΡΡΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π²ΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΠΎΠ΄ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ Π½Π° ΡΠ°Π±Π΅Π»Π°ΡΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΎΠ΄ΡΠ΅Π΄ΠΈΡΠ΅ Π±ΡΠΎΡΠΎΡ Π½Π° Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΡ ΡΡΠΎ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ Π·Π°Π΄ΡΠΆΠΈ ΠΈΠ»ΠΈ ΠΆΠΈΠ²ΠΎΡΠ½ΠΈΠΎΡ Π²Π΅ΠΊ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΡ ΡΠΈΠ·ΠΈΡΠΊΠΈ ΡΠ΅ Π±ΡΠΈΡΠ΅.
ΠΠ²Π°Π° ΠΏΠΎΡΡΠ°ΠΏΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π½ΠΎ Π²Π»ΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ· ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° HBase. Π‘Π»ΠΈΠΊΠ°ΡΠ° ΠΏΠΎΠ΄ΠΎΠ»Ρ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° ΠΊΠ°ΠΊΠΎ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΡΠ΅ Π΄Π΅Π³ΡΠ°Π΄ΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΠΎ ΡΠ½ΠΈΠΌΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠ²Π΄Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ 40 Π½ΠΈΡΠΊΠΈ ΠΏΠΈΡΡΠ²Π°Π°Ρ Π½Π° Π΅Π΄Π½Π° ΡΠ°Π±Π΅Π»Π° ΠΈ 40 Π½ΠΈΡΠΊΠΈ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ ΡΠΈΡΠ°Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΈΡΠΊΠΈΡΠ΅ Π·Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π°Ρ ΡΓ¨ ΠΏΠΎΠ²Π΅ΡΠ΅ HFiles, ΠΊΠΎΠΈ ΡΠ΅ ΡΠΈΡΠ°Π°Ρ ΠΎΠ΄ Π΄ΡΡΠ³ΠΈ Π½ΠΈΡΠΊΠΈ. ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΎΡΡΡΡΠ°Π½Π°Ρ ΠΎΠ΄ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΠΈ Π½Π° ΠΊΡΠ°ΡΠΎΡ GC ΠΏΠΎΡΠ½ΡΠ²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ, ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ ΡΠ° ΠΏΠ°ΡΠ°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ΅Π»Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ°. ΠΠ°Π½ΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΎΡΠΎ Π½Π°Π±ΠΈΠ²Π°ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠ°ΡΡΠΈΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈΡΠ΅ ΠΎΡΡΠ°ΡΠΎΡΠΈ ΠΈ Π²ΡΠ°ΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡΠ°.

Π’Π΅ΡΡΠΎΡ Π±Π΅ΡΠ΅ ΠΈΠ·Π²ΡΡΠ΅Π½ Π½Π° 3 DataNodes ΠΈ 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 Π½ΠΈΡΠΊΠΈ). HBase Π²Π΅ΡΠ·ΠΈΡΠ° 1.2.0-cdh5.14.2
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅ Π΄Π΅ΠΊΠ° Π³ΠΎΠ»Π΅ΠΌΠΎΡΠΎ Π½Π°Π±ΠΈΠ²Π°ΡΠ΅ Π±Π΅ΡΠ΅ Π»Π°Π½ΡΠΈΡΠ°Π½ΠΎ Π½Π° βΠΆΠΈΠ²Π°β ΡΠ°Π±Π΅Π»Π°, Π²ΠΎ ΠΊΠΎΡΠ° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π±Π΅Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π½ΠΈ ΠΈ ΡΠΈΡΠ°Π½ΠΈ. ΠΠ° ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ·ΡΠ°Π²Π° Π΄Π΅ΠΊΠ° ΡΠΎΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π΅ΡΠΎΡΠ΅Π½ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ ΠΏΡΠΈ ΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈ, Π·Π°ΠΏΠΎΡΠ½Π° ΠΏΡΠΎΡΠ΅Ρ ΠΊΠΎΡ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ Π³ΠΈ Π·Π°ΠΏΠΈΡΠ° Π½Π° ΡΠ°Π±Π΅Π»Π°. ΠΠΎ ΡΡΠΎ Π²Π΅Π΄Π½Π°Ρ ΠΏΡΠΎΡΠΈΡΠ°Π² ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ² Π΄Π°Π»ΠΈ Π΄ΠΎΠ±ΠΈΠ΅Π½Π°ΡΠ° Π²ΡΠ΅Π΄Π½ΠΎΡΡ ΡΠ΅ ΡΠΎΠ²ΠΏΠ°ΡΠ° ΡΠΎ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎΡΠΎ. ΠΠΎΠ΄Π΅ΠΊΠ° ΡΡΠ°Π΅ΡΠ΅ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΡΠ΅Ρ, Π±Π΅ΡΠ΅ ΠΈΠ·Π²ΡΡΠ΅Π½ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΎ Π½Π°Π±ΠΈΠ²Π°ΡΠ΅ ΠΎΠΊΠΎΠ»Ρ 200 ΠΏΠ°ΡΠΈ ΠΈ Π½Π΅ Π±Π΅ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π½ Π½ΠΈΡΡ Π΅Π΄Π΅Π½ Π΄Π΅ΡΠ΅ΠΊΡ. ΠΠΎΠΆΠ΅Π±ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π° ΡΠ΅ΡΠΊΠΎ ΠΈ ΡΠ°ΠΌΠΎ ΠΏΡΠΈ Π³ΠΎΠ»Π΅ΠΌΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅, ΠΏΠ° Π·Π°ΡΠΎΠ° Π΅ ΠΏΠΎΠ±Π΅Π·Π±Π΅Π΄Π½ΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΏΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΈ ΡΠΈΡΠ°ΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΎ ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΠΈ ΡΠΈΡΡΠ΅ΡΠ΅ Π·Π° Π΄Π° ΡΠ΅ ΡΠΏΡΠ΅ΡΠ°Ρ Π²Π°ΠΊΠ²ΠΈΡΠ΅ ΠΏΠΎΠ²Π»Π΅ΠΊΡΠ²Π°ΡΠ° Π½Π° GC.
ΠΡΡΠΎ ΡΠ°ΠΊΠ°, Π³ΠΎΠ»Π΅ΠΌΠΎΡΠΎ Π½Π°Π±ΠΈΠ²Π°ΡΠ΅ Π½Π΅ Π²Π»ΠΈΡΠ°Π΅ Π½Π° ΡΠΎΡΡΠΎΡΠ±Π°ΡΠ° Π½Π° MemStore; Π·Π° Π΄Π° Π³ΠΎ ΡΡΠ°Π²ΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΠΊΠΎΡ ΠΈ Π΄Π° Π³ΠΎ Π½Π°Π±ΠΈΠ΅ΡΠ΅, ΡΡΠ΅Π±Π° Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ flush (connection.getAdmin().flush(TableName.valueOf(tblName))).
8. ΠΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ
ΠΠ°ΠΊΠΎ ΡΡΠΎ Π²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²ΠΌΠ΅, HBase Π³ΠΎ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° ΡΠ²ΠΎΡΠΎΡ Π½Π°ΡΠ³ΠΎΠ»Π΅ΠΌ ΡΡΠΏΠ΅Ρ ΡΠ°ΠΌΡ ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π½Π΅ ΡΡΠ΅Π±Π° Π½ΠΈΡΡΠΎ Π΄Π° ΠΏΡΠ°Π²ΠΈ, ΠΏΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° BulkLoad. Π‘Π΅ΠΏΠ°ΠΊ, ΠΎΠ²Π° ΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π° Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Π»ΡΡΠ΅. Π‘Π΅ΠΏΠ°ΠΊ, ΠΎΠ²Π°Π° Π°Π»Π°ΡΠΊΠ° Π΅ ΠΏΠΎΡΠΎΠΎΠ΄Π²Π΅ΡΠ½Π° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΎ Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ, Π΄ΠΎΠ΄Π΅ΠΊΠ° Π°ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π±Π°ΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΈ Π±Π°ΡΠ°ΡΠ° Π·Π° ΡΠΈΡΠ°ΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΠ΅, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ Get ΠΈ Put ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ³ΠΎΡΠ΅. ΠΠ° Π΄Π° ΡΠ΅ ΡΡΠ²ΡΠ΄Π°Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π±Π΅ΡΠ΅ ΠΈΠ·Π²ΡΡΠ΅Π½ΠΎ ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠ°Π±Π΅Π»Π°ΡΠ°:
- 10 Π½ΠΈΡΠΊΠΈ Π±Π΅Π° Π»Π°Π½ΡΠΈΡΠ°Π½ΠΈ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ 3 ΠΏΠ°ΡΠΈ ΠΏΠΎ ΡΠ΅Π΄ (Π°ΡΠ΄Π΅ Π΄Π° Π³ΠΎ Π½Π°ΡΠ΅ΡΠ΅ΠΌΠ΅ ΠΎΠ²Π° Π±Π»ΠΎΠΊ ΠΎΠ΄ Π½ΠΈΡΠΊΠΈ).
- ΠΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΠΈΡΠ΅ Π½ΠΈΡΠΊΠΈ Π²ΠΎ Π±Π»ΠΎΠΊΠΎΡ Π±Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠ½ΠΎ ΠΈ Π±Π΅ΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΈΠΎΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΎΡ.
- Π‘ΠΈΡΠ΅ Π½ΠΈΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠ΅Π° ΡΠΎ ΠΈΡΡΠ° ΡΠ°Π±Π΅Π»Π°.
- ΠΡΠ΅Π΄ ΡΠ΅ΠΊΠΎΡ ΠΏΠΎΡΠ΅ΡΠΎΠΊ Π½Π° Π±Π»ΠΎΠΊΠΎΡ Π½Π° ΠΊΠΎΠ½Π΅ΡΠΎΡ, ΡΠ΅ Π²ΡΡΠ΅ΡΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΎ Π½Π°Π±ΠΈΠ²Π°ΡΠ΅.
- Π‘Π΅ΠΊΠΎΡ Π±Π»ΠΎΠΊ ΠΈΠ·Π²ΡΡΠΈ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° ΠΎΠ΄ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
- Π‘ΡΠ°Π²ΠΈ
β ΠΠ΅ΠΌΠΈ
β ΠΠ΅ΠΌΠΈ + Π‘ΡΠ°Π²ΠΈ
- Π‘Π΅ΠΊΠΎΡ Π±Π»ΠΎΠΊ ΠΈΠ·Π²ΡΡΠΈ 50 ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°ΡΠ° Π½Π° ΡΠ²ΠΎΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ°.
- ΠΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΎΡ Π½Π° Π·Π°ΠΏΠΈΡΠΎΡ Π΅ 100 Π±Π°ΡΡΠΈ, 1000 Π±Π°ΡΡΠΈ ΠΈΠ»ΠΈ 10000 Π±Π°ΡΡΠΈ (ΡΠ»ΡΡΠ°ΡΠ½ΠΎ).
- ΠΠ»ΠΎΠΊΠΎΠ²ΠΈΡΠ΅ Π±Π΅Π° Π»Π°Π½ΡΠΈΡΠ°Π½ΠΈ ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π±ΡΠΎΡ Π±Π°ΡΠ°Π½ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ (ΠΈΠ»ΠΈ Π΅Π΄Π΅Π½ ΠΊΠ»ΡΡ ΠΈΠ»ΠΈ 10).
- ΠΠ»ΠΎΠΊΠΎΠ²ΠΈΡΠ΅ Π±Π΅Π° ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΏΠΎΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠ°Π±Π΅Π»Π°ΡΠ°. ΠΡΠΎΠΌΠ΅Π½Π΅ΡΠΈ ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅:
β BlockCache = Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½
β BlockSize = 65 KB ΠΈΠ»ΠΈ 16 KB
- ΠΠ°ΡΡΠΈΡΠΈΠΈ = 1, 5 ΠΈΠ»ΠΈ 30
β MSLAB = ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ ΠΈΠ»ΠΈ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ
ΠΠ½Π°ΡΠΈ, Π±Π»ΠΎΠΊΠΎΡ ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:
Π°. Π Π΅ΠΆΠΈΠΌΠΎΡ MSLAB Π±Π΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½/ΠΈΡΠΊΠ»ΡΡΠ΅Π½.
Π±. Π‘ΠΎΠ·Π΄Π°Π΄Π΅Π½Π° Π΅ ΡΠ°Π±Π΅Π»Π° Π·Π° ΠΊΠΎΡΠ° Π±Π΅Π° ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ: BlockCache = ΡΠΎΡΠ½ΠΎ/Π½Π΅ΠΌΠ°, BlockSize = 65/16 Kb, ΠΠΎΠ΄Π΅Π»Π±Π° = 1/5/30.
Π². ΠΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°ΡΠ° Π±Π΅ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½Π° Π½Π° GZ.
Π³. ΠΠ΅Π° Π»Π°Π½ΡΠΈΡΠ°Π½ΠΈ 10 Π½ΠΈΡΠΊΠΈ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ ΠΏΡΠ°Π²Π΅ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ 1/10 put/get/get+put Π²ΠΎ ΠΎΠ²Π°Π° ΡΠ°Π±Π΅Π»Π° ΡΠΎ Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ΄ 100/1000/10000 Π±Π°ΡΡΠΈ, ΠΈΠ·Π²Π΅Π΄ΡΠ²Π°ΡΡΠΈ 50 ΠΏΡΠ°ΡΠ°ΡΠ° ΠΏΠΎ ΡΠ΅Π΄ (ΡΠ»ΡΡΠ°ΡΠ½ΠΈ ΠΊΠΎΠΏΡΠΈΡΠ°).
Π΄. Π’ΠΎΡΠΊΠ°ΡΠ° Π³ ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π° ΡΡΠΈ ΠΏΠ°ΡΠΈ.
Ρ. ΠΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΠΈΡΠ΅ Π½ΠΈΡΠΊΠΈ Π±Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠ½ΠΎ.
Π‘ΠΈΡΠ΅ ΠΌΠΎΠΆΠ½ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π±Π΅Π° ΡΠ΅ΡΡΠΈΡΠ°Π½ΠΈ. ΠΡΠ΅Π΄Π²ΠΈΠ΄Π»ΠΈΠ²ΠΎ Π΅ Π΄Π΅ΠΊΠ° Π±ΡΠ·ΠΈΠ½Π°ΡΠ° ΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° ΡΠ΅ΠΊΠΎΡΠ΄ΠΎΡ ΠΈΠ»ΠΈ Π΄Π΅ΠΊΠ° ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠ΅ΡΠΈΡΠ°ΡΠ΅ΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° Π·Π°Π±Π°Π²ΡΠ²Π°ΡΠ΅. Π‘Π΅ΠΏΠ°ΠΊ, ΡΠ΅Π»ΡΠ° Π±Π΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ ΡΡΠ΅ΠΏΠ΅Π½ΠΎΡ ΠΈ Π·Π½Π°ΡΠ°ΡΠ½ΠΎΡΡΠ° Π½Π° Π²Π»ΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΠΊΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ, ΡΠ°ΠΊΠ° ΡΡΠΎ ΡΠΎΠ±ΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π±Π΅Π° Π²Π½Π΅ΡΠ΅Π½ΠΈ Π²ΠΎ Π²Π»Π΅Π·ΠΎΡ Π½Π° Π»ΠΈΠ½Π΅Π°ΡΠ½Π° ΡΠ΅Π³ΡΠ΅ΡΠΈΠ²Π½Π° ΡΡΠ½ΠΊΡΠΈΡΠ°, ΡΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠ΅Π½ΠΈ Π·Π½Π°ΡΠ°ΡΠ½ΠΎΡΡΠ° ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° t-ΡΡΠ°ΡΠΈΡΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΎΠ΄ΠΎΠ»Ρ ΡΠ΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ Π±Π»ΠΎΠΊΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Put. Π¦Π΅Π»ΠΎΡΠ΅Π½ ΡΠ΅Ρ Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ 2*2*3*2*3 = 144 ΠΎΠΏΡΠΈΠΈ + 72 tk. Π½Π΅ΠΊΠΎΠΈ Π±Π΅Π° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ Π΄Π²Π°ΠΏΠ°ΡΠΈ. Π‘ΠΏΠΎΡΠ΅Π΄ ΡΠΎΠ°, ΠΈΠΌΠ° Π²ΠΊΡΠΏΠ½ΠΎ 216 ΡΡΠΊΠΈ:

Π’Π΅ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π±Π΅ΡΠ΅ ΡΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΠΌΠΈΠ½ΠΈ-ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠΎΡΡΠ°Π²Π΅Π½ ΠΎΠ΄ 3 DataNodes ΠΈ 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 Π½ΠΈΡΠΊΠΈ). HBase Π²Π΅ΡΠ·ΠΈΡΠ° 1.2.0-cdh5.14.2.
ΠΠ°ΡΠ²ΠΈΡΠΎΠΊΠ°ΡΠ° Π±ΡΠ·ΠΈΠ½Π° Π½Π° Π²ΠΌΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅ ΠΎΠ΄ 3.7 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π΅ Π΄ΠΎΠ±ΠΈΠ΅Π½Π° ΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ MSLAB, Π½Π° ΠΌΠ°ΡΠ° ΡΠΎ Π΅Π΄Π½Π° ΠΏΠ°ΡΡΠΈΡΠΈΡΠ°, ΡΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ BlockCache, BlockSize = 16, Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ΄ 100 Π±Π°ΡΡΠΈ, 10 ΠΏΠ°ΡΡΠΈΡΠ° ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ.
ΠΠ°ΡΠ½ΠΈΡΠΊΠ°ΡΠ° Π±ΡΠ·ΠΈΠ½Π° Π½Π° Π²ΠΌΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅ ΠΎΠ΄ 82.8 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π΅ Π΄ΠΎΠ±ΠΈΠ΅Π½Π° ΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ MSLAB, Π½Π° ΡΠ°Π±Π΅Π»Π° ΡΠΎ Π΅Π΄Π½Π° ΠΏΠ°ΡΡΠΈΡΠΈΡΠ°, ΡΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ BlockCache, BlockSize = 16, Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ΄ 10000 Π±Π°ΡΡΠΈ, ΠΏΠΎ 1.
Π‘Π΅Π³Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΎΡ. ΠΠΎ Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄ΠΎΠ±ΡΠΈΠΎΡ ΠΊΠ²Π°Π»ΠΈΡΠ΅Ρ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° R2, Π½ΠΎ Π°ΠΏΡΠΎΠ»ΡΡΠ½ΠΎ Π΅ ΡΠ°ΡΠ½ΠΎ Π΄Π΅ΠΊΠ° Π΅ΠΊΡΡΡΠ°ΠΏΠΎΠ»Π°ΡΠΈΡΠ°ΡΠ° Π΅ ΠΊΠΎΠ½ΡΡΠ°ΠΈΠ½Π΄ΠΈΡΠΈΡΠ°Π½Π° ΠΎΠ²Π΄Π΅. ΠΠΈΡΡΠΈΠ½ΡΠΊΠΎΡΠΎ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΊΠΎΠ³Π° ΡΠ΅ ΠΌΠ΅Π½ΡΠ²Π°Π°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π΅ Π»ΠΈΠ½Π΅Π°ΡΠ½ΠΎ; ΠΎΠ²ΠΎΡ ΠΌΠΎΠ΄Π΅Π» Π½Π΅ Π΅ ΠΏΠΎΡΡΠ΅Π±Π΅Π½ Π·Π° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΡΠ²Π°ΡΠ°, ΡΡΠΊΡ Π·Π° ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈΠ»ΠΎ Π²ΠΎ Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ²Π΄Π΅ Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΠ΄ ΡΡΡΠ΄Π΅Π½ΡΡΠΊΠΈΠΎΡ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ Π΄Π΅ΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ BlockSize ΠΈ BlockCache Π½Π΅ ΡΠ΅ Π²Π°ΠΆΠ½ΠΈ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°ΡΠ° Put (ΠΊΠΎΡΠ° Π΅ Π³Π΅Π½Π΅ΡΠ°Π»Π½ΠΎ ΡΠΎΡΠ΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π»ΠΈΠ²Π°):

ΠΠΎ, ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΈ Π΄ΠΎΠ²Π΅Π΄ΡΠ²Π° Π΄ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ Π΅ Π½Π΅ΡΡΠΎ Π½Π΅ΠΎΡΠ΅ΠΊΡΠ²Π°Π½ΠΎ (Π²Π΅ΡΠ΅ Π³ΠΎ Π²ΠΈΠ΄ΠΎΠ²ΠΌΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π½ΠΎΡΠΎ Π²Π»ΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ΄ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΈ ΡΠΎ BulkLoad), ΠΈΠ°ΠΊΠΎ ΡΠ°Π·Π±ΠΈΡΠ»ΠΈΠ²ΠΎ. ΠΡΠ²ΠΎ, Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΡΠ΅Π±Π° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Π±Π°ΡΠ°ΡΠ° Π΄ΠΎ 30 ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ Π½Π°ΠΌΠ΅ΡΡΠΎ Π΅Π΄Π΅Π½, Π° ΠΎΠ±Π΅ΠΌΠΎΡ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π΅ Π΅ ΡΠ°ΠΊΠΎΠ² ΡΡΠΎ ΡΠΎΠ° ΡΠ΅ Π΄ΠΎΠ½Π΅ΡΠ΅ Π΄ΠΎΠ±ΠΈΠ²ΠΊΠ°. ΠΡΠΎΡΠΎ, Π²ΠΊΡΠΏΠ½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠ΅ ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π° ΠΎΠ΄ Π½Π°ΡΠ±Π°Π²Π½ΠΈΠΎΡ RS, ΠΈ Π±ΠΈΠ΄Π΅ΡΡΠΈ Π±ΡΠΎΡΠΎΡ Π½Π° DataNodes Π΅ ΠΏΠΎΠΌΠ°Π» ΠΎΠ΄ Π±ΡΠΎΡΠΎΡ Π½Π° RS, Π½Π΅ΠΊΠΎΠΈ ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ ΠΈΠΌΠ°Π°Ρ Π½ΡΠ»Π° Π»ΠΎΠΊΠ°Π»ΠΈΡΠ΅Ρ. ΠΠ°, Π΄Π° Π³ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΏΡΠ²ΠΈΡΠ΅ ΠΏΠ΅Ρ:

Π‘Π΅Π³Π° Π΄Π° Π³ΠΈ ΠΏΡΠΎΡΠ΅Π½ΠΈΠΌΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈΡΠ΅ Get:

ΠΡΠΎΡΠΎΡ Π½Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΈ ΠΈΠ·Π³ΡΠ±ΠΈ Π·Π½Π°ΡΠ΅ΡΠ΅, ΡΡΠΎ Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ²Π° ΡΠΎ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΡΠ΅ Π΄ΠΎΠ±ΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈ, Π° ΠΊΠ΅ΡΠΎΡ Π·Π° ΡΠΈΡΠ°ΡΠ΅ Π΅ Π½Π°ΡΠ·Π½Π°ΡΠ°ΡΠ½ΠΈΠΎΡ (ΡΡΠ°ΡΠΈΡΡΠΈΡΠΊΠΈ) ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ. Π‘Π΅ΠΊΠ°ΠΊΠΎ, Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° ΠΏΠΎΡΠ°ΠΊΠΈ Π²ΠΎ Π±Π°ΡΠ°ΡΠ΅ΡΠΎ Π΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΊΠΎΡΠΈΡΠ½ΠΎ Π·Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅. ΠΠ°ΡΠ΄ΠΎΠ±ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ:

ΠΠ°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π° Π³ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΎΡ Π½Π° Π±Π»ΠΎΠΊΠΎΡ ΡΡΠΎ ΠΏΡΠ²ΠΎ Π³ΠΎ ΠΈΠ·Π²Π΅Π΄Π΅, Π° ΠΏΠΎΡΠΎΠ° ΡΡΠ°Π²ΠΈ:

Π‘ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΡΠ΅ Π·Π½Π°ΡΠ°ΡΠ½ΠΈ ΠΎΠ²Π΄Π΅. Π ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ Π½Π° Π»ΠΈΠ΄Π΅ΡΠΈΡΠ΅:

9. Π’Π΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅
ΠΠ°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ΅ Π»Π°Π½ΡΠΈΡΠ°ΠΌΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΏΡΠΈΡΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅, Π½ΠΎ ΡΠ΅ΠΊΠΎΠ³Π°Ρ Π΅ ΠΏΠΎΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΊΠΎΠ³Π° ΠΈΠΌΠ°ΡΠ΅ ΡΠΎ ΡΡΠΎ Π΄Π° ΡΠ΅ ΡΠΏΠΎΡΠ΅Π΄ΠΈΡΠ΅. ΠΠ° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π° DataStax, ΠΊΠ»ΡΡΠ½ΠΈΠΎΡ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ Π½Π° Cassandra, ΠΏΠΎΡΡΠΎΠΈ NT Π½Π° Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ° NoSQL, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° HBase 0.98.6-1. ΠΡΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ Π±Π΅ΡΠ΅ ΠΈΠ·Π²ΡΡΠ΅Π½ΠΎ ΠΎΠ΄ 40 Π½ΠΈΡΠΊΠΈ, Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ 100 Π±Π°ΡΡΠΈ, SSD Π΄ΠΈΡΠΊΠΎΠ²ΠΈ. Π Π΅Π·ΡΠ»ΡΠ°ΡΠΎΡ ΠΎΠ΄ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Read-Modify-Write Π³ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ.

ΠΠΎΠ»ΠΊΡ ΡΡΠΎ ΡΠ°Π·Π±ΡΠ°Π², ΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π±Π΅ΡΠ΅ ΠΈΠ·Π²ΡΡΠ΅Π½ΠΎ Π²ΠΎ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΎΠ΄ 100 Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π·Π° 16 HBase ΡΠ°Π·Π»ΠΈ, ΡΠ΅ΡΡΠΎΡ DataStax ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΈΠ·Π²Π΅Π΄Π±Π° ΠΎΠ΄ 10 ΠΈΠ»ΡΠ°Π΄ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π°.
Π‘ΡΠ΅ΡΠ° ΡΡΠΎ Π½Π°ΡΠΈΠΎΡ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΈΠΌΠ° ΠΈ 16 ΡΠ°Π·Π»ΠΈ, Π½ΠΎ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³Ρ βΡΡΠ΅ΡΠ°β ΡΡΠΎ ΡΠ΅ΠΊΠΎΠ΅ ΠΈΠΌΠ° 64 ΡΠ°Π΄ΡΠ° (Π½ΠΈΡΠΊΠΈ), Π΄ΠΎΠ΄Π΅ΠΊΠ° Π²ΠΎ ΡΠ΅ΡΡΠΎΡ DataStax ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ 4. ΠΠ΄ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, ΡΠΈΠ΅ ΠΈΠΌΠ°Π°Ρ SSD Π΄ΠΈΡΠΊΠΎΠ²ΠΈ, Π΄ΠΎΠ΄Π΅ΠΊΠ° Π½ΠΈΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ HDD ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅, Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° HBase ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ ΠΏΡΠΈ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ Π½Π΅ ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ (Π²ΠΈΠ·ΡΠ΅Π»Π½ΠΎ Π·Π° 5-10 ΠΏΡΠΎΡΠ΅Π½ΡΠΈ). Π‘Π΅ΠΏΠ°ΠΊ, Π΄Π° ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ΠΌΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΠΎΠ²Π°Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°. Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠ°Π±Π΅Π»Π°ΡΠ°, ΡΠΈΡΠ°ΡΠ΅ΡΠΎ ΡΠ΅ Π²ΡΡΠΈ Π²ΠΎ ΠΎΠΏΡΠ΅Π³ΠΎΡ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ ΠΎΠ΄ 0 Π΄ΠΎ 50 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΏΠΎ ΡΠ»ΡΡΠ°Π΅Π½ ΠΈΠ·Π±ΠΎΡ (Ρ.Π΅., Π²ΠΎ ΡΡΡΡΠΈΠ½Π° Π½ΠΎΠ²ΠΎ ΡΠ΅ΠΊΠΎΡ ΠΏΠ°Ρ). Π’Π°Π±Π΅Π»Π°ΡΠ° ΡΠΎΠ΄ΡΠΆΠΈ 50 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π·Π°ΠΏΠΈΡΠΈ, ΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π½Π° 64 ΠΏΠ°ΡΡΠΈΡΠΈΠΈ. ΠΠΎΠΏΡΠΈΡΠ°ΡΠ° ΡΠ΅ Ρ Π°ΡΠΈΡΠ°Π°Ρ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° crc32. ΠΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ Π·Π° ΡΠ°Π±Π΅Π»Π°ΡΠ° ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈ, MSLAB Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½. Π‘ΡΠ°ΡΡΡΠ²Π°ΡΡΠΈ 40 Π½ΠΈΡΠΊΠΈ, ΡΠ΅ΠΊΠΎΡΠ° Π½ΠΈΡΠΊΠ° ΡΠΈΡΠ° ΡΠ΅Ρ ΠΎΠ΄ 100 ΡΠ»ΡΡΠ°ΡΠ½ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ ΠΈ Π²Π΅Π΄Π½Π°Ρ Π³ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ 100 Π±Π°ΡΡΠΈ Π½Π°Π·Π°Π΄ Π½Π° ΠΎΠ²ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΈ.

Π‘ΡΠ΅Π½Π΄: 16 DataNode ΠΈ 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 Π½ΠΈΡΠΊΠΈ). HBase Π²Π΅ΡΠ·ΠΈΡΠ° 1.2.0-cdh5.14.2.
ΠΡΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π΅ ΠΏΠΎΠ±Π»ΠΈΡΠΊΡ Π΄ΠΎ 40 ΠΈΠ»ΡΠ°Π΄ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π°, ΡΡΠΎ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ ΠΎΡΠΊΠΎΠ»ΠΊΡ Π²ΠΎ ΡΠ΅ΡΡΠΎΡ DataStax. Π‘Π΅ΠΏΠ°ΠΊ, Π·Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ ΡΠ΅Π»ΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ°Π»ΠΊΡ Π΄Π° Π³ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡΠ΅. ΠΠ°Π»ΠΊΡ Π΅ Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ ΡΠ΅Π»Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π΄Π° ΡΠ΅ Π²ΡΡΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΠ²ΠΎ Π½Π° Π΅Π΄Π½Π° ΠΌΠ°ΡΠ°, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ°ΠΌΠΎ Π½Π° ΡΠ½ΠΈΠΊΠ°ΡΠ½ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ. ΠΠ° ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΏΠΎΡΡΠΎΠΈ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ βΠΆΠ΅ΠΆΠΎΠΊβ ΡΠ΅Ρ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ ΡΡΠΎ Π³ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π³Π»Π°Π²Π½ΠΈΠΎΡ ΡΠΎΠ²Π°Ρ. ΠΠ°ΡΠΎΠ°, Π΄Π° ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ΠΌΠ΅ Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ΠΌΠ΅ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈ Π·Π°ΠΏΠΈΡΠΈ (10 KB), ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΠΎ ΡΠ΅ΡΠΈΠΈ ΠΎΠ΄ 100, Π²ΠΎ 4 ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π±Π΅Π»ΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΏΡΠ΅Π³ΠΎΡ Π½Π° Π±Π°ΡΠ°Π½ΠΈΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΈ Π½Π° 50 ΠΈΠ»ΡΠ°Π΄ΠΈ. ΠΡΠ°ΡΠΈΠΊΠΎΠ½ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ»Ρ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° 40 Π½ΠΈΡΠΊΠΈ, ΡΠ΅ΠΊΠΎΡΠ° Π½ΠΈΡΠΊΠ° ΡΠΈΡΠ° Π·Π±ΠΈΡ ΠΎΠ΄ 100 ΠΊΠΎΠΏΡΠΈΡΠ° ΠΈ Π²Π΅Π΄Π½Π°Ρ Π·Π°ΠΏΠΈΡΡΠ²Π° ΠΏΠΎ ΡΠ»ΡΡΠ°Π΅Π½ ΠΈΠ·Π±ΠΎΡ 10 KB Π½Π° ΠΎΠ²ΠΈΠ΅ ΠΊΠΎΠΏΡΠΈΡΠ° Π½Π°Π·Π°Π΄.

Π‘ΡΠ΅Π½Π΄: 16 DataNode ΠΈ 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 Π½ΠΈΡΠΊΠΈ). HBase Π²Π΅ΡΠ·ΠΈΡΠ° 1.2.0-cdh5.14.2.
ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ, Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΠ°ΡΠΈ ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΎ Π½Π°Π±ΠΈΠ²Π°ΡΠ΅, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΎ ΠΏΠΎΠ³ΠΎΡΠ΅, Π±Π΅Π· ΠΎΠ²Π°Π° ΠΏΠΎΡΡΠ°ΠΏΠΊΠ°, ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ ΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π°Ρ, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ ΡΠ΅ ΡΠ°Π²ΡΠ²Π° ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ. ΠΠΎΠ²Π»Π΅ΠΊΡΠ²Π°ΡΠ°ΡΠ° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ ΠΎΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ. ΠΠΎΠ½Π΅ΠΊΠΎΠ³Π°Ρ Π½ΠΈΡΠΊΠΈΡΠ΅ Π·Π°Π²ΡΡΡΠ²Π°Π° ΡΠΎ ΡΠ°Π±ΠΎΡΠ° ΠΈ ΠΈΠΌΠ°ΡΠ΅ ΠΏΠ°ΡΠ·Π° Π΄ΠΎΠ΄Π΅ΠΊΠ° ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π°, ΠΏΠΎΠ½Π΅ΠΊΠΎΠ³Π°Ρ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ ΠΎΠ΄ ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ.
Π§ΠΈΡΠ°ΡΠ΅ΡΠΎ ΠΈ Π²Π΅Π΄Π½Π°Ρ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ Π΅ Π΅Π΄Π½ΠΎ ΠΎΠ΄ Π½Π°ΡΡΠ΅ΡΠΊΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡΠ° Π·Π° HBase. ΠΠΊΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ°ΠΌΠΎ ΠΌΠ°Π»ΠΈ Π±Π°ΡΠ°ΡΠ° Π·Π° ΡΡΠ°Π²Π°ΡΠ΅, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ 100 Π±Π°ΡΡΠΈ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΡΠΈ Π³ΠΈ Π²ΠΎ ΠΏΠ°ΠΊΡΠ²Π°ΡΠ° ΠΎΠ΄ 10-50 ΠΈΠ»ΡΠ°Π΄ΠΈ ΠΏΠ°ΡΡΠΈΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ ΡΡΠΎΡΠΈΡΠΈ ΠΈΠ»ΡΠ°Π΄ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π°, Π° ΡΠΈΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π΅ ΡΠ»ΠΈΡΠ½Π° ΡΠΎ Π±Π°ΡΠ°ΡΠ°ΡΠ° ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅. ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅ Π΄Π΅ΠΊΠ° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π΄ΠΈΠΊΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΠΎΠ΄ ΠΎΠ½ΠΈΠ΅ Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈ ΠΎΠ΄ DataStax, Π½Π°ΡΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΡΠ°Π΄ΠΈ Π±Π°ΡΠ°ΡΠ°ΡΠ° Π²ΠΎ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΎΠ΄ 50 ΠΈΠ»ΡΠ°Π΄ΠΈ.

Π‘ΡΠ΅Π½Π΄: 16 DataNode ΠΈ 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 Π½ΠΈΡΠΊΠΈ). HBase Π²Π΅ΡΠ·ΠΈΡΠ° 1.2.0-cdh5.14.2.
10. ΠΠ°ΠΊΠ»ΡΡΠΎΡΠΈ
ΠΠ²ΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΡΠ»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½, Π½ΠΎ Π²Π»ΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΡΓ¨ ΡΡΡΠ΅ ΠΎΡΡΠ°Π½ΡΠ²Π° Π½Π΅ΠΏΠΎΠ·Π½Π°ΡΠΎ. ΠΠ΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½ΠΈΠ² Π±Π΅Π° ΡΠ΅ΡΡΠΈΡΠ°Π½ΠΈ, Π½ΠΎ Π½Π΅ Π±Π΅Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π²ΠΎ Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈΠΎΡ ΡΠ΅ΡΡ ΡΠ΅Ρ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π»ΠΈΠΌΠΈΠ½Π°ΡΠ½ΠΈΡΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ°Π° Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π½Π°ΡΠ΅ΡΠ΅ Π½Π° ΡΠ°ΠΊΠΎΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ ΠΊΠ°ΠΊΠΎ DATA_BLOCK_ENCODING, ΠΊΠΎΡ Π³ΠΈ ΠΊΠΎΠ΄ΠΈΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΎΠ΄ ΡΠΎΡΠ΅Π΄Π½ΠΈΡΠ΅ ΡΠ΅Π»ΠΈΠΈ, ΡΡΠΎ Π΅ ΡΠ°Π·Π±ΠΈΡΠ»ΠΈΠ²ΠΎ Π·Π° ΡΠ»ΡΡΠ°ΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΊΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΈ, Π΄ΠΎΠ±ΠΈΠ²ΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½Π°. ΠΠ΅Π½Π΅ΡΠ°Π»Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° HBase Π΄Π°Π²Π° Π²ΠΏΠ΅ΡΠ°ΡΠΎΠΊ Π½Π° ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΡΠ΅ΡΠΈΠΎΠ·Π½Π° ΠΈ Π΄ΠΎΠ±ΡΠΎ ΠΎΡΠΌΠΈΡΠ»Π΅Π½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΠΊΠΎΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π΄ΠΎΡΡΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π° ΠΏΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΡΠΎΠ±Π΅Π½ΠΎ Π°ΠΊΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π²ΡΠ΅ΠΌΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Π°Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π° ΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΠΈΡΡΠ²Π°ΡΠ΅.
ΠΠΎΠΊΠΎΠ»ΠΊΡ ΠΈΠΌΠ° Π½Π΅ΡΡΠΎ ΡΠΏΠΎΡΠ΅Π΄ Π²Π°ΡΠ΅ΡΠΎ ΠΌΠΈΡΠ»Π΅ΡΠ΅ ΡΡΠΎ Π½Π΅ Π΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ ΠΎΠ±Π΅Π»ΠΎΠ΄Π΅Π½Π΅ΡΠΎ, ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ ΡΡΠΌ Π΄Π° Π²ΠΈ ΠΊΠ°ΠΆΠ°ΠΌ ΠΏΠΎΠ΄Π΅ΡΠ°Π»Π½ΠΎ. ΠΠ΅ ΠΏΠΎΠΊΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΡΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ Π²Π°ΡΠ΅ΡΠΎ ΠΈΡΠΊΡΡΡΠ²ΠΎ ΠΈΠ»ΠΈ Π΄Π° ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠ°ΡΠ΅ Π΄ΠΎΠΊΠΎΠ»ΠΊΡ Π½Π΅ ΡΠ΅ ΡΠΎΠ³Π»Π°ΡΡΠ²Π°ΡΠ΅ ΡΠΎ Π½Π΅ΡΡΠΎ.
ΠΠ·Π²ΠΎΡ: www.habr.com
