á°áá! áľá áłáá áááŽá áĽáŁáááᣠáĽá á Sbertech á¨áááá áĄáľáá˝á HBaseá áĽáá° áŚááŹá˛áá áłáł áááá áá áá áááŻáᢠáľááľáľáŁ á áľáááľ áááľááἠáĽá ááááá˝ á¨áááááá á áá á°ááᎠá á¨áá˝á°áá (áá ááĽááá˝ á áá áĽáá°ááá á°áľá áĽáá°áááá)ᢠá¨áá á áłá˝ áŤááľ ááá áá¨áŤáá˝ á¨á°á¨ááááľ á¨HBase áľáŞáśá˝ 1.2.0-cdh5.14.2 áĽá 2.0.0-cdh6.0.0-beta1 áá ááá˘
- á á ááá á ááá´áá¸á
- ááἠáá° HBASE á ááťá áá
- ᨠHBASE á¨á°áááá ááἠá ááá ἠáá
- á¨ááἠáá¸ááŤ
- áŁááĽá ááľ/áŁááĽá ááľ áŁá˝ á¨ááἠáá°áľ
- á°áá á¨áŚá˝á áá° áááá˝ áá¨ááá (á¨ááá°áľ) áľáľáŤá´á
- á¨áľá á°áľ ááťáťáᣠá¨áłááááľ áĽá á¨ááἠá áŤáŁá˘
- á ááĽáŽá˝ áĽá á ááťá¸á
- á¨ááááľ áá¨áŤ
- áááśá˝
1. á á ááá á ááá´áá¸á

á¨áá áŁá á፠ááľá°á á ááľ áá áŤááá áá á¨ááŞáá á¨áἠááľ áŤáłááŁá áĽá á˘á á á¨ááľá°ááľá á°ááŁáŤáľ áááŁá áŤáá˘
2. ááἠáá° HBASE ááťá
á ááááŞáŤ áááá ááłá áĽáááá¨áľáĄ- á¨ááá áĽá´áľ áááá á put(rowkey) á áá áá áá° á áá á¨áĽ ááťáᢠá°áá áá ááááŞáŤ á¨hbase:meta á°áá á¨áĽá á¨ááŤá¨áá˝áá á¨root Region Server (RRS) áŚáł ááá°á á áá áľá˘ áá áá áá¨á á¨ZooKeeper áŤáááᢠá¨ááŤá RRSá áá°ááľá á¨hbase:meta á°áá á¨áĽá áŤááŁáᣠá¨á፠ᨠRegionServer (RS) á ááááľ á°áá á¨áĽ ááľáĽ áá°á°á á¨rowkey ááἠááá¨áá¸áľ áááááľ áŤáá áľ á¨áľáá RegionServer (RS) áĽáá°áá áá¨á áŤáááᢠááá°ááľ áĽá áᣠmetatable á á°áá áá áá¸ááŁáᣠáľááá ááŁá ááłá¨áťáá˝ ááŁá áĽá á ááĽáł áá° RS áááłáá˘
áĽáŤá á˛á°áá°áᣠRS ááááŞáŤ áá° WriteAheadLog (WAL) áá˝áááᣠáá á á á°á á˛á¨á°áľ áááś áááááľ á áľááá ááᢠá¨ááŤá áá¨ááá á MemStore ááľáĽ áŤá¨ááťáᣠáá á áá°áá°á ááá á¨á°á°á¨á°áŠ á¨ááá áľáĽáľáŚá˝á á¨áŤá á ááľáłááť ááľáĽ áŤá ááľ ááᢠá ááľ á°áá á¨áĽ áá° áááá˝ (áááá˝) áá¨áá áá˝ááᣠáĽáŤááłááłá¸á á¨á°á¨ááá á¨ááá áľáĽáľáŚá˝á ááááᢠáá áááá˝á á á°ááŤáŠ á ááááŽá˝ áá á ááľááἠá¨áá°á á ááťá¸á áĽáá˛áá áŤáľá˝ááᢠáááᣠáá ááá˝ ááá፠á˘áááᣠáá á ááá áááłáá˝ áĽáá°ááá°áŤ á áá áá áĽááŤááá˘
á ááľ áááἠá MemStore ááľáĽ á¨á°ááá á ááᣠá°áá áá áááᥠá á°áłáŤ áááł áĽáá°á°ááá á¨áá áá ááá˝ áŤáááᢠáááᣠáááᥠá áĽáááą á áá ááľáĽ áĽáť á¨áá¨áá˝ á˛áá á¨á°áá°á áá áŤáá á áá ááá ááą á á á˛áľ áá¨á á˛áá áĽáť áá° á˛áľá ááááá˘

"á°áá" á¨ááá á°ááŁá á˛á¨áááᣠáá¨áá á á áŤá á áá°á¨ááᢠá ááá áĽáá°á°á°á¨á ááááľ áá°á¨áá áłáᣠáĽá áĽááą áŤáą á¨áá¨á°á°á ááá á¨áłáá á°ááŁá á˛á ፠ááᣠáá
á á ááá 7 ááľáĽ á áááá á°áááżáá˘
á á¤á˝ááá á áá¸áľ áŤá áááá˝ á á¤á˝á˛á¤áá¤áľ áá¨ááťáᣠáĽá á¨áá áá° ááᣠáľáá˝ á¨áłáá áá°áľ ááŤááłáᣠáá á ááá ááá áłáá°áá áľááá˝ áááá˝á áá° áľááá áááá˝ áŤáá áłáᢠá¨áá á ááᣠáá ááἠá˛áŤáᥠáĽáť á¨ááłá á˝áá áááá (á áá áá áá°áá áĽááááłáá)á˘
á¨áá á¨á°ááá¸á á¨ááŤá áá°áľ á á°á¨ááŞáŁ á¨á áá áááŁá á¨áá á á°áŤá á áᣠáá á ááááŁáľ á¨áá á¨ááἠááł á ááŤáŤ áŁá ᪠ááᥠBulkLoadᢠHFiles á á áĽá ááá á áĽá áá° á˛áľá ááŤáá áŤáŤáľáłáᣠáá á áĽá á á áŁá áĽáŠ á¨ááľáá፠á á á áĽáá˛áá áĽá á áŁá á¨á°á¨á ᨠááĽááľá áĽáá˛áŤáá áŤáľá˝ááᢠá áá á¨áąáŁ áĽáá áŤáá áá°áĽ HBase áłááá á¨áááľáá á˝ááłáá˝ ááᢠá¨áá á áłá˝ 16 RegionServers áĽá 16 YARN NodeManagers (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 ááŽá˝)ᣠHBase áľáŞáľ 1.2.0-cdh5.14.2 áŁáŤá°á° áááľá°á áá á¨ááŤá áá¤áśá˝ áá¸áá˘

