ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ! ΠΠ΅Π½Ρ Π·ΠΎΠ²ΡΡ ΠΠ°Π½ΠΈΠ» ΠΠΈΠΏΠΎΠ²ΠΎΠΉ, Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² Π‘Π±Π΅ΡΡΠ΅Ρ Π΅ Π½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HBase Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ Π΄Π°Π½Π½ΡΡ . Π Ρ ΠΎΠ΄Π΅ Π΅Π³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π½Π°ΠΊΠΎΠΏΠΈΠ»ΡΡ ΠΎΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΠΏΠΈΡΠ°ΡΡ (Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ). ΠΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ HBase 1.2.0-cdh5.14.2 ΠΈ 2.0.0-cdh6.0.0-beta1.
- ΠΠ±ΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
- ΠΠ°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ Π² HBASE
- Π§ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· HBASE
- ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
- ΠΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ MultiGet/MultiPut
- Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠΈ ΡΠ°Π±Π»ΠΈΡ Π½Π° ΡΠ΅Π³ΠΈΠΎΠ½Ρ (ΡΠΏΠΈΠ»ΠΈΡΠΈΠ½Π³)
- ΠΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ, ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
- ΠΠ°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΡΠ²ΠΎΠ΄Ρ
1. ΠΠ±ΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
Π Π΅Π·Π΅ΡΠ²Π½ΡΠΉ Master ΡΠ»ΡΡΠ°Π΅Ρ heartbeat Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ·Π»Π΅ ZooKeeper ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΡΠ΅Π·Π½ΠΎΠ²Π΅Π½ΠΈΡ Π±Π΅ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ°ΡΡΠ΅ΡΠ° Π½Π° ΡΠ΅Π±Ρ.
2. ΠΠ°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ Π² HBASE
Π‘Π½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ β Π·Π°ΠΏΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π½Π΅ΠΊΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ put(rowkey). ΠΠ»ΠΈΠ΅Π½Ρ ΡΠ½Π°ΡΠ°Π»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΡΡΠ½ΠΈΡΡ, Π³Π΄Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΡΠ΅Π³ΠΈΠΎΠ½ ΡΠ΅ΡΠ²Π΅Ρ (Root Region Server β RRS), ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ hbase:meta. ΠΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΡ ZooKeeper. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ½ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ RRS ΠΈ ΡΠΈΡΠ°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ hbase:meta, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠ°ΠΊΠΎΠΉ RegionServer (RS) ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ rowkey Π² ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ΅ΠΉ Π΅Π³ΠΎ ΡΠ°Π±Π»ΠΈΡΠ΅. Π ΡΠ΅Π»ΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠ°-ΡΠ°Π±Π»ΠΈΡΠ° ΠΊΡΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΠ΄ΡΡ Π±ΡΡΡΡΠ΅Π΅, Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ RS.
ΠΠ°Π»Π΅Π΅ RS, ΠΏΠΎΠ»ΡΡΠΈΠ² Π·Π°ΠΏΡΠΎΡ, ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΏΠΈΡΠ΅Ρ Π΅Π³ΠΎ Π² WriteAheadLog (WAL), ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ°Π΄Π΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² MemStore. ΠΡΠΎ Π±ΡΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΠΎΠ½Π°. Π’Π°Π±Π»ΠΈΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ° Π½Π° ΡΠ΅Π³ΠΈΠΎΠ½Ρ (ΠΏΠ°ΡΡΠΈΡΠΈΠΈ), ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΠΉΡΡ Π½Π°Π±ΠΎΡ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ, ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠ² ΡΠ΅Π³ΠΈΠΎΠ½Ρ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, Π΄Π°Π»Π΅Π΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ .
ΠΠΎΡΠ»Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ Π² MemStore ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΎΡΠ²Π΅Ρ, ΡΡΠΎ Π·Π°ΠΏΠΈΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΎΠ½Π° Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π±ΡΡΠ΅ΡΠ΅ ΠΈ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ Π½Π° Π΄ΠΈΡΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΉΠ΄Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΈ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΅Π³ΠΎ Π½ΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Β«DeleteΒ» ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
Π½Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ. ΠΠ½ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅, Π° ΡΠ°ΠΌΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ major compact, ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΏ.7.
Π€Π°ΠΉΠ»Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ HFile ΠΊΠΎΠΏΡΡΡΡ Π² HDFS ΠΈ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ minor compact, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ»Π΅ΠΈΠ²Π°Π΅Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠ΅, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ΄Π°Π»ΡΡ. Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΡΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ (ΠΊ ΡΡΠΎΠΌΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅).
ΠΡΠΎΠΌΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΅ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠΆΠ°Π»ΡΠΉ ΡΠ°ΠΌΠ°Ρ ΡΠΈΠ»ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π° ΡΡΠΎΠΉ ΠΠ β 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 ΠΠ ΡΡΠ°Π·Ρ Π² Π΄Π²Π΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ΄Π΅Ρ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 600 ΠΠ±/ΡΠ΅ΠΊ Π² ΠΊΠ°ΠΆΠ΄ΡΡ (ΡΡΠΌΠΌΠ°ΡΠ½ΠΎ 1275 ΠΠ±/ΡΠ΅ΠΊ), ΡΡΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΎΠ΄Π½Ρ ΡΠ°Π±Π»ΠΈΡΡ 623 ΠΠ/ΡΠ΅ΠΊ (ΡΠΌ. β11 Π²ΡΡΠ΅)
Π Π²ΠΎΡ Π²ΡΠΎΡΠΎΠΉ Π·Π°ΠΏΡΡΠΊ Ρ Π·Π°ΠΏΠΈΡΡΠΌΠΈ Π² 50 ΠΠ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΡΡΠ΅Ρ ΡΠΆΠ΅ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΊ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ. ΠΡΠΈ ΡΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌ HBASE ΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ, Π²ΡΠ΅ ΡΡΠΎ ΠΎΡ Π½Π΅Π³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΡΠ΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· hbase:meta, Π° ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΠΊΠ»Π°Π΄ΠΊΠΈ HFiles, ΡΠ±ΡΠΎΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ BlockCache ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π±ΡΡΠ΅Ρ MemStore Π½Π° Π΄ΠΈΡΠΊ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΠΏΡΡΡΠΎΠΉ.
3. Π§ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· HBASE
ΠΡΠ»ΠΈ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· hbase:meta ΡΠΆΠ΅ Ρ Π΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (ΡΠΌ. ΠΏ.2), ΡΠΎ Π·Π°ΠΏΡΠΎΡ ΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠ°Π·Ρ Π½Π° ΡΠΎΡ RS, Π³Π΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΊΠ»ΡΡ. Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠΈΡΠΊ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π² MemCache. ΠΠ½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π΅ΡΡΡ ΡΠ°ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅Ρ, ΠΏΠΎΠΈΡΠΊ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π² Π±ΡΡΠ΅ΡΠ΅ BlockCache ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² HFiles. ΠΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ Π² ΡΠ°ΠΉΠ»Π΅, ΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² BlockCache ΠΈ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Ρ Π±ΡΡΡΡΠ΅Π΅. ΠΠΎΠΈΡΠΊ Π² HFile ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ»ΡΡΡΠ° ΠΠ»ΡΠΌΠ°, Ρ.Π΅. ΡΡΠΈΡΠ°Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ ΠΎΠ½ ΡΡΠ°Π·Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π½ΡΠΆΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΈ Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ.
ΠΠΎΠ»ΡΡΠΈΠ² Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠΈΡ
ΡΡΠ΅Ρ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² RS ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΎΡΠ²Π΅Ρ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ
Π²Π΅ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π°ΠΏΡΠΎΡΠΈΠ» Π²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΡΡΡ.
4. ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΡΡΠ΅ΡΡ MemStore ΠΈ BlockCache Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΄ΠΎ 80% Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ on-heap ΠΏΠ°ΠΌΡΡΠΈ RS (ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ RS). ΠΡΠ»ΠΈ ΡΠΈΠΏΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠΈΡΡΡ ΠΈ ΡΡΠ°Π·Ρ ΡΠΈΡΠ°ΡΡ ΡΡΠΈ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠΌΠ΅Π½ΡΡΠΈΡΡ BlockCache ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ MemStore, Ρ.ΠΊ. ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ BlockCache Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΠΆΠ΅. ΠΡΡΠ΅Ρ BlockCache ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ: LruBlockCache (Π²ΡΠ΅Π³Π΄Π° on-heap) ΠΈ BucketCache (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ off-heap ΠΈΠ»ΠΈ Π½Π° SSD). BucketCache ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² LruBlockCache, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Garbage Collector. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΡΡΠ° Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΆΠ΄Π°ΡΡ Π½Π΅ ΡΡΠΎΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊ ΡΡΠΎΠΌΡ ΠΌΡ Π΅ΡΠ΅ Π²Π΅ΡΠ½Π΅ΠΌΡΡ Π² ΠΏ. 8
BlockCache ΠΎΠ΄ΠΈΠ½ Π½Π° Π²Π΅ΡΡ RS, Π° MemStore Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ²ΠΎΠΉ (ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Column Family).
ΠΠ°ΠΊ
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Β» ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ false. ΠΡΠ»ΠΈ Π΅ΡΡΡ ΠΈΠ΄Π΅ΠΈ, Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ ΡΡΠΎ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ .
5. ΠΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ MultiGet/MultiPut
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² (Get/Put/Delete) Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄ΠΎΡΠΎΠ³Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡ Π² List ΠΈΠ»ΠΈ List, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ, Π° Π²ΠΎΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠΉ ΠΊΠ°ΠΌΠ΅Π½Ρ. ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠ΅Π½ΠΈΡ 50 000 Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· MemStore. Π§ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΠΈ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ Π² Π·Π°ΠΏΡΠΎΡΠ΅. Π’ΡΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ Π΄ΠΎ ΡΡΡΡΡΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ°Π΄Π°Π΅Ρ, Ρ.Π΅. ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ΅ MSLAB ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ³Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ Π² Π·Π°ΠΏΠΈΡΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ.
Π’Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΠΊΠ΅, 8 ΡΠ΄Π΅Ρ, Π²Π΅ΡΡΠΈΡ HBase 2.0.0-cdh6.0.0-beta1.
Π Π΅ΠΆΠΈΠΌ MSLAB ΠΏΡΠΈΠ·Π²Π°Π½ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ heap, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΠ·-Π·Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ MSLAB Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ (chunk) ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎΡΡΠΈΡΠΌΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΌ Π² Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π·ΠΊΠΎ ΠΏΠ°Π΄Π°Π΅Ρ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ°ΠΌ ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ GC Π² ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ. Π₯ΠΎΡΠΎΡΠΈΠΌ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² ΡΡΠ΅ΠΉΠΊΠΈ, Π² ΡΠ»ΡΡΠ°Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ΡΠ΅Π· put ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ. Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ flush ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ MemStore Π½Π° Π΄ΠΈΡΠΊ ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ BulkLoad. Π ΡΠ°Π±Π»ΠΈΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ Π·Π°ΠΏΡΠΎΡΡ ΠΈΠ· MemStore Π΄Π°Π½Π½ΡΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° (ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π°) ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ chunksize Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊ Π½ΠΎΡΠΌΠ΅.
ΠΡΠΎΠΌΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ chunksize ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π΄ΡΠΎΠ±Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ ΡΠ΅Π³ΠΈΠΎΠ½Π°ΠΌ, Ρ.Π΅. ΡΠΏΠ»ΠΈΡΠΈΠ½Π³ ΡΠ°Π±Π»ΠΈΡ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π³ΠΈΠΎΠ½ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΡΠ΅ΠΉΠΊΡ, ΠΎΡΠΊΠ»ΠΈΠΊ ΠΎΡΡΠ°Π΅ΡΡΡ Ρ
ΠΎΡΠΎΡΠΈΠΌ.
6. Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ Π½Π° ΡΠ΅Π³ΠΈΠΎΠ½Ρ (ΡΠΏΠΈΠ»ΠΈΡΠΈΠ½Π³)
Π’Π°ΠΊ ΠΊΠ°ΠΊ HBase ΡΠ²Π»ΡΠ΅ΡΡΡ key-value Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ ΠΈ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΊΠ»ΡΡΡ, ΡΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅Π³ΠΈΠΎΠ½Π°ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΡΡΠΈ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΡΠΎΠΌΡ ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° ΡΡΠΈ ΡΠ΅Π³ΠΈΠΎΠ½Π°:
ΠΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ΅Π·ΠΊΠΎΠΌΡ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΠ΅ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ long Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅ΠΌ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΠΈΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
1000001
1000002
β¦
1100003
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ»ΡΡΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° Π±Π°ΠΉΡ, Π²ΡΠ΅ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ΅Π³ΠΈΠΎΠ½Ρ #1 Ρ ΡΠ°Π½ΡΡΠ΅ΠΌΡ ΡΡΠΎΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ:
HexStringSplit β ΠΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ»ΡΡ Π² ΡΡΡΠΎΠΊΡ Ρ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Β«00000000Β» => Β«FFFFFFFFΒ» ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡ ΡΠ»Π΅Π²Π° Π½ΡΠ»ΡΠΌΠΈ.
UniformSplit β ΠΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ»ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡ Ρ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Β«00Β» => Β«FFΒ» ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡ ΡΠΏΡΠ°Π²Π° Π½ΡΠ»ΡΠΌΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΡΠΏΠ»ΠΈΡΠΈΠ½Π³. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ UniformSplit ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ Ρ ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ°ΡΡΠ΅ΠΉ ΠΏΠ°ΡΡ Π±Π°ΠΉΡ ΠΎΡ ΠΏΡΠΎΠ³ΠΎΠ½Π° ΠΊΠ»ΡΡΠ° ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ CRC32(rowkey) ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ rowkey:
hash + rowkey
Π’ΠΎΠ³Π΄Π° Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎ ΡΠ΅Π³ΠΈΠΎΠ½Π°ΠΌ. ΠΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° Π±Π°ΠΉΡΠ° ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡΡΡ ΠΈ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠ»ΡΡ. Π’Π°ΠΊΠΆΠ΅ RS ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΡΠ΅Π³ΠΈΠΎΠ½Π΅ ΠΈ ΠΏΡΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠΈ Π»ΠΈΠΌΠΈΡΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π½Π° ΡΠ°ΡΡΠΈ.
7. ΠΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π·Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½Π°Π±ΠΎΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π³ΠΈΠΎΠ½, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ ΠΏΠ°Π΄Π΅Π½ΠΈΡΠΌΠΈ RS ΠΈΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ Π² HDFS. ΠΡΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ RS ΠΌΠ°ΡΡΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΎ ΡΠ΅ΡΠ΅Π· ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ heartbeat Π½Π° ΡΠ·Π»Π΅ ZooKeeper. Π’ΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π°Π·Π½Π°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ΅Π³ΠΈΠΎΠ½ Π΄ΡΡΠ³ΠΎΠΌΡ RS ΠΈ ΡΠ°ΠΊ ΠΊΠ°ΠΊ HFiles Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠΎ Π½ΠΎΠ²ΡΠΉ Ρ ΠΎΠ·ΡΠΈΠ½ Π²ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² MemStore ΠΈ Π½Π΅ ΡΡΠΏΠ΅Π»Π° ΠΏΠΎΠΏΠ°ΡΡΡ Π² HFiles, Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ WAL, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ Π² HDFS. ΠΠΎΡΠ»Π΅ Π½Π°ΠΊΠ°ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, RS ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π·Π°ΠΏΡΠΎΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ Π½ΠΎΠ΄Π°Ρ , Ρ.Π΅. ΡΠ½ΠΈΠΆΠ°Π΅ΡΡΡ locality.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ major compaction β ΡΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ°ΠΉΠ»Ρ Π½Π° ΡΠ΅ Π½ΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π° Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ (ΡΡΠ΄Π° Π³Π΄Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΈΡ ΡΠ΅Π³ΠΈΠΎΠ½Ρ), Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ΅Π·ΠΊΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° ΡΠ΅ΡΡ ΠΈ Π΄ΠΈΡΠΊΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΠ΅ΡΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, major_compaction Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ HFiles Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠ΅Π³ΠΈΠΎΠ½Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΈΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ ΠΆΠΈΠ·Π½ΠΈ, ΠΏΠΎΡΠ»Π΅ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ.
ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΡ HBase. ΠΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ Π΄Π΅Π³ΡΠ°Π΄ΠΈΡΠΎΠ²Π°Π»Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ . Π’ΡΡ Π²ΠΈΠ΄Π½ΠΎ ΠΊΠ°ΠΊ Π² ΠΎΠ΄Π½Ρ ΡΠ°Π±Π»ΠΈΡΡ 40 ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΠΈΡΠ°Π»ΠΈ ΠΈ 40 ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΈΡΠ°Π»ΠΈ Π΄Π°Π½Π½ΡΠ΅. ΠΠΈΡΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠΎΡΠΌΠΈΡΡΡΡ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ HFiles, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π°Π½Π½ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ GC, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΡΠ°Π»ΠΈΠ·ΡΠ΅Ρ Π²ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΠ°ΠΏΡΡΠΊ major compaction ΠΏΡΠΈΠ²Π΅Π» ΠΊ ΡΠΈΡΡΠΊΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π²ΡΠΈΡ ΡΡ Π·Π°Π²Π°Π»ΠΎΠ² ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Π’Π΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ Π½Π° 3-Ρ
DataNode ΠΈ 4-Ρ
RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 ΠΏΠΎΡΠΎΠΊΠ°). ΠΠ΅ΡΡΠΈΡ HBase 1.2.0-cdh5.14.2
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π·Π°ΠΏΡΡΠΊ major compaction Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ Π½Π° Β«ΠΆΠΈΠ²ΠΎΠΉΒ» ΡΠ°Π±Π»ΠΈΡΠ΅, Π² ΠΊΠΎΡΠΎΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΈΡΠ°Π»ΠΈ ΠΈ ΡΠΈΡΠ°Π»ΠΈ Π΄Π°Π½Π½ΡΠ΅. Π ΡΠ΅ΡΠΈ Π²ΡΡΡΠ΅ΡΠ°Π»ΠΎΡΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΌΡ ΠΎΡΠ²Π΅ΡΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π» Π½ΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΠΈΡΠ°Π» ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΡΠΈΡΠ°Π» ΠΈ ΡΠ²Π΅ΡΡΠ» ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Π»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΠΌ ΡΡΠΎ Π±ΡΠ»ΠΎ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΠΊΠΎΠ»ΠΎ 200 ΡΠ°Π· Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ major compaction ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ±ΠΎΡ Π½Π΅ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π΄ΠΊΠΎ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΡΠΎΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΠΏΠ»Π°Π½ΠΎΠ²ΠΎ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΡΠΈΡΡΠΊΡ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Ρ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΡΠ°Π΄ΠΎΠΊ GC.
Π’Π°ΠΊΠΆΠ΅ major compaction Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ MemStore, Π΄Π»Ρ ΡΠ±ΡΠΎΡΠ° Π΅Π³ΠΎ Π½Π° Π΄ΠΈΡΠΊ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ flush (connection.getAdmin().flush(TableName.valueOf(tblName))).
8. ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
ΠΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ ΡΡΠΏΠ΅Ρ HBase ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΌ, Π³Π΄Π΅ Π΅ΠΌΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ, ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ BulkLoad. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌ ΠΈ Π»ΡΠ΄Π΅ΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π³ΠΎΠ΄ΠΈΡΡΡ ΡΠΊΠΎΡΠ΅Π΅ Π΄Π»Ρ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠΉ ΡΠΊΠ»Π°Π΄ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Get ΠΈ Put. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π±ΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Ρ Π·Π°ΠΏΡΡΠΊΠΈ ΠΏΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ°Π±Π»ΠΈΡ ΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ:
- ΠΠ°ΠΏΡΡΠΊΠ°Π»ΠΎΡΡ 10 ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ 3 ΡΠ°Π·Π° ΠΏΠΎΠ΄ΡΡΠ΄ (Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΡΡΠΎ Π±Π»ΠΎΠΊΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠ²).
- ΠΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π² Π±Π»ΠΎΠΊΠ΅ ΡΡΡΠ΅Π΄Π½ΡΠ»ΠΎΡΡ ΠΈ ΡΠ²Π»ΡΠ»ΠΎΡΡ ΠΈΡΠΎΠ³ΠΎΠ²ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Π±Π»ΠΎΠΊΠ°.
- ΠΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ.
- ΠΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π·Π°ΠΏΡΡΠΊΠΎΠΌ Π±Π»ΠΎΠΊΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ major compaction.
- ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ» ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ:
β Put
β Get
β Get+Put
- ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ» 50 000 ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
- Π Π°Π·ΠΌΠ΅Ρ Π·Π°ΠΏΠΈΡΠΈ Π² Π±Π»ΠΎΠΊΠ΅ 100 Π±Π°ΠΉΡ, 1000 Π±Π°ΠΉΡ ΠΈΠ»ΠΈ 10000 Π±Π°ΠΉΡ (random).
- ΠΠ»ΠΎΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ (ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡΡ ΠΈΠ»ΠΈ 10).
- ΠΠ»ΠΎΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈΡΡ ΠΏΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ·ΠΌΠ΅Π½ΡΠ»ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
β BlockCache = Π²ΠΊΠ»ΡΡΠ°Π»ΡΡ ΠΈΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠ°Π»ΡΡ
β BlockSize = 65 ΠΠ± ΠΈΠ»ΠΈ 16 ΠΠ±
β ΠΠ°ΡΡΠΈΡΠΈΠΉ = 1, 5 ΠΈΠ»ΠΈ 30
β MSLAB = Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΈΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π±Π»ΠΎΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
a. ΠΠΊΠ»ΡΡΠ°Π»ΡΡ/Π²ΡΠΊΠ»ΡΡΠ°Π»ΡΡ ΡΠ΅ΠΆΠΈΠΌ MSLAB.
b. Π‘ΠΎΠ·Π΄Π°Π²Π°Π»Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: BlockCache = true/none, BlockSize = 65/16 Kb, ΠΠ°ΡΡΠΈΡΠΈΠΉ = 1/5/30.
c. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΎΡΡ ΡΠΆΠ°ΡΠΈΠ΅ GZ.
d. ΠΠ°ΠΏΡΡΠΊΠ°Π»ΠΎΡΡ 10 ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°ΡΡΠΈΡ
1/10 ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ put/get/get+put Π² ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΡΠΌΠΈ ΠΏΠΎ 100/1000/10000 Π±Π°ΠΉΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡ 50 000 Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎΠ΄ΡΡΠ΄ (ΠΊΠ»ΡΡΠΈ ΡΠ°Π½Π΄ΠΎΠΌΠ½ΡΠ΅).
e. ΠΡΠ½ΠΊΡ d ΠΏΠΎΠ²ΡΠΎΡΡΠ»ΡΡ ΡΡΠΈ ΡΠ°Π·Π°.
f. ΠΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Ρ
ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΡΡΠ΅Π΄Π½ΡΠ»ΠΎΡΡ.
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Ρ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ. ΠΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π·Π°ΠΏΠΈΡΠΈ ΡΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ°Π΄Π°ΡΡ ΠΈΠ»ΠΈ ΡΡΠΎ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅Π»Ρ Π±ΡΠ»Π° ΠΏΠΎΠ½ΡΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΈ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΡ Π²Π»ΠΈΡΠ½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΠΎΠ΄Π°Π½Ρ Π½Π° Π²Ρ ΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΈ, ΡΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ΅Π½ΠΈΡΡ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ t-ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π±Π»ΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Put. ΠΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ 2*2*3*2*3 = 144 Π²Π°ΡΠΈΠ°Π½ΡΠ° + 72 Ρ.ΠΊ. Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π΄Π²Π°ΠΆΠ΄Ρ. ΠΠΎΡΡΠΎΠΌΡ Π² ΡΡΠΌΠΌΠ΅ 216 Π·Π°ΠΏΡΡΠΊΠΎΠ²:
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π½Π° ΠΌΠΈΠ½ΠΈ-ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΡΠΎΡΡΠΎΡΡΠΈΠΌ ΠΈΠ· 3-Ρ
DataNode ΠΈ 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, Π½ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠΊΡΡΡΠ°ΠΏΠΎΠ»ΡΡΠΈΡ ΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠΊΠ°Π·Π°Π½Π°. Π Π΅Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π½Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌ, ΡΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ Π½ΡΠΆΠ½Π° Π½Π΅ Π΄Π»Ρ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΎΠ², Π° Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π·Π°Π΄Π°Π½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎ ΠΊΡΠΈΡΠ΅ΡΠΈΡ Π‘ΡΡΡΠ΄Π΅Π½ΡΠ°, ΡΡΠΎ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Put Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ BlockSize ΠΈ BlockCache (ΡΡΠΎ Π² ΠΎΠ±ΡΠ΅ΠΌ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ):
Π Π²ΠΎΡ ΡΠΎ, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΉ Π²Π΅Π΄Π΅Ρ ΠΊ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ (ΠΌΡ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΉ ΠΏΡΠΈ BulkLoad), Ρ
ΠΎΡΡ ΠΈ ΠΎΠ±ΡΡΡΠ½ΠΈΠΌΠΎ. ΠΠΎ ΠΏΠ΅ΡΠ²ΡΡ
Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΊ 30 ΡΠ΅Π³ΠΈΠΎΠ½Π°ΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Π° ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ
Π½Π΅ ΡΠ°ΠΊΠΎΠΉ, ΡΡΠΎΠ±Ρ ΡΡΠΎ Π΄Π°Π»ΠΎ Π²ΡΠΈΠ³ΡΡΡ. ΠΠΎ Π²ΡΠΎΡΡΡ
ΠΎΠ±ΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΡΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ RS, Π° ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ DataNode ΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° RS ΡΠ°ΡΡΡ ΡΠ΅Π³ΠΈΠΎΠ½ΠΎΠ² ΠΈΠΌΠ΅ΡΡ Π½ΡΠ»Π΅Π²ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ. ΠΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΡΠ΅ΡΠΊΡ Π»ΠΈΠ΄Π΅ΡΠΎΠ²:
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠ΅Π½ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Get:
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΡΠΈΡΠΈΠΉ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΎ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΡ, ΡΡΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Ρ
ΠΎΡΠΎΡΠΎ ΠΊΡΡΠΈΡΡΡΡΡΡ ΠΈ ΠΊΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΡΠΈΠΌΡΠΉ (ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ) ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»-Π²Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Π·Π°ΠΏΡΠΎΡΠ΅ β ΡΠΎΠΆΠ΅ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ:
ΠΡ ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ» ΡΠ½Π°ΡΠ°Π»Π° get, Π° ΠΏΠΎΡΠΎΠΌ put:
Π’ΡΡ Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π½Π°ΡΠΈΠΌΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠ²:
9. ΠΠ°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡ ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ Π·Π°ΠΏΡΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ, Π½ΠΎ Π²ΡΠ΅Π³Π΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ Ρ ΡΠ΅ΠΌ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ. ΠΠ° ΡΠ°ΠΉΡΠ΅ DataStax β ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Cassandra Π΅ΡΡΡ
ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ½ΡΠ», ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»ΠΎΡΡ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΏΠΎ 100 Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ Π΄Π»Ρ 16 Π½ΠΎΠ΄ HBase ΡΠ΅ΡΡ DataStax ΠΏΠΎΠΊΠ°Π·Π°Π» ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ 10 ΡΡΡ. ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ.
Π£Π΄Π°ΡΠ½ΠΎ, ΡΡΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΡΠΎΠΆΠ΅ 16 Π½ΠΎΠ΄, Π½ΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ Β«ΡΠ΄Π°ΡΠ½ΠΎΒ», ΡΡΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎ 64 ΡΠ΄ΡΠ° (ΠΏΠΎΡΠΎΠΊΠ°), ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² ΡΠ΅ΡΡΠ΅ DataStax Π»ΠΈΡΡ ΠΏΠΎ 4. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ Ρ Π½ΠΈΡ Π΄ΠΈΡΠΊΠΈ SSD, Π° Ρ Π½Π°Ρ HDD ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ HBase ΠΈ ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ CPU Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π»Π°ΡΡ Π½Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ (Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ Π½Π° 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 ΠΠ), ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ°ΡΠΊΠ°ΠΌΠΈ ΠΏΠΎ 100, Π² 4 ΡΠ°Π·Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ 50 ΡΡΡ. ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π·Π°ΠΏΡΡΠΊ 40 ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΈΡΠ°Π΅Ρ Π½Π°Π±ΠΎΡ ΠΈΠ· 100 ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΡΡΡ ΠΆΠ΅ ΠΏΠΈΡΠ΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ 10 ΠΠ ΠΏΠΎ ΡΡΠΈΠΌ ΠΊΠ»ΡΡΠ°ΠΌ Π½Π°Π·Π°Π΄.
Π‘ΡΠ΅Π½Π΄: 16 DataNode ΠΈ 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 ΠΏΠΎΡΠΎΠΊΠ°). ΠΠ΅ΡΡΠΈΡ HBase 1.2.0-cdh5.14.2.
Π Ρ ΠΎΠ΄Π΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ major compaction, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅ Π±Π΅Π· ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π΄Π΅Π³ΡΠ°Π΄ΠΈΡΠΎΠ²Π°ΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°. ΠΡΠΎΡΠ°Π΄ΠΊΠΈ Π²ΡΠ·Π²Π°Π½Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌΠΈ. ΠΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π»ΠΈ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»Π° ΠΏΠ°ΡΠ·Π°, ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΊΠ»Π°ΡΡΠ΅Ρ.
Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π·Π°ΠΏΠΈΡΡ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΠΆΠ΅Π»ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΠ°Π±ΠΎΡΡ Π΄Π»Ρ HBase. ΠΡΠ»ΠΈ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ put Π·Π°ΠΏΡΠΎΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎ 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 ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠΉ ΠΈ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π½Π½ΠΎΠΉ ΠΠ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·Π½Π΅ΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ.
ΠΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π½Π° Π²Π°Ρ Π²Π·Π³Π»ΡΠ΄ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°ΡΠΊΡΡΡΠΎ, Π³ΠΎΡΠΎΠ² ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅. ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΈΡΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅ΡΠ»ΠΈ Ρ ΡΠ΅ΠΌ-ΡΠΎ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ½Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com