áĽáá°áá á á¨ááľá áľá áłáá áááŽá áĽáŁáááᣠá Sbertech á¨áááá áĄáľáá˝á HBaseá áá°ááŁáŤá áá¨á áá¨ááť áá áá ááá¨á˘ á ááĽááľ áá°áľ ááľáĽ, áĽá áľáááľ áááááá áĽá ááááá˝ á¨ááááŠáľ áááľ á°á¨áá˝áˇá (ááĽááá˝ á áá áĽáá°ááá á°áľá áĽáá°áááá). á¨áá á áłá˝ áŤááľ ááá áá¨áŤáá˝ á¨á°á¨ááááľ á HBase áľáŞáśá˝ 1.2.0-cdh5.14.2 áĽá 2.0.0-cdh6.0.0-beta1 ááá˘
- á á ááá á ááá´áá¸á
- áHBASE ááἠá ááťá áá
- á¨ááŁáĽ ááἠá¨HBASE
- á¨ááἠáá¸ááŤ
- áŁá˝ áłáł á ááľáŹáľ MultiGet/MultiPut
- á°áá á¨áŚá˝á áá° áááá˝ á¨áá¨ááá áľááľ (áá¨ááá)
- á¨áľá á°áľ ááťáťáᣠáá á áá áĽá á¨ááἠá áŤáŁá˘
- á ááĽáŽá˝ áĽá á ááťá¸á
- á¨ááááľ áá¨áŤ
- áááśá˝
1. á á ááá á ááá´áá¸á
á¨áá áŁá á፠ááľá°á á ZooKeeper ááľááá ááááľ áá á¨áááá á¨áἠááľ áŤáłááŁá áĽá á˘á áá á¨ááłáá á°ááŁáŤáľ áááŁá áŤáá˘
2. á HBASE ááἠááá
á ááááŞáŤáŁ áááá ááłá áĽáááá¨áľ - put(rowkey) á áá áá á¨ááá áĽá´áľ áááá áá° á á¨á´á áááᢠá°áá áá á ááááŞáŤ hbase:meta á áá á¨áĽá á¨ááŤá¨áὠᨠRoot Region Server (RRS) á¨áľ áĽáá°ááá ááá á áá áľ. áá áá áá¨á ᨠZooKeeper ááá ááᢠá¨á፠á áá RRS á áá°ááľá hbase:meta á áá á¨áĽá áŤááŁáᣠá¨á¨áľáá áŞá á á°áá¨á (RS) á ááááľ á áá á¨áĽ ááľáĽ áá°á áá°á rowkey áá¨á á¨áá¨áá¸áľ áááááľ áĽááłáá áľ áá¨á áŤááŁáᢠááá°ááľ áĽá á, á¨ááł á áá á¨áĽ á á°áá áá á¨á°á¸áá áá áĽá áľááá á°á¨áłá áĽáŞáá˝ á ááĽááľ áá° á áá¤áľ.
á ááá á ᣠRS ᣠáĽáŤá á¨á°á¨á° á áá ᣠá ááááŞáŤ áá° WriteAheadLog (WAL) áá˝áá ᣠáá á áĽáá˝áľ á˘á¨á°áľ ááááá á áľááá ááᢠá¨á፠áááĄá áá° MemStore áŤáľáááŁáᢠáá áá°áá°á ááá á¨á°á°á¨á°áŠ áááá˝á á¨áŤá á¨áá á°á¨ áľááľáł ááľ ááᢠá áá á¨áĽ áá° áááá˝ (áááááŽá˝) áá¨ááá áá˝áá, áĽáŤááłááąá á¨á°á¨ááá áááá˝á ááá. áá á¨áá°á á áááá áááááľ áááá˝á á á°ááŤáŠ á ááááŽá˝ áá áĽáá˛áŤáľááᥠáŤáľá˝áááłáᢠááá áá, á¨áá ááá፠ááá˝ááľ á˘áá¨áá, áá á ááá ááłáŽá˝ áá áĽáá°ááá°áŤ á áá áĽáááá¨áłáá.
á MemStore ááľáĽ áá¤áľ áŤáľáᥠá ááᣠáá¤áą á á°áłáŤ áááł áĽáá°á°ááá áá°áá áá ááá˝ áá°á ááᢠááá áá, á áĽáááą, á áá áŁá á፠ááľáĽ áĽáť á¨á°á¨áḠáĽá áá° á˛áľá á¨áá°áá°á á¨á°áá°á áá áŤáá á áá ááá á á á˛áľ áá¨á á˛áá áĽáť áá.
ᨠ"á°áá" ááááá á˛áŤá¨ááá ááᥠá á áŤá á áá°á¨áá. áĽááą á ááá áĽáá°á°á°á¨á ááááľ á°á°áááŁá¸áá ᣠáĽá áĽááą áŤáą á á ááá˝ 7 áá á á áá áááá á¨á°ááá¸áá áááá á¨áłáá á°ááŁá á áá áŤá áľ áá áá¨á°áłáá˘
á HFile á áááľ ááľáĽ áŤá áááá˝ á á¤á˝á˛á¤áá¤áľ ááľáĽ áá¨ááťá áĽá á¨áá áá° áá áĽáá á áĽáá á áá°áśá˝ á°ááá¨áá, áá á á ááá áľááá˝ áááá˝á áá° áľááá áááá˝ áŤáá áłá ááá ááá áłáá°áá. á¨áá á áá, áá ááἠá ááŤááĄá áľ áá áĽáť áá°ááłá¨á á˝áá ááá¨áŤá (áá°áá áľáá˝ ááá°á áĽááááłáá).
á¨áá á¨á°áááá á¨ááŤá áá°áľ á á°á¨á᪠á áŁá áá¤áłá á¨áá á á°áŤá á á, ááááŁáľá á¨áá á¨ááἠááł á ááŤáŤ áá - BulkLoad. áĽá áĽáŤáłá˝áá áŤáłá˝áá á¤á˝ áááá˝á á áááá áĽá á á˛áľá áá á ááľááἠáá áá ᣠáá á á áľááá áĽááľáááá áĽá á áŁá áĽáŠ ááĽááśá˝á áĽááľááłáŤ áŤáľá˝áááᢠáĽáá° áĽáááą á¨áá, áĽáá áŤáá áá°áĽ HBase á áá°áá, ááá áá á¨áááľáá á˝ááłáá˝. á¨áá á áłá˝ 16 RegionServers áĽá 16 NodeManager YARN (á˛áአXeon E5-2680 v4 @ 2.40GHz * 64 ááŽá˝)ᣠHBase áľáŞáľ 1.2.0-cdh5.14.2 áŁáŤá°á° áááľá°á áá á¨ááľááť áá¤áśá˝ á áá˘
áĽáá
á á áá á¨áĄ ááľáĽ áŤááľá áááááŽá˝ (áááá˝) áĽá áĽáá˛áá á¨áľááá á áľááááá˝á á áá¨áá á¨ááá¨áľ ááĽááľ áá¨áá áĽááłááĽá áá¨áľ áá˝áá. áĽáá˛áá, ááĽááą á áá
áá áá á ááá°áá. áľááá
áĽááŽá˝ á¨ááŁ/á°á¨ááľ áá᪠áá°áŁáᣠáľáá˝ áĽááŽá˝ á á ááľ ááá áá á¨á°áŤá°áą ááááŚá˝ áĽááľáŁ ááá ááá˝ áááŽá˝ áĽáŠá áá¸áá˘
áĽáá˛áá á á ááľ áá áá° áááľ á á¨á´ááá˝ ááŤá áááá áĽá ááĽááąá á áĽáĽá ááááľ áá˝áá. á¨áá á áłá˝ 10 áŞáŁ áĽááŽá˝á áá° áááľ á á¨á´ááá˝ á á ááľ áá ááá á áĽáŤááłááą á 600 áᣠ/ á°á¨ááľ (á á á ááá 1275 áᣠ/ á°á¨ááľ) ááĽááľ áá¨á°áłá ᣠáá á áá° á ááľ á á¨á´á 623 áᣠ/ á°á¨ááľ á¨ááá ááĽááľ áá áááŁá áá (áááá¨áą) á¨áá ááĽá 11)
ááá áá ᨠ50 áŞ.ᣠááááĽáľ áŤáá ááá°áá áŠáŤ á¨ááá¨áá ááĽááľ á áľááš áĽáŤá°á áááá áŤáłáŤá áá
á áá° áá°áĄ áĽá´áśáš áĽá¨á°áá¨á áááá áŤááááłá. á á°ááłáłá áá á HBASE á áŤáą áá ááá á áááľ áááľ áĽááłáá°áá ᨠáááááľ á¨ááĽáá ᣠá¨áą á¨ááááá á ááááŞáŤ ᨠhbase:meta áá¨á ááľá áľ áĽá HFiles á á¨á¸áá á áá á¨BlockCache áááĽá áĽáá°áá áŤáľááአáĽá áŤáľááᥠMemStore ááľ áá° á˛áľáᣠáŁáś áŤáááá˘
3. ᨠHBASE áá¨áá ááá áĽ
á°áá áá ááľááá áááá áá¨á ᨠhbase: meta (ááĽáĽ 2 áááá¨áą) áĽááłáá áŤá°áĽá, áĽáŤáá á¨ááááá ááá áá°áá¨áá˝á áľ RS á ááĽáł áááłá. á ááááŞáŤ, áááá á MemCache ááľáĽ áá¨áááá. áĽááŤá áá¨á á˘ááá áŁáááá áááá á áĽáááŤáź ááľ ááľáĽ áĽá á áľááá á¨ááá á HFiles ááľáĽ ááŤááłáᢠá ááá ááľáĽ áŤáá áá¨á á¨á°áá á áĽáááŤáź ááľáĽ ááááŁá áĽá á áááĽáá áĽáŤá á ááĽááľ ááááłáᢠá HFile ááľáĽ áááá á á áááŤáááľ ááŁá áá á Bloom ááŁáŞáŤ á á ááá ᣠáááľáᢠáľáá˝ áá á áŤáá áá¨á áŤáá á á áá áá ááá á¨áááááá ááá áĽáá°áŤá áá˛áŤáá áááľáá áĽá áŤááá áá°áááĽáá áááłáá˘
á¨áĽááá
áśáľáľ áááŽá˝ áá¨á á¨á°á¨á°áᣠRS ááá˝ áááĽáŤáᢠá á°ááá á°áá áá áľáŞáľ áĽáá˛á°áŤ á¨á á¨á áĽá á¨á°áá á¨á ááľ ááá áľáŞáśá˝á á á ááľ áá ááľá°ááá áá˝ááá˘
4. á¨ááἠáá¸ááŤ
MemStore áĽá BlockCache ááľ áĽáľá¨ 80% á¨ááááá á¨ááá áá á áá¤áľ áá á°á¨ áľááľáłá áááá (á¨á°áá¨á á RS á áááááľ á°ááŁáŤáľ áá á¨á°ááá á)ᢠá¨á°ááá°á á¨á á ááá áááł áá°áśá˝ á ááľ á áááľ ááἠáĽáá˛á˝á áĽá áá˛áŤáá áĽáá˛áŤáᥠá¨áá, BlockCache á ááááľ áĽá MemStore á áá¨áá ááááŤáłá áá, ááááŤáąá áá¨áá áááťá áá° áá¸ááŤá ááľáĽ áááŁáĽ á ááááŁá áľ áá, BlockCache á á°á°ááá áĽá á áá áááá. á¨BlockCache ááľ áááľ áááá˝á áŤáá áááĄ- LruBlockCache (áááá ááá áá) áĽá BucketCache (áĽááá áá á¨ááá á᪠ááá á á¤áľá¤áľá˛)ᢠBucketCache áĽá á¨ááŁáĽ áĽáŤááá˝ á˛áአáĽá ᨠLruBlockCache áá á¨áááŁáŁá á˛áá áá á áá° ááťáť á°áĽáłá˘á áá áľáŤ áááŤáá. á á°ááłáłá áá á¨á°áá á áá¸á፠á¨áá áá á¨á áááá á¨áá°á áá᪠áá á á á¨ááĽááľá ᣠáá áá°áá á á ááá˝ 8 áĽááááłáá á˘
áá á
ááá á áá¤áľ á ááľ BlockCache á áᣠáĽá ááĽáŤááłááą á á¨á´á á ááľ MemStore á á (á ááľ ááĽáŤááłááą á ááľ á¤á°á°áĽ)á˘
áĽáá´áľ
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
áá á áĽáŤááá˝á (á áá/á áľáááĽ/á°áá) ááŤááľ á áŁá ááľ ááá ááᣠáľááá á¨á°áťá áá° áááá ááá áááá ááľáĽ ááŁáá á ááŚáľáŁ áá á ááá á¨áá á¨á ááťá¸á áĽáľááľ áĽááľáłáá áŤáľá˝áááłáᢠáá á á°áá áá˝áá áĽáŤ áĽáááľ áá, ááá áá á ááŤááĄá áľ áá á¨áá¨á°áá ááĽááľ á á. á¨áłá˝ áŤáá ááŤá á¨MemStore 50 ááááŚá˝á áááá ἠáá áŤáłáŤáᢠááŁáĄ á¨á°á¨áááá á á ááľ áá áá áĽá á ááľá ááá á áĽáŤáá ááľáĽ áŤááľá áááá˝ áĽááľ áŤáłáŤáᢠáĽáá áá¨áľ áá˝áá á á ááľ áĽáŤá ááľáĽ áá° á ááľ áşá áááá˝ á˛á¨ááŠ, á¨ááľáá¸á፠áá ááááłá, áááľá. ááĽááľ áá¨ááŤá. ááá ááᣠMSLAB áááł á ááŁáŞááľ á ááᣠá¨áá áá°áĽ á áá á¨á ááťá¸á ááá á áĽáł ááááŤáᣠáĽá á áááᥠááľáĽ áŤáá á¨ááἠáá á áľáá á¨ááᣠá¨áľáŤá áá áá¨áááá˘
áá¨áŤáá˝ á¨á°á¨ááááľ á á¨áášáá áá˝áᣠ8 áŽáᣠáĽáľá HBase 2.0.0-cdh6.0.0-beta1 áá ááá˘
ᨠMSLAB áááł á á á˛áľ áĽá á á áŽáá áľáááľ ááἠááááá ááááŤáľ á¨áá¨á°á°áá ááá áľáĽááŁáŞ áááááľ á¨á°áá¨á° ááᢠáĽáá° áááľáᣠMSLAB á˛áá ááᥠá á áááŤá áááł áá° áľááá˝ á ááśá˝ (áááá˝) ááááŁá áĽá á ááá ááľáĽ áá¨ááááᢠá áá¤áąá, á á°á á¨áá á¨ááἠááŹáľ ááľáĽ áŤáá á¨áľáá˝ áá á á¨á°áá°á á áá á á˛á ááĽ, á áááá á á¨áá°á áááł ááááłá. á áá á áŠáᣠáá á áááłá ááĽááľá á ááá¨ááᣠááááŤáąá á áᲠááááŤáľ á¨áá°á á¨áá¨á áá°áľ á ááŤááľá áľ áá áá° ááááŤáá˝ áľááááŤá˘ áĽáŠá áááľá á ááŁáĽ áá á á°ááłáłá áá á ááľááἠáá á áá á˝áá ááľáĽ á¨áááľ áá á áá¨áá ááᢠá¨áá¨áť á áá MemStore á áá° á˛áľá á¨ááŤáľá°áŤáááá á¨ááłá˝ áľáááá áŤáľáŹáą ááá BulkLoad á á¨áŤá á˝áአáĽáá°ááá¨á°áľ áἠááŁá áááŁáᢠá¨áá á áłá˝ áŤáá á áá á¨áĽ á¨ááŤáłá¨á á¨MemStore ááľáá (áĽá áá°ááłáłá áá á) ááἠááááá áŤáľá¨áľááᢠááá áá, áá áá á áá¨áá á¨áá°áąá áá áá° áá°á áá áĽááááłáá.
ááá°áąá á¨áá¨áá á á°á¨á᪠áá¨ááá á ááá áá¨ááá áá¨áłá, áááľá. á¨á á¨á´á áááá. áá
áá° áĽáŤááłááą ááá á¨ááᥠáĽááľ áĽáŤááá˝á áŤáľá¨áľáá áĽá áá° áááľ ááľáĽ á¨ááᥠá¨áá áááš áĽáŠ áá áááŤáá˘
6. á°áá á¨áŚá˝á áá° áááá˝ á¨áá¨ááá áľááľ (áá¨ááá)
HBase á¨ááá áĽá´áľ áá¨ááť áľááá áĽá áááá á¨áá¨áááá á ááá á ááá áá¨ááá á ááá áááá˝ áĽáŠá áá¨ááá áĽá á á áŁá á áľááá ááᢠáááłá áĽáá˛á ááááąá á áá á¨áĽ á áŚáľáľ áááá˝ áá¨ááá ááᥠáá° áŚáľáľ áááá˝ áĽáá˛á¨áá áŤá°ááá.
á áá áá á¨á°áŤáá áá¨á áááłá á¨á
á áĽá´áśá˝á á¨áááľá á¨áá áá
áá° á¨áá°á ááĽááľ ááááá áááŤááᣠá áĽááááš á á°ááłáłá á áá á¨ááááŠáľ áááłááĄ-
1000001
1000002
...
1100003
ááááš áĽáá° áŁááľ áľááľá áľáááááĄáŁ ááá á°ááłáłá ááááŤá áĽá áá á á¨áááá˝ áĽááľ á¨ááŤá¨áá˝á áľ ááá #1 ááááᢠá ááŤáł á¨áá¨ááá áľááśá˝ á ááĄ-
HexStringSplit - áááá áá° áááłá´á˛áá áŽáľ á "00000000" ááá = "FFFFFFFF" áĽá á á፠á áŠá á¨ááŽáá˝ áá áááá¨áá.
UniformSplit - áááá áá° áŁááľ áľááľá ááááŤá á "00" ááá ááľáĽ áŁá áááłá´á˛áá á˘ááŽá˛áá = "á¤áá¤á" áĽá á áá á áŠá á¨ááŽáá˝ ááá˘
á á°á¨ááŞá, ááá¨ááá áĽá ááááá áááááá ááá ááá á¨ááá áľáĽáľáŚá˝á áááá˝ áá˝áá. ááá ááᣠá áŁá ááá áĽá áá¤áłá á¨áá á ááŤá¨áŚá˝ á ááą áŠáááá áľáááľ áĽá á¨áá˝ áááááľ á á ááá ááᣠáááłá á áŁá ááá á¨áááľ áĽááľ áŁááľ áááá á CRC32(rowkey) á°ááŁá áĽá á á¨áľá ááá á áŠá á¨ááľáŹáľá˘
hash + rowkey
á¨á፠ááá áá¨ááá˝ á áááá˝ áá áĽáŠá áá°áŤáŤáᢠá ááŤááĄá áľ áá á¨ááááŞáŤááš áááľ áŁááśá˝ á ááá ááŁáá áĽá ááá ááá áááŤá. RS áĽáá˛áá á ááá ááľáĽ áŤááá á¨ááἠáĽá á¨ááá áá á áááŁá áŤá áĽá áá°áŚáš áŤáá, á áŤáľ-á°á áá° áááá˝ áá¨ááááľ.
7. á¨áľá á°áľ ááťáťá áĽá á¨ááἠá áŤáŁá˘
ááĽáŤááłááą á¨áááá˝ áľáĽáľáĽ á ááľ ááá áĽáť á°á áŤá áľáááᣠá¨RS áĽáá˝áľ ááá á¨áľáŤ ááĽááľ áá á°áŤááá áá á˝ááŽá˝ áááľáá áááá á áľááá áá¨ááá˝ á á¤á˝á˛á¤áá¤áľ ááľáĽ áá¨áá¸áľ ááᢠá áá¤áľ á˛ááľá ᣠááłá áá áá á¨ááŤá¨á á ZooKeeper node áá á¨áἠááľ áŁáááአááᢠá¨á፠áŤáááááá ááá ááá RS áááľáŁá áĽá á¤á˝ ááááš á á°á¨ááá á¨ááá áľáááľ ááľáĽ áľááá¨ááš á á˛áą áŁáá¤áľ áŤááŁá¸áá áááĄá áááááá áááĽááᢠááá ááᣠá ááłááľ áá¨ááá˝ á MemStore ááľáĽ ááá áľááá˝á áĽá áá° HFiles ááááŁáľ áá áľáááá áŤá¸áᣠá á¤á˝á˛á¤áá¤áľ ááľáĽ á¨á°á¨áḠWALᣠá¨ááááá˝á áłáŞá áá°áá á¨á áľ áááááľ áá á ááᢠáááŚáš á¨á°á°áá አá áá, RS ááĽáŤááá˝ ááá˝ ááľá áľ áá˝áá, ááá áá áĽáá áľáá´á á ááłááľ áá¨ááá˝ áĽá áĽááąá á¨ááŤáááá áá°áśá˝ á á°ááŤáŠ á áááá˝ áá áá°ááá áĽáááł áááŤá, áááľá. á áŤáŁá˘ áĽá¨ááá° ááá˘
áá˝áአáááľáá áľáá áá¨ááá áá - áá á á°áŤá áááá˝á áá° áĽááą á°á áŤá áá°áááľ á áááá˝ (ááááťá¸á á áááá áľ áŚáł) ááááłááłá, á áá á ááááŤáľ á áá áá°áľ ááľáĽ á ááľááá áĽá á á˛áľá áá áŤáá áááľ á á¨áá°á áááł áá¨ááŤá. ááá ááᣠáá°ááľáŁ á¨ááἠááłá¨áť á ááŤáľá°áá áááł á¨á°áá á ááᢠá á°á¨ááŞá, major_compaction áááá HFiles á á ááľ ááá ááľáĽ áá° á ááľ ááá ááááľ áŤá¨áááá, áĽá áĽáá˛áá áĽáá° á°áá á¨áĽ ááźáśá˝ áá¨áá áŤá¸áłá. áááłáᣠááá¨áľ áŤáá áľ á¨áááŠá áľáŞáśá˝ áĽááľ ááá áĽáá á á áŤá á¨á°á°á¨áá áľá á¨á áááľ ááá áááá˝ áľá˝ááá á˘
áá á á°áŤá á HBase á á áŤá áá á áŁá á áááłá á°á˝áĽá ááá¨áá. á¨áłá˝ áŤáá ááľá á áá á¨ááἠáá¨áť ááááŤáľ á ááťá¸á áĽáá´áľ áĽáá°ááá° áŤáłáŤáᢠáĽáá 40 ááŽá˝ áá° á ááľ á á¨á´á áĽáá´áľ áĽáá°áťá áĽá 40 ááŽá˝ á á ááľ áá ááἠáĽáá°ááŤáἠáá¨áľ áá˝áá. á¨á áťáťá ááŽá˝ á¨á áá áĽá á°á¨á᪠HFiles áŤáááŤá, á ááá˝ ááŽá˝ á¨ááá áĄ. á áá¤áąá, áĽá áĽá á°á¨á᪠áá¨ááá˝ á¨áá á°á¨ áľááľáł ááááľ á ááŁá¸á áĽá á áá¨á¨áťá áᲠááľáŤáľ ááááŤá, áá á áááá áľáŤáá˝ á á°á¨áŁá á˝áŁ áŤá°áááá. á¨áá áá ááá፠áĽáŤ áááá á¨á°áá á¨áá áááľáŤážá˝ á áá˝áłáľ áááłáááľá áá°áá á¨á áľ áĽáá˛áááľ á áľáááá˘
áá°áá á¨á°áŤáá°á á 3 DataNodes áĽá 4 RS (á˛áአXeon E5-2680 v4 @ 2.40GHz* 64 ááŽá˝) ááᢠHBase áľáŞáľ 1.2.0-cdh5.14.2
á "ááĽáł" á á¨á´á áá áá áá áá¨áŞáŤ ááááŠá áἠááŁá á¨áááŁá áá¨á á áááľ á¨á°ááá áľ áĽá á¨á°áá á á áľ ááᢠáá¨áá á ááŤááĄá áľ áá áá áá° á¨á°áłáłá° ááá˝ áá፠áĽáá°áá˝á á ááľáá áá á ááľ ááá፠áá áᢠáááŁáŤáľ á á˛áľ áá¨á á¨ááŤááá áĽá áá° á á¨á´á á¨áťáá áá°áľ á°ááá¨á˘ á¨á፠á áá áá˛áŤáá á áá áĽáŠ áĽá á¨á°ááá áĽá´áľ á¨á°áťáá áá áááááąá á áŁáŤáᢠáá áá°áľ á áá°áľ áá áĽáŤáᣠáá áŽááááľ 200 áá áŤá á á°áŤááˇá áĽá á ááľá ááľááľ á áá°áááá áᢠááááŁáľ á˝áአáĽááĽáá á ááłáá áĽá á á¨áá°á áááľ áá áĽáť áá, áľááá áĽáá°áłáá°á á¨á áťáťá áĽá á¨ááá ἠáá°áśá˝á ááá áĽá áĽáá°ááá áŤá á¨áᲠáááá˝á ááá¨áá¨á á˝áłáľ ááŤááľ á¨á áá á áľá°ááá áá.
áĽáá˛ááᣠMajor compaction ᨠMemStore áááłá á áááłáá ᣠáá° á˛áľá áááá°áľ áĽá áĽáąá ááá á áá ááá˝ (connection.getAdmin() .flush(TableName.valueOf(tblName))) áá áá áŤáľáááááłáá˘
8. á ááĽáŽá˝ áĽá á ááťá¸á
áá°á á˛á áĽáá°á°áááá HBase BulkLoadá á áá°áŤá áľ áá ááá ááá ááľá¨á á áááááá áľ áŚáł áľááá áľáŹáľ áŤáłáŤá. áááᣠáá áá áĽáááš áľáááśá˝ áĽá á°áá˝ á°ááťá ááááᢠááá áá áá ááłáŞáŤ á áľááá áĽááŽá˝ ááľáĽ áá¨áá á á áá ááá¨áá¸áľ á¨á áá á ááş á˛áá áá°áą áĽá á°ááłáłáŞ á¨ááá ἠáĽá á¨ááá áĽáŤááá˝á á¨áááá á¨áá á¨áá á¨á°ááášáľ ᨠGet and Put áľáááá˝ áľáŤ áá ááááᢠááἠáááŞáŤáá˝á áááá°á á áá á¨á°ááŤáŠ á¨á°áá á¨áĽ áááŞáŤáá˝ áĽá á ááĽáŽá˝ áá á°áŤááˇáá˘
- 10 ááŽá˝ á á°á¨áłáłá 3 áá á á ááľ áá á°ááá¨áá (áá á á¨áá áĽáá áá)á˘
- á áĽáá ááľáĽ áŤá ááá ááŽá˝ á¨áá áŠá áľ áá á ááŤá áĽá á¨áĽáá á á áŤá á¨áá¨á¨áť áá¤áľ áá áá˘
- ááá ááŽá˝ á¨á°ááłáłá á á¨á´á áá á áá°áá.
- á¨áĽáŤááłááą á¨áá ááá á áá á ááľ á ááľ áľáá áŽááááľ á°áŤááˇáá˘
- áĽáŤááłááą áĽááł á¨áá¨á°ááľ á°ááŁáŤáľ ááľáĽ á ááąá áĽáť áá˝ááá˘
- á áľááá á
- á áá
â á áá+á áľáááĽ
- áĽáŤááłááą áĽáá 50 áľáááážá˝á á á¨ááááá˘
- á¨áááá áá á 100 áŁááľáŁ 1000 áŁááľ ááá 10000 áŁááľ (á áááá°) ááá˘
- áĽááŽá˝ á á°ááŤáŠ á¨á°á á¨á áááá˝ (á ááľ ááá ááá 10) á°ááá¨ááá˘
- áĽááłááš á á°ááŤáŠ á¨á á¨á´á ááźáśá˝ ááľáĽ á°áŤáá°áá. áááŞáŤáá˝ á°ááá áááĄ-
- BlockCache = á ááˇá ááá á ááˇá
- BlockSize = 65 KB ááá 16 KB
- áááááŽá˝ = 1, 5 ááá 30
- MSLAB = áá
áˇá ááá á°á°ááááá˘
áľááá áĽááłá áá áá áááľááá˘
á. MSLAB áááł á ááˇá/ á ááˇáá˘
á. á¨áá¨á°ááľ áááááá˝ á¨á°áááĄá áľ á áá á¨áĽ á°áá á¨áĄ BlockCache = true/ none, BlockSize = 65/16 Kb, Partition = 1/5/30.
á. áááá፠áá° GZ á°áááĽáŻáá˘
á. 10 ááŽá˝ á á ááľ áá á°ááá¨áá 1/10 put/get/get+ put Operations á áá
á áá á¨áĽ ááľáĽ á¨100/1000/10000 áŁááľ ááááĽáľ ááᣠ50 áá ááá˝á á á°á¨áłáłá (á¨áááá° áááá˝) á á¨áááááá˘
á . ááĽáĽ d áŚáľáľ áá á°á°ááá.
á¨. á¨ááá ááŽá˝ á¨áľáŤ áá á ááŤá áá áá˘
ááá ááá á¨áá˝á áĽáá¨áľ á°ááľááᢠá¨áááᥠáá á á˛á¨áá ááĽááą áĽáá°ááááľ ááá áá¸ááŤáá áá°áá¨á ááááá áŤáľá¨áľááᢠááá áᥠá¨áĽáŤááłááąá áá¤áľ á°á áĽá á°á¨á áĽá á áľáááááľ ááá¨áłáľ áá á ᣠáľáááá á¨á°á°á á°á á áá¨á áá° ááľááŤá áŞááŹá˝á á°ááŁá ááĽááľ ááľáĽ ááĽáˇá ᣠáá á á á˛-áľáłá˛áľá˛ááľ á áá áá áľáááá áááááá áŤáľá˝ááᢠá¨áłá˝ áŤááľ áĽááŽá˝ ᨠPut áľáŤáá˝á á¨ááŤá¨ááá áá¤áśá˝ áá¸á. áá áľáĽáľáĽ 2 * 2 * 3 * 2 * 3 = 144 á ááŤáŽá˝ + 72 tk. á ááłááśáš áááľ áá á°á°áááá. áľááá á á á ááá 216 áŠáŤáá˝ á á-
áá¨áŤ á¨á°áŤáá°á 3 DataNodes áĽá 4 RS (á˛áአ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 áá, áĽá á¨áłáł ááśá˝ ááĽá ᨠRS ááĽá áŤáá° áľááá, á ááłááľ áááá˝ áᎠá áŤáŁá˘ á áá¸á. á°á
áᣠá ááľáąá áá áááášá áĽáááá¨áľáĄ-
á áá Get áĽááŽá˝á á¨ááľáá¸á áá¤áśá˝á áĽááááááĄ-
á¨áááá˝ áĽááľ á áááł á áĽáˇá, áá
á ááááŁáľ áá¨áá á á°áἠáá¸áᥠáĽá á¨á°áá á á áá¸á፠á áŁá á áá (á áľáłá˛áľá˛ááľ) áááŞáŤ áá. á á°ááĽáŽáŁ á áĽáŤá ááľáĽ áŤá á¨áááĽááśá˝á áĽááľ áá¨áá áá ááťá¸á á áŁá á áá ááᢠá¨áá°á áá¤áśá˝áĄ
á°á
á ᣠá áá¨á¨áť ᣠááááŞáŤ áŤá¨ááááá á¨ááááá áá´á áĽáá áĽá á¨á፠á áľáááĽ
ááá áááŞáŤáá˝ áĽáá
ááá
áá¸á. á¨ááŞáášá áá¤áľáĄ-
9. á¨ááŤá áá¨áŤ
á°á
áᣠá áá¨á¨áťá áĽá ááá áŤáá° á¨á á¨áá áááľ áĽááááŤááᣠááá áá á¨ááŤááťá˝á¨á ááá á˛ááááľ áááá á¨á áá áľáŠá¨áľ á¨ááľáĽ ááᢠá¨áŤáłááľáŤ ááá ááᢠá ááá á áłáłáľáłááľ áľá
ᨠáá˝ áá á áá˘
áĽá áĽáľá¨ááŁá áľá¨áľ ááŁáĽ á áĽááŽá˝ 100 ááááŚá˝ áĽá á 16 HBase nodes á°áŤááś áá á ᣠᨠDataStax áá¨áŤ á á°á¨ááľ 10 áşá
áŚááŹá˝áá˝ á áááá á áłááˇáá˘
á¨áĽá áááľá°á 16 á áááá˝ áááŤá¸á ááľáá áá ᣠáá áĽáŤááłááłá¸á 64 áŽá (áá) áŤáá¸á áááá¸á á áŁá âáĽáľááâ á áá°áá ᣠá áłáłáľáłááľ áá¨áŤ ááľáĽ 4 áĽáť áá¸á ᢠá áá á áŠá ᣠá¤áľá¤áľá˛ áľáŤáá á áá¸á ᣠáĽá HDDs áĽáŤáá ááá á¨á፠á áá á á˛áą á¨HBase áĽá á¨á˛áአá á ááá á áááľ áá á á°ááŁá á á¨áá°á á°á¨á á áá¨áá¨á (á áĽááł á¨5-10 á ááś)ᢠáááᣠáá á áá á áá áá ááááá áĽááááᢠááŁáŞ á¨á°áá á¨áĽ á áá áśá˝áŁ ááŁáĽ á ááá ááá ááľáĽ á¨0 áĽáľá¨ 50 áááŽá á áááá° áá¨áááá (áááľáᣠáááá á á˛áľ áá)ᢠá áá á¨áĄ á 50 áááá˝ á¨á°á¨áá 64 áááŽá ááááŚá˝á ááá. ááááš crc32 á áá áá á¨á°á áá áá¸áᢠá¨á°áá á¨áĽ á áá áśá˝ ááŁáŞ áá¸áᣠMSLAB áá áˇáᢠ40 ááŽá˝ á ááľááá áĽáŤááłááą áá 100 á¨áááá° áááá˝á áľáĽáľáĽ áŤááŁá áĽá áá˛áŤáá á¨ááá¨áá 100 áŁááľ áá° áĽááá áááá˝ áá˝ááá˘
ááᥠ16 áłáł ááľ áĽá 16 á áá¤áľ (á˛áአXeon E5-2680 v4 @ 2.40GHz * 64 ááŽá˝)ᢠHBase áľáŞáľ 1.2.0-cdh5.14.2.
á ááŤá áá¤áą á á´áŽááľ áá° 40 áşá áŚááŹá˝áá˝ áá áá, áá á ᨠDataStax áá°á á áŁá á¨á°áťá áá. ááá áá, ááá¨áŤ ááááá˝, áááłáá˝á á áľááš ááá¨á áá˝áá. ááá áľáŤáá˝ á á ááľ á á¨á´á áá áĽáť áĽá áĽáá˛áá á áአáááá˝ áá áĽáť áá¨ááá á¨áááťá áá. áááá áááľ á¨ááŤááá¨á á¨á°áá°á "áá " á¨ááá áľáĽáľáĽ áĽááłá áĽááľáĽ. áľááá ᣠá áľááá ááááŚá˝ (10 áŞ.á˘) ᣠáĽáá˛áá á 100 áŁá˝ ᣠá 4 á¨á°ááŤáŠ á á¨á´ááá˝ áĽá á¨á°á á¨ááľá áááá˝ áĽáľá¨ 50 áşá á ááá°áĽ áááľ áááá á áĽáááá ᢠá¨áá á áłá˝ áŤáá ááŤá ᨠ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