áĽáá
áá á á áá á¨áĄ ááľáĽ áŤááľá á¨ááááá˝ (áááá˝) áĽááľ áĽáá˛áá á¨áľááá á áľááááá˝á áá¨áá á¨ááŤá ááĽááľá áĽáá°áá¨áá áĽááŤááᢠááĽááľ á á˝áá áá á ááá ááá°ááᢠáľááá
áĽááŽá˝ á MB/á°á¨ááľ áá᪠áá°áŁáᣠáľááá˝ áĽááŽá˝ á°áá á áá á ááľ ááľáĽ á¨á°áŤá°áąáľá ááááŚá˝ áĽááľ áá¨ááŤáᣠááá˝ áááŽá˝á áĽáŠá áá¸áá˘
áĽáá˛áá ááĽááąá á áĽáĽá áááłá°á áááľ á á¨á´ááá˝á á á ááľ áá ááŤá áá˝ááᢠá¨áá á áłá˝áŁ 10 áŞáŁ áĽááŽá˝á áá° áááľ á á¨á´ááá˝ á á ááľ áá ááťá á áĽáŤááłááą á áááľ 600 ááŁ/á°á¨ááľ (á á á ááá 1275 ááŁ/á°á¨ááľ) áĽáá°áááľ áá¨áľ áá˝ááᣠáá á á á ááľ á á¨á´á áá á 623 ááŁ/á°á¨ááľ á¨ááťá áá á°ááłáłá áá (á¨áá #11á áááá¨áą)á˘

ááá°áá á¨50 áŞáŁ ááááŚá˝ áŤááľ áá°áľ á¨ááŤá ááĽááą á áľááš áĽáť áĽáá°áá¨áá áŤáłáŤáᣠáá
á á¨áá°áá áĽá´áľ áĽá¨áá¨á áááá áŤáłáŤáᢠáĽáá
áá HBASE áŤáą ááá á áááľ áááľ áĽáá°ááá ááľáłááľ á áľááá ááᢠááááŞáŤ á¨ááŤáľáááá áá¨ááá ᨠhbase:meta ááááľ ááᣠá¨ááŤá HFiles á ááľáŹ áŤáľááᥠá ááᣠá¨BlockCache áááĽá ááá°áľ áĽá áŁáś áŤááá á¨MemStore ááąá áá° á˛áľá ááľááἠááá˘
3. ᨠHBASE á¨á°áááá áá¨á ááá áĽ
ᨠhbase:meta á¨áááá áá¨á áá áá°áá áá á áľááľá á¨ááá áááá á¨áááľ ááľáĽ á ááľááŁáľ (ááĽáĽ 2á áááá¨áą)ᣠáĽáŤáá á ááĽáł áá° RS áááłáᣠáĽááŤá á¨ááááá ááá áá¨ááťáᢠáááá ááááŞáŤ á¨áá¨áááá á MemCache ááᢠáá¨áá áĽá፠á˘ááá ááá á áááᣠáááá á BlockCache ááľ ááľáĽ áĽá á áľááá á¨ááá á HFiles ááľáĽ áá¨ááááᢠáá¨áá á ááá ááľáĽ á¨á°ááᣠá BlockCache ááľáĽ ááááŁá áĽá á áááĽáá áĽáŤá áá á á áá ááĽááľ ááááłáᢠá HFile ááľáĽ áááá á Bloom ááŁáŞáŤ á áá áá á á ááťáŤáááľ ááŁá ááᤠá ááľá°á áá á áŤáá ááἠáŤáá á á ááᣠááá á¨ááŤáľááááá ááá á¨áŤá áááá áá˛áŤáá áááľááᣠáŤáááá áá°áááĽáá ááá áááłáá˘

á¨áĽááá
áśáľáľ áááŽá˝ áá¨á á¨á°áá á á ááᣠá áá¤áľ ááá˝ áááĽáŤáᢠá á°áááᣠá°áá áá áľáŞáľ áĽáá˛ááá
á¨á á¨á á á ááľ áá á ááŤáł á¨á°áá á¨á ááľ ááá áľáŞáśá˝á ááľá°ááá áá˝ááá˘
4. á¨ááἠáá¸ááŤ
á¨MemStore áĽá á¨BlockCache ááśá˝ á RS ááľáĽ á¨á°áá°á á á¨ááá áá á°á¨ áľááľáł áĽáľá¨ 80% áááá (á¨á°áá¨á áRS á¨á áááááľ á°ááŁáŤáľ á¨á°áŤá áá)ᢠá¨á°ááá°á á¨á á ááá áááł á°ááłáłá áá¨ááá˝á á¨ááťá áĽá áá˛áŤáá á¨ááá ἠáá°áśá˝á á¨ááá á¨ááᣠBlockCacheá ááááľ áĽá MemStoreá áá¨áá ááááŤáłá ááᣠááááŤáąá ááἠá áá˝áá áľ áá á¨ááŁáĽ áá¸á፠á áááłá áĽá BlockCache á á°á°ááá áĽá á áá á ááááᢠá¨BlockCache ááľ áááľ áááá˝á áŤáá ááᥠLruBlockCache (áááá á ááá áá) áĽá BucketCache (áĽááá áá á¨ááá á᪠ááá á SSD áá)ᢠBucketCache áĽá á¨ááŁáĽ áĽáŤááá˝ á˛áአáĽá á LruBlockCache ááľáĽ á¨áááᥠá˛áá áĽá á áá ááá á áá áľáŁ áá á áá° áá á¨ááťáť áá°áĽá°áĽ áĽáá áľáá´ áááŤáᢠáááᣠá¨ááŁáĽ áá¸ááŤáá á¨áá áá á áľá°áá á¨á ááťá¸á áá᪠áá á á á¨ááĽááľáᣠááá áá á á°á¨á 8 áá°áá áĽááááłááá˘

áá á
ááá RS á ááľ BlockCache á áᣠáĽá áĽáŤááłááą á áá á¨áĽ á¨áŤáą á¨áá MemStore á áá (ááĽáŤááłááą á¨á ááľ á¤á°á°áĽ á ááľ)á˘
áĽáá´áľ á ááľá ááłáĽáŁ áá° áá¸á፠á¨á°áá áá¨á á ááťááᣠáĽá á áĽáááĽáᣠá¨CACHE_DATA_ON_WRITE á°áá á¨áĽ áááŞáŤ áĽá "á Write áá áŤáá á¨áá¸á፠áłáł" RS áááŞáŤ áá° áá°áľ á°áá á¨ááᢠááá ááᣠá á°ááŁáᣠáá° MemStore ááἠá¨áťáᣠá¨ááŤá áá° á˛áľá (á áá á á áá˝áłáľ) áŤá¸áąáľáŁ áĽá á¨á፠á¨á°áááá ááá á¨á°á¨áᣠá¨GET áĽáŤáá á ááá¸á áááĄá á á°áłáŤ áááł áŤáááᢠá¨áá á á ááᣠ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
"á ááŁáĽ áá áŤá á¨áá¸á፠áááĽ" áááŞáŤ áá° áá°áľ á°áá áŻáᢠááááá ááłáĽ áŤáááľ áĽáŁáá á á áľá°áŤá¨áśáš ááľáĽ áááŤáŠáŁá¸áá˘
5. á¨áŁá˝ áłáł áááá á MultiGet/MultiPut
áá á áĽáŤááá˝á (Get/Put/Delete) ááľáŹáľ á áŁá ááľ ááᣠáľááá á á°áťá áá á áá° áááá ááá áááá ááááľ á ááťá¸áá á áĽá á ááŤáťá˝á áá˝ááᢠáá á á°áá áá˝áá áľáŤáá˝ áĽáááľ ááᣠááá áá ááá ἠááĽááľ áááĽáŤáᢠá¨áłá˝ áŤáá ááŤá á¨MemStore 50,000 ááááŚá˝á áááá ἠá¨ááááá áá áŤáłáŤáᢠááŁáĄ á¨á°á¨áááá á á ááľ áá á˛áá á ááľá ááá á áĽáŤáá ááľáĽ áŤááľá á¨ááá áĽááľ áŤáłáŤáᢠá á ááľ áĽáŤá ááľáĽ áŤááľ á¨ááá áĽááľ áá° á ááľ áşá á˛á¨áá á¨ááľáá¸á፠áá áĽáá°ááááľ ááá ááᣠáá á áááľ á ááťá¸á áá¨ááŤá áááľ ááᢠáááᣠá ááŁáŞáᾠᨠMSLAB áááł á˛ááᣠá ááťá¸á á¨áá áá°áĽ á áá á á¨áá°á áááł áá˝áááá ááááŤáᣠá áááᥠááľáĽ áŤáá á¨ááἠáá á á˛á¨áá á¨ááľáá¸á፠áá áá¨áááá˘

ááááŤááš á¨á°á¨ááááľ á áááŁá áá˝áᣠá 8 áŽáŽá˝áŁ á HBase áľáŞáľ 2.0.0-cdh6.0.0-beta1 áá ááá˘
á¨MSLAB áááł á¨á áłá˛áľ áĽá á¨á áŽá áľáááśá˝ áááĽá á áá°áŁáá á¨ááá á¨áá á¨ááá áá¨ááá áááááľ á¨á°áá°á ááᢠáá áá á˝áá ááááłáľáŁ MSLAB á˛ááᣠááἠá á ááťáŤá áááł á áľáá˝ áááĽáŤáŽá˝ ááľáĽ ááááŁá áĽá á áááá˝ áááááᢠá áá á ááááŤáľáŁ á¨á°á á¨áá á¨ááἠááŹáľ áá á á¨á°áá°á á áá á á˛á áἠá áááá á á¨áá°á áááł ááááłáᢠááá ááᣠáá áá áááł áá°áá¨á á¨ááááá ááᣠááááŤáąá á á¨áá°á á¨ááἠááłá¨áť áááá˝ ááľáĽ ᨠGC ááááŤáá˝á áŤáľá¨áľááᢠáĽáŠ áááľá áá á˝ááá˝á á á°ááá¨á° á¨áááľ áá áá á¨ááŁáŚá˝ áá á á°ááłáłá áá á ááľááἠáá¨áá ááᢠáá á˝áá á¨á˝áá á áá á¨ááá˝ áľááá á¨á°á°áá á¨áŁ MemStoreá áá° á˛áľá á¨ááŤááľáľ á¨áá ááá á BulkLoad áááľ á¨á°á¨ááá áĽáá°ááá¨á°áľ áἠááŁá áááŁáᢠá¨áá á áłá˝ áŤáá á°áá á¨áĽ á¨MemStore ááľáá (áĽá á°ááłáłá) ááἠá¨áá á¨á áĽáŤááá˝ ááĽááľ ááááľá áĽáá°ááŤáľá¨áľá áŤáłáŤáᢠáááᣠá¨áááľ áá á áá¨áá á¨áá°áąá áá áá° áá°á áá ááááłáá˘

á¨áľáĽáľáĽ áá áá á¨áá¨áá á á°á¨ááŞáŁ áááĽá á ááá áá¨áááᣠáááľá á¨á áá á¨áĽ ááááᣠáá¨áłáᢠáá
áááľ ááĽáŤááłááą ááá á¨ááአáĽáŤááá˝ ááĽá á ááľá°á áá áááľ ááᣠáĽá á á ááľ áááľ ááľáĽ á¨ááľáá á¨ááᣠáááš áĽáŠ áá áááŤáá˘
6. á°áá á¨áŚá˝á áá° áááá˝ á¨áá¨ááá áľáľáŤá´á (ááá°áľ)
HBase ááá áĽá´áľ áŤáá áá¨ááť áľááá áĽá áááá á¨áá¨áááá á áŞá áľáááᣠáááĽá á ááá áááá˝ á áĽáŠá áá á áá¨ááá ááłá ááᢠáááłáᣠáĽáá˛á ááááąá á°áá á¨áĽ á áŚáľáľ áááá˝ áá¨ááá áá¨áá á áŚáľáľ áááá˝ áĽáá˛á¨áá áŤá°ááááĄ

á áá áá á¨ááŤáá áá¨á áááłá á á áĽááá á á°ááłáłá ááĽá á¨áááአá¨á
á áĽá´áśá˝ á¨áá áá
á ááłááľ áá áá° á¨áá°á ááĽááľ ááááľ ááŤá፠áá˝áá áááłááĄ
1000001
1000002
...
1100003
ááááš áĽáá° áŁááľ á á°áŤá°á áľáááááĄáŁ ááá á á°ááłáłá ááááľ ááááŤá áĽá áá áá á¨ááá ááá á¨ááŤá¨áá˝á á°ááłáłá ááá #1 ááááᢠá ááŤáł á¨áá¨ááá áľááśá˝ á ááĄ
HexStringSplit â á ááľá ááá áá° "00000000" => "FFFFFFFF" áĽá á á፠á áŠá ááŽáá˝ áŤááľ áá˛áá áŁáá ááá ááľáĽ áá° áááłá´á˛áá á˘ááŽá˛áá ááłáá ááĽá¨ááá áááá ááá˘
áŠáááá áľáááľ - á ááľá ááá á "00" => "FF" ááá ááľáĽ áááłá´á˛áá á˘ááŽá˛áá áĽá á áá á áŠá ááŽáá˝á á¨áŤá áá˛áá áá° áŁááľ á á°áŤá°á áááá ááá˘
á á°á¨ááŞáᣠááá¨ááá áĽá áŤáľ-á°á áľááá˛áá ááááá áááááá ááá ááá á¨ááá áľáĽáľáŚá˝á áááá˝ áá˝ááᢠáááᣠá áŁá ááá áĽá á áŁá áá¤áłá á¨áá á ááŤá¨áŚá˝ á ááą UniformSplit áĽá á¨áá˝ áŽááŤá´áá˝á á á ááá ááᣠáááłá áááá á CRC32(rowkey) á°ááŁá áĽá á rowkey áŤáą á áŠá á¨ááľáŹáľ á áŁá á áá á¨áá á¨áŁááľ áĽááľáĄ
áá˝ + á¨áľá ááá
á¨ááŤá ááá áá¨ááá˝ á áááá˝ áĽáŠá áá°áŤáŤáᢠá˛áŤáᥠá¨ááááŞáŤááš áááľ áŁááśá˝ á ááá ááŁááᣠá¨ááááŞáŤáá ááá áá°ááᢠRS á á ááľ ááá ááľáĽ áŤááá á¨ááἠáĽá á¨ááá áá á áá¨áłá°áá áĽá áá°áŚáš á¨á°áťá á áŤáľ-á°á áá° áááá˝ áá¨ááááá˘
7. á¨áľá á°áľ ááťáťá áĽá á¨ááἠá áŤáŁá˘
ááĽáŤááłááą á¨ááá áľáĽáľáĽ á ááľ ááá áĽáť á°á áŤá áľáááᣠᨠRS áĽáá˝áśá˝ ááá á¨áľáŤ ááá áá áá°áŤáŤá á˝ááŽá˝ áááľáá áááá á áľááá áá¨ááá˝ á HDFS ááľáĽ áá¨áá¸áľ ááᢠRS á˛á áá˝áŁ ááľá°á áá áá á¨ááá¨á á ZooKeeper ááľ áá á¨áἠááľ áŁáááአááᢠá¨ááŤá á¨ááŤáááááá ááá ááá RS áááľáŁáᢠHFiles á á°á¨ááá á¨ááá áľáááľ ááľáĽ áľááá¨áášáŁ á á˛áą ááľá°á áŤááŁá áĽá áááĄá áááááá áááĽááᢠáááᣠá ááłááľ áá¨ááá˝ á MemStore ááľáĽ ááá áĽá áĽáľáŤáá áá° HFiles áľááá°áááᣠWALᣠáĽáąá á HDFS ááľáĽ á¨á°á¨áá¸áŁ á¨á á áŤá áłáŞáá áá°áá á¨á áľ áááááľ áá á ááᢠáááŚáš á¨á°á°áá አá ááᣠRS ááĽáŤááá˝ ááá˝ ááľá áľ áá˝ááᣠááá áá áĽáá áľáá´á á ááłááľ áá¨ááá˝á áĽá áĽáąá á¨ááŤáááá áá°áśá˝á á á°ááŤáŠ ááśá˝ áá áĽáá˛áá áŤá°áááᣠáá á á áŤáŁá˘á ááááłáá˘
áááľáá áá áááá፠ááᢠáá áá°áľ áááá˝á ááĽááą áááááľ áá°áááľ ááśá˝ (ááááťá¸á á ááááŁá¸á áŚáłáá˝) áŤáááŤáᣠáá á á áá áá°áľ ááľáĽ á¨ááľááá áĽá á¨á˛áľá áááľ á á¨áá°á áááł áĽáá˛á¨áá áŤá°áááᢠááá ááᣠá¨ááἠááłá¨áť á áá áá á á¨áá°á áááł ááŁá ááᢠá á°á¨ááŞáᣠmajor_compaction áááá HFiles á á ááľ ááá ááľáĽ áá° á ááľ ááá áŤáá áłá áĽá á á áá á¨áĽ á ááĽáŽá˝ áá á áááľá¨áľ áááĽá áŤá¸áłáᢠáááłáᣠáááá¨áľ á¨ááŤáľááááľá á¨ááá áľáŞáśá˝ áĽááľ ááá ááá á á áŤá á¨áá°á¨áá áľá á¨á áááľ ááá áááá˝ áá˝ááá˘
áá á á°áŤá á HBase á ááťá¸á áá á áŁá á áááłá á°á˝áĽá ááá¨á áá˝ááᢠá¨áłá˝ áŤáá ááľá á á¨áŁáľ á¨ááἠá ááá˝ ááááŤáľ á ááťá¸á áĽáá´áľ áĽáá°á°á áḠáŤáłáŤáᢠá á ááľ á á¨á´á áá á¨áá˝á 40 ááŽá˝ áĽá á á°ááłáłá áá 40 ááŽá˝ áááĽá á¨ááŤáᥠááŽá˝ áŤáłáŤáᢠá¨ááťá፠ááŽá˝ áĽá áĽá áĽá á¤á˝áááá˝á áŤáááŤáᣠá¨ááŤá á ááá˝ ááŽá˝ ááá áŁáᢠá áá á ááááŤáľáŁ áĽá áĽá áĽá áá¨ááá˝ á¨áá á°á¨ áľááľáł ááááľ á ááŁá¸áᣠáĽá á áá¨á¨áťáᣠGC ááááŤáᣠáááá áľáŤáá˝ á á°ááŁá áŤá˝áá°ááłáᢠáá áááá፠ááľáŹáľ á¨á°áááá ááľááľ á á˝áľáś á ááťá¸áá áá°áá á¨á áľ áááˇáá˘

áá¨áŤá á¨á°áŤáá°á á 3 DataNodes áĽá á 4 RSs (Xeon E5-2680 v4 CPU @ 2.40GHz * 64 ááŽá˝) áá ááᢠHBase áľáŞáľ 1.2.0-cdh5.14.2
ááá áááá፠á ááĽáł á á¨á´á áá ááŤááąá áἠááŁá á¨áááŁá á˛áá áá¨áá á áááľ áĽá¨áťá áĽá áĽáŤáá á ááᢠáá áá¨á á˛áŤáᥠá¨á°áłáłáą ááážá˝á ááŤáľá¨áľá áĽáá°áá˝á á¨ááááš ááśá˝ á ááľáá áá áá áŠá˘ áá áá ááá¨ááἠá á˛áľ áá¨á á¨áááĽá áĽá áá° á á¨á´áá á¨áťáá áá°áľ á°áááŻáᢠá¨ááŤá áá˛áŤáá á áá á á áĽá á¨á°ááá áĽá´áľ á¨á°áťáá áĽá´áľ áá áĽáá°ááááľ á á¨ááá§áᢠá áá áá°áľ ááľáĽ áá áááá፠á áááľ 200 áá á°á¨ááááᣠáĽá á ááľá ááľááľ á áá°áááá áᢠá˝áአá áá á áá á¨áá¨á°áľ áĽá á á¨áá°á áááľ áá áĽáť ááá áá˝ááᣠáľááá áĽáá°áá áŤá á¨áᲠááľááľá ááá¨áá¨á ááá áĽá ááá áĽá á áááľáŽ ááá áĽá áá˝áłáľá áá¨ááá á¨á áá á áľá°ááá ááá˘
áĽáá˛ááᣠáá áááá፠á¨MemStoreá áááł á áááłááᤠáá° á˛áľá áááá°áľ áĽá áááŁááᣠflush (connection.getAdmin().flush(TableName.valueOf(tblName))) áá áá áŤáľáááááłáá˘
8. á ááĽáŽá˝ áĽá á ááťá¸á
áá°á á˛á áĽáá°á°á áá°áᣠHBase ááá ááľá¨á á áááááá áľ áá á áŁá áľáŹáłá áá - BulkLoad á á˛áŤá¨áááᢠáá áá áá áĽááááš áľáááśá˝ áĽá á°áá˝ áá áŤáᢠáááᣠáá ááłáŞáŤ á áľááá áĽááŽá˝ ááľáĽ áá áá áłáł áááŤá á¨á áá á°áľáá ááᣠáá°áą áá á ááŤáł á¨á°ááłá á¨ááá ἠáĽá á¨ááťá áĽáŤááá˝á á¨áááá á¨ááᣠá¨áá á¨á°ááášáľá á¨Get and Put áľáááá˝á áĽáá ááááᢠá áŁá áĽáŠáá áááŞáŤáá˝ áááá°áᣠá¨á°ááŤáŠ á¨á°áá á¨áĽ áááŞáŤáá˝á áĽá á ááĽáŽá˝á á ááŁáá áá¨áŤáá˝á á áŤáá°áááĄ
- 10 ááŽá˝ á á°á¨áłáłá 3 áá á á ááľ áá á°ááá¨áá (áá áá á¨áá áĽáá áĽáá á)á˘
- á á ááľ áĽáá ááľáĽ áŤá á¨ááá ááŽá˝ á¨áŠáŤ áá á á ááŤá á¨á°á°á á˛áá á¨áĽáአáľáŤ á¨áá¨á¨áť áá¤áľ áá áá˘
- ááá ááŽá˝ á á°ááłáłá á°áá á¨áĽ á áá°ááá˘
- á¨áĽáŤááłááą á¨áá áĽáá áá°áľ á ááľáŁ áá áááá፠á°á¨ááááá˘
- áĽáŤááłááą áĽáá á¨áá¨á°ááľ á°ááŁáŤáľ ááľáĽ á ááąá áĽáť á á¨áááááĄ
â ááľ
- á áá
â ááľ+ááľ
- áĽáŤááłááą áĽáá 50,000 á¨á á áŤá áľáááážá˝á á á¨ááááá˘
- á á ááľ áĽáá ááľáĽ áŤáá á¨áááἠáá á 100 áŁááľáŁ 1000 áŁááľ ááá 10000 áŁááľ (á áááá°) ááá˘
- áĽááŽáš á¨á°áááŠáľ á á°ááŤáŠ á¨á°á á¨á áááá˝ (á ááľ ááá ááá 10) á áá áá ááá˘
- áĽááŽáš á á°ááŤáŠ á¨á áá á¨áĽ á ááĽáŽá˝ á°áŤáá°ááᢠá¨áá¨á°ááľ áááŞáŤáá˝ á°ááá¨áááĄ
â BlockCache = áá
áˇá ááá á°á°áááá
â á¨áĽáááłáá áá á = 65 áŞáŁ ááá 16 áŞáŁ
â áááááŽá˝ = 1ᣠ5 ááá 30
â MSLAB = á áĽáŤ ááá á áĽá
áľááá áĽáአáĽáá°áá áááľáá:
á. á¨MSLAB áááł á ááˇá/á ááˇáá˘
á. á¨áá¨á°ááľ áááŞáŤáá˝ á¨á°áááĄá áľ á°áá á¨áĽ á°áá á¨áĄ BlockCache = true/noneᣠBlockSize = 65/16 KbᣠPartitions = 1/5/30á˘
á. á¨áááľ áááá፠á°ááá
áˇáá˘
á. 10 ááŽá˝ á á ááľ áá á°ááá¨ááᤠá áá
á áá á¨áĽ ááľáĽ 100/1000/10000 áŁááľ ááááŚá˝á á¨áŤá 1/10 á¨put/get/get+put áľáŤáá˝á á áá¨áááᣠ50,000 áĽáŤááá˝á á á°á¨áłáłá (á áááá° áááá˝) áá˝áááá˘
á . ááĽáĽ á áŚáľáľ áá á°á°áááá˘
á¨. á¨ááá ááŽá˝ á¨áŠáŤ áá á á ááŤá á°ááľá§áá˘
ááá ááá á¨áá˝á áĽáá¨áśá˝ á°ááľáááᢠá¨áááἠáá áá áá¨áá á ááťá¸áá áĽáá°ááááľ ááá áá¸á፠áá°áá¨á áá° ááĽááľ áĽáá°ááááľ á¨ááááľ áá áᢠáááᣠáᥠá¨áĽáŤááłááąá áááŞáŤ á°á˝áĽá á°á¨á áĽá á áááł áá¨áłáľ áá áᣠáľááá á¨á°á°á á°á á áá¨á áá° ááľááŤá áŞááŹá˝á á°ááŁá áĽáá˛áᣠá°á°áááᣠáá á á¨á˛-áľáłá˛áľá˛ááľá á áá áá á áľá°áááááľá áááááá áŤáľá˝ááᢠá¨ááľ áľáŤáá˝á á¨ááá˝ááľ áĽááŽá˝ áá¤áśá˝ á¨áá á áłá˝ ááłáŤáᢠá¨áĽáá¨áśá˝ áá áľáĽáľáĽ 2 * 2 * 3 * 2 * 3 = 144 ááŠááśá˝ + 72 áá ááááŤáąá á ááłááśáš áááľ áá áľáá°á¨áááᢠáľááá ᣠá áľáአ216 áŠáŤáá˝áĄ

áá¨áŤá á¨á°áŤáá°á áśáľáľ DataNodes áĽá á áŤáľ RSs (Xeon E5-2680 v4 CPUs @ 2.40 GHz * 64 ááŽá˝) áŁáŤá°á° á ááľá°á áááľá°á áá ááᢠHBase áľáŞáľ 1.2.0-cdh5.14.2á˘
á¨áá°áá á¨3.7 á°á¨ááľ á¨ááľááŁáľ ááĽááľ á¨á°ááá MSLAB áááł á˛á°áá¨áᣠá ááľ ááá áŁáá á á¨á´á ááᣠBlockCache á˛ááᣠBlockSize = 16ᣠáĽá á 10 áŁá˝ ááľáĽ 100-áŁááľ ááááŚá˝ áŤááľá˘
áá
á°áá á¨82.8 á°á¨ááľ á¨ááľááŁáľ ááĽááľ á¨á°ááá MSLAB áááłá á ááĽáŤáľ á˛ááᣠá ááľ ááá áŁáá á á¨á´á ááᣠBlockCache á ááśáŁ BlockSize = 16ᣠ10000-áŁááľ ááááŚá˝ áŤááľáŁ áĽáŤááłááłá¸á 1 ááá˘
á áá áá´áá áĽáááá¨áľá˘ á R2 á¨ááľ áĽáŠ á¨áá´á áĽáŤáľ áĽááŤááᣠááá áá áĽáá áá á¤ááľáľáŤááá˝á á¨á°á¨áá¨á ááá ááá ááᢠáľááááá á¨áľáááľ áŁá ᪠áááŞáŤáá˝ á˛áá¨áŠ ááľááŤá á ááááᤠáá áá´á ááľáá áŤáá˝ áłááá á á°á°áĄáľ áááŞáŤáá˝ ááľáĽ áá áĽáá°á°áá ᨠááá¨áłáľ á¨ááŤáľáááá ááᢠáááłáᣠáĽáá á¨á°ááŞá á˛-áá¨áŤ á¨BlockSize áĽá BlockCache áááŞáŤáá˝ áPut áŚááŹá˝á ááá áááł áĽáá°ááá¸á áĽááŤáá (áá á á á á ááá á áŁá ááááľ á¨áá˝á áá)áĄ

á¨ááááá˝á ááĽá áá¨áá á¨á ááťá¸á ááááľá áŤáľá¨áľáá á¨ááá áĽáááł á á°áá°á á°á¨á áŤáá°á á á áá (á BulkLoad á¨ááááá˝á ááĽá áá¨áá á áááłá á°á˝áĽááá áá°á áĽáá á áá°áá)ᣠááá áĽááłá ááá¨áłáľ á¨ááťá á˘áááᢠá ááááŞáŤáŁ áá°áľ á¨á ááľ ááá
áá° 30 áááá˝ áĽáŤááá˝á ááá áá áá áááᣠáĽá á¨ááἠáá á á¨á ááťá¸á áľáá áááááľ á á á áá°ááᢠá ááá°á á°á¨áᣠá á ááá á¨ááľáá¸á፠áá á¨ááá°áá á áŁá á ááá°áá RS ááᣠáĽá á¨DataNodes áĽááľ á¨RSs áĽááľ áŤáá° áľáááᣠá ááłááľ áááá˝ áᎠá áŤáŁá˘ á áá¸áᢠá¨áá°ááášá á ááľáľ áĽáááá¨áľáĄ

á áá á¨Get áĽááŽá˝á á¨ááľáá¸á áá¤áśá˝á áĽááááááŚ

á¨ááááá˝ áĽááľ áĽáá ááá
á ááááᣠááááŁáľá áá¨áá á á°áἠá¨á°á¸áá áĽá á¨ááŁáĽ áá¸á፠á áŁá ááá
(á áľáłá˛áľá˛ááľ) áááŞáŤ áľááá ááá áá˝ááᢠá á°ááĽáŽáŁ á á ááľ áĽáŤá á¨áááĽááśá˝á áĽááľ áá¨áá áá ááťá¸á á áŁá á áá ááᢠááἠáá¤áśá˝áĄ

á áá¨á¨áťáᣠá ááááŞáŤ á¨á°á¨ááááá á¨áĽáá áá´á áĽáááá¨áľ get áĽá á¨ááŤá á áľááá§ááĄ

áĽáá
áá ááá áááŞáŤáá˝ ááá
áá¸áᢠá¨ááŞáášá áá¤áśá˝áĄ

9. á¨áááľ áá¨áŤ
á áá¨á¨áťáᣠá á ááá áŤáá° áĽáŠ á¨áĽáŤ áŤá áĽááľááᣠááá áá á¨áĽáą áá á¨ááŤááłáľáŠáľ ááá á˛ááááľ áááá á¨á áá á áľá°áłá˝ ááᢠá¨áŤáłááľáŤ ááá ááᢠá¨ááá á¨DataStax áľá ᨠáὠᨠHBase áľáŞáľ 0.98.6-1á á¨áᎠááĽá ᨠNoSQL áá¨ááť áľáááśá˝ NTᢠáááľ á¨á°á¨áááá á 40 ááŽá˝áŁ 100 áŁááľ á¨ááἠáá á áŤááᣠá SSD áľáŤááŽá˝ á áá áá ááᢠᨠRead-Modify-Write áá¨áŤ áá¤áśá˝ á¨áá¨á°ááľá á áłáá°ááá˘

áĽá áĽáľá¨ááŁá áľá¨áľáŁ ááŁáĽ á¨á°áŤáá°á á 100 ááááŚá˝ áĽááŽá˝ á˛ááᣠá16 á¨HBase ááśá˝ á°áá á¨DataStax áá¨áŤ á á°á¨ááľ 10 ááááá˝á á áłááˇáá˘
á¨áĽá áááľá°á 16 ááśá˝ áááŤá¸á áĽáľáá ááᣠááá áá áĽáŤááłááłá¸á 64 áŽáŽá˝ (áá) áľááá¸á áĽáá áĽáľáá á áá°ááᣠá¨DataStax áá¨áŤ 4 áĽáť á ááᢠá áá á áŠáᣠá¨SSD áľáŤááŽá˝ á áá¸áᣠáĽá á°áá HDDáá˝ áĽá á á˛áľ á¨HBase áľáŞáľ áľáááᣠá áááľ áľá áŤáá á¨á˛áአá á ááá áĽááĽáá á¨ááŻá (á 5-10 á ááś á ááá˝ ááłáŤá)ᢠáŤá ááᣠáá áá áá á áááľáŹáľ áĽááááŤááᢠá¨á áá á¨áĽ á ááĽáŽá˝ ááŁáŞ áá¸áᥠááŁáŚá˝ á¨0 áĽáľá¨ 50 áááŽá áááá˝ á áááá° áá¨áááá (áááľáᣠá áá á¨áą á áĽáŤááłááą áá á á˛áľ)ᢠá áá á¨áĄ á 64 áááá˝ á¨á°á¨áá 50 áááŽá ááááŚá˝á áááᢠááááš crc32 á áá áá áá˝ á°á°ááááᢠá¨á°áá á¨áĄ á ááĽáŽá˝ ááŁáŞ áá¸áᣠáĽá MSLAB áá áˇáᢠ40 ááŽá˝á áĽááľáááŤááᣠáĽáŤááłááą áá 100 á¨áááá° áááá˝á áŤááŁá áĽá áá˛áŤáá ááĽááá áááá˝ 100 á¨á°áá አáŁááśá˝á áĽáá˝áááá˘

ááááŤáĄ 16 áłáłááľ áĽá 16 á áá¤áľ (á˛áአXeon E5-2680 v4 @ 2.40GHz * 64 ááŽá˝)ᢠá¨HBase áľáŞáľ 1.2.0-cdh5.14.2á˘
á ááŤá áá¤áą á á°á¨ááľ áá° 40,000 ááááá˝ á¨áá á á˛áá áá á á¨DataStax áá¨áŤ á áĽá á á¨á°áťá ááᢠááá ááᣠááá¨áŤ ááááá˝áŁ áááłááš á áľááš ááťáťá áá˝ááᢠááá áľáŤáá˝ á á ááľ á áá á¨áĽ áĽáť áĽá á áአáááá˝ áĽáť á¨áá¨ááá áááá¸á á áŁá á á áŤáŁáŞ ááᢠá¨áááąá áá ááá á¨ááŤááá "áľáŠáľ" á¨ááá áľáĽáľáŚá˝ áĽááłá áĽááľáĽá˘ áľááá ᣠáááąá á áľááá ááááŚá˝ (10 áŞáŁ)ᣠáĽáá˛áá á 100 áĄáľáá˝áŁ áá° á áŤáľ á¨á°ááŤáŠ á°áá á¨áŚá˝ ááááá¨áľ áĽááááŤááᣠáá á á¨á°á á¨ááľá áááá˝ ááá áá° 50,000 áááľáŁáᢠá¨áłá˝ áŤáá ááŤá 40 ááŽá˝ áĽá¨á°áŠ ááᣠáĽáŤááłááą áá á¨100 áááá˝á áľáĽáľáĽ áĽáŤáá á áĽá áá˛áŤáá á¨áááá° 10 áŞáŁ áá° áĽáá፠áááá˝ áá˝ááá˘

ááááŤáĄ 16 áłáłááľ áĽá 16 á áá¤áľ (á˛áአXeon E5-2680 v4 @ 2.40GHz * 64 ááŽá˝)ᢠá¨HBase áľáŞáľ 1.2.0-cdh5.14.2á˘
á áááą áá áľáŁ áá áááá፠áĽá áá á°á¨ááááᢠá¨áá áĽáá°ááłá¨áᣠáá á á°áŤá á¨áá á áááá ááľ á ááľ ááłá¨ááᢠáááᣠá°á¨á᪠áááľ á á áááá áá áľá á°á¨áľáˇáᢠá¨ááá°á ááľá°áśá˝ á á°ááŤáŠ ááááŤáśá˝ áá¨á°áłáᢠá ááłááľ áá ááŽá˝ ááá¨áŁáᣠáĽáá°áá á˛ááአáá ááł ááááᣠáĽá á ááłááľ áá á¨áśáľá°á ááá áá°áá áŞáŤáá˝ á áááľá°á áá áááľ ááĽá¨ááá˘
á¨ááŁáĽ áĽá á¨ááťá ááááá˝ áHBase á áŁá á¨ááŤáľááááľ á¨áĽáŤ áŤááá˝ á ááą áá¸áᢠáľááá˝ á¨á°ááá áá ááá˝á áĽáť áá ááᣠáááłá áĽáŤááłááłá¸á 100 áŁááľáŁ á 10-50 áááĽáŤáŽá˝ á¨á°á¨áááᣠá á°á¨ááľ á ááś áşáá˝ á¨ááá አááááá˝á ááááľ áá˝ááᢠáááŁáĽ áĽáť áá ááá˝á á°ááłáłá ááᢠáá¤áśáš á¨DataStax áá á¨á°áááľ á áĽá á á¨á°áťá áááá¸áá áἠááŁá áááŁáᣠá á°ááá á 50-áŁááľ á¨áá áá áá á ááááŤáľá˘

ááááŤáĄ 16 áłáłááľ áĽá 16 á áá¤áľ (á˛áአXeon E5-2680 v4 @ 2.40GHz * 64 ááŽá˝)ᢠá¨HBase áľáŞáľ 1.2.0-cdh5.14.2á˘
10. áá°áá°ááŤ
áá áľáááľ á áááá á¨ááľ á áŁá á°áááá ááᣠááá áá á¨áĽá áááŞáŤáá˝ á°á˝áĽá á ááłáá áᢠá ááłááśáš á°ááľááá ááá áá á áá¨á¨áťá á¨áá¨áŤ áľáĽáľáĽ ááľáĽ á áá°áŤá°áąáᢠáááłáᣠá¨ááááŞáŤ áá¨áŤáá˝ áá¨ááá á¨áá¨á¤áľ á´áá˝ áĽá´áśá˝á á áá áá á¨áááá¸á á¨DATA_BLOCK_ENCODING áááŞáŤ áĽáá á áááł á ááłáŠáᣠáá á á áááá° ááááአáá¨ááá˝ ááá¨áłáľ á¨ááťá ááᢠáĽá ááĽá áŤáá¸áá á°á°ááá áááŽá˝ á˛á ááᣠáĽá ááš á¨áá°á ááá áá˝ááᢠá á á áááᣠHBase á á°áá áľááá á¨ááἠáĽááŽá˝á á˛áá á áŁá áá¤áłá ááá á¨áá˝á á áŁá á ááŤáŤ áĽá á ááᣠá¨á°áá°á á¨ááἠááł áááľááá˘
á á á áááł áŤáá¸áááŠáľ ááá áĽááłá á¨á°á°áááľáŁ á áááá áááĽáŤáŤáľ á°áľá°á ááᢠá°áááŽáá áĽáá˛áŤáŤáá ááá áááááá á ááááŁáŁáľ áĽáá˛ááŤáŠ áĽáááĽáááłááá˘
ááá: hab.com
