SlideShare a Scribd company logo
HBaes The Difinitive Guide
Chapter 11 : Performance Tuning




                                  1
HBase The Definitive Guide
            http://shop.oreilly.com/product/0636920014348.do




                                                               2
chapter 11 : Performance Tuning

• Garbage Collection Tuning
• Memstore-Local Allocation Buffer
• Compression
• Optimizing Splits and Compactions
• Load Balancing
• Merging Regions
• Client API: Best Practices
• Configuration
• Load Tests




                                      3
Garbage Collection Tuning

• Young
          128MB   512MB
   ex. -XX:MaxNewSize=128m -XX:NewSize=128m            -Xmn128m

• Concurrent Mark-Sweep GC                               GC
   ex. -XX:+UseParNewGC and -XX:+UseConcMarkSweepGC

• Concurrent Mark-Sweep Collector (CMS)           GC


           70%         Concorrent Mark-Sweep GC

   ex. -XX:CMSInitiatingOccupancyFraction=70




                                                                  4
Memstore-Local Allocation Buffer

• HBase        Region                                                   Heap      fragmentation


• 0.90.0                                          MSLAB
                                                  Memstore            HDFS      flush
        MemStoreLAB
                                 hbase-site.xml
        hbase.hregion.memstore.mslab.enabled
        hbase.hregion.memstore.mslab.max.allocation
      0.90.2

•
      http://www.cloudera.com/blog/2011/02/avoiding-full-gcs-in-hbase-with-memstore-local-
    allocation-buffers-part-1/
      http://www.slideshare.net/cloudera/hbase-hug-presentation




                                                                                                  5
Compression

• HBase                                     GZIP LZO Snappy




•
                                             major_compact


• HBase        Snappy
    http://dayafterneet.blogspot.com/2011/09/hbasesnappy.html




                                                                6
Optimizing Splits and Compactions

• Split

                         split   major_compact
     hbase.hregion.max.filesize    region
                                           ex.100GB



• Region Hotspotting
          Region                                      Region Hotspotting
   Key
     Sequential    ID   NG
     Random              Key




                                                                           7
Presplitting Regions

•                  Region




                            8
Load Balancing

• Resion

     hbase.balancer.period
   balancer          hbase.balancer.max.balancing
   hbase.balancer.period                            balancer




                                                               9
Merging Regions

• Resion          Region   Merge




                                   10
Client API: Best Practices

• Java Client API
   Disable auto-flush
                                 flushCommits()
   Use scanner-caching
     scan                                NG
   Limit scan scope
             family
   Close ResultScanners
   Block cache usage
   Optimal loading of row keys
     filter
   Turn off WAL on Puts
                                   ...




                                                 11
Configuration

•               HBase
    Decrease ZooKeeper timeout        zookeeper.session.timeout   ↓
    Increase handlers      hbase.regionserver.handler.count   ↑
    Increase heap settings ↑
    Enable data compression
    Increase region size     hbase.hregion.max.filesize   ↑
    Adjust block cache size     hfile.block.cache.size
    Adjust memstore limits
      hbase.regionserver.global.memstore.upperLimit
      hbase.region server.global.memstore.lowerLimit
    Increase blocking store files     hbase.hstore.blockingStoreFiles   ↑
    Increase block multiplier    hbase.hregion.memstore.block.multiplier   ↑
    Decrease maximum logfiles        hbase.regionserver.maxlogs    ↓




                                                                               12
Load Tests

• HBase      PerformanceEvaluation Tool




• YCSB       Load Test
                   http://dayafterneet.blogspot.com/2011/08/ycsbhbasemongodb.html

                                                                                    13
Hadoop/HBase

    hbase-env.sh         HBASE_HEAPSIZE                                16384       2000        HRegionServer    Java Heap


    core-site.xml        fs.inmemory.size.mb                           200         75          fs   in-memory       (MB)

                                                                                               SequenceFile
                         io.file.buffer.size                           131072


    hdfs-site.xml        dfs.namenode.handler.count                    50          10          NameNode

                                                                                               DataNode
                         dfs.datanode.max.xcievers                     8192        256


    hbase-site.xml       hbase.regionserver.handler.count              50          10          RegionServer


                         hbase.hregion.max.filesize                    536870912   268435456   HFile

                                                                                               HFile       BlockCache
                         hfile.block.cache.size                        0.3         0.2
                                                                                                                (0.2!20%)
                                                                                               HStore
                         hbase.hstore.blockingStoreFiles               10          7
                                                                                               BlockingStoreFile

                         hbase.hregion.memstore.mslab.enabled          TRUE        FALSE       mslab


                         hbase.hregion.memstore.mslab.chunksize        2097152     2097152     mslab    chunksize


                         hbase.hregion.memstore.mslab.max.allocation   1024768     262144      mslab




※                HBase      Chapter.11
                                                                                                                            14
table


                                                               lookup   BloomFilter
BLOOMFILTER                        ROW            NONE
                                                         (NONE/ROW/ROWCOL)




COMPRESSION                        SNAPPY         NONE
                                                          NONE/GZ/LZO/SNAPPY)




IN_MEMORY                          true/false
                                                                                HDFS




※             HBase   Chapter.11
                                                                                       15
- 100 threads
※1,500,000 records                         HBase(100 threads - 15 nodes)
※qps(query per second)                     HBase(100 threads / in_memory - 15 nodes)

100000 qps
 90000 qps
 80000 qps                                 86914

 70000 qps
 60000 qps
 50000 qps
 40000 qps                                                        43630
 30000 qps
                                   28125
 20000 qps               24943
 10000 qps      12468                                     12542
     0 qps
                     insert           select                 delete




                                                                                  16
- 100 threads
※1,500,000 records                        HBase(100 threads - 15 nodes)
※latency μs                               HBase(100 threads / in_memory - 15 nodes)

 20000 μs
 18000 μs
 16000 μs                16786
 14000 μs
 12000 μs
               11943                                    11841
 10000 μs
  8000 μs
  6000 μs
                                   6059
  4000 μs
  2000 μs                                                       2651
     0 μs                                 1156
                     insert          select                 delete




                                                                                 17
thread                          (in_memory)

※1,500,000 records
※qps(query per second)
                                       100   200       300   400
                                       500   600       700
350000 qps
300000 qps
250000 qps
200000 qps
150000 qps
100000 qps
 50000 qps
     0 qps
                     insert   select               delete




                                                                   18
thread                          (not in_memory)

※1,500,000 records
※qps(query per second)
                                       100   200       300     400
                                       500   600       700
350000 qps
300000 qps
250000 qps
200000 qps
150000 qps
100000 qps
 50000 qps
     0 qps
                     insert   select               delete




                                                                     19

More Related Content

What's hot

Memcached Code Camp 2009
Memcached Code Camp 2009Memcached Code Camp 2009
Memcached Code Camp 2009
NorthScale
 
DPC2007 MySQL Stored Routines for PHP Developers (Roland Bouman)
DPC2007 MySQL Stored Routines for PHP Developers (Roland Bouman)DPC2007 MySQL Stored Routines for PHP Developers (Roland Bouman)
DPC2007 MySQL Stored Routines for PHP Developers (Roland Bouman)
dpc
 
The Essential postgresql.conf
The Essential postgresql.confThe Essential postgresql.conf
The Essential postgresql.conf
Robert Treat
 
Moxi - Memcached Proxy
Moxi - Memcached ProxyMoxi - Memcached Proxy
Moxi - Memcached Proxy
NorthScale
 
Hadoop Summit 2012 | HBase Consistency and Performance Improvements
Hadoop Summit 2012 | HBase Consistency and Performance ImprovementsHadoop Summit 2012 | HBase Consistency and Performance Improvements
Hadoop Summit 2012 | HBase Consistency and Performance Improvements
Cloudera, Inc.
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL Administration
EDB
 
Cassandra as Memcache
Cassandra as MemcacheCassandra as Memcache
Cassandra as Memcache
Edward Capriolo
 
Meet hbase 2.0
Meet hbase 2.0Meet hbase 2.0
Meet hbase 2.0
enissoz
 
Off-heaping the Apache HBase Read Path
Off-heaping the Apache HBase Read Path Off-heaping the Apache HBase Read Path
Off-heaping the Apache HBase Read Path
HBaseCon
 
Scaling HBase for Big Data
Scaling HBase for Big DataScaling HBase for Big Data
Scaling HBase for Big Data
Salesforce Engineering
 
NoSql Databases and Polyglot Applications
NoSql Databases and Polyglot ApplicationsNoSql Databases and Polyglot Applications
NoSql Databases and Polyglot ApplicationsAgustin Magaña
 
PostgreSQL Performance Tuning
PostgreSQL Performance TuningPostgreSQL Performance Tuning
PostgreSQL Performance Tuningelliando dias
 
Accelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket CacheAccelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket Cache
Nicolas Poggi
 
Operating and supporting HBase Clusters
Operating and supporting HBase ClustersOperating and supporting HBase Clusters
Operating and supporting HBase Clusters
enissoz
 
Digital Library Collection Management using HBase
Digital Library Collection Management using HBaseDigital Library Collection Management using HBase
Digital Library Collection Management using HBase
HBaseCon
 
PostGreSQL Performance Tuning
PostGreSQL Performance TuningPostGreSQL Performance Tuning
PostGreSQL Performance Tuning
Maven Logix
 
HBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and CompactionHBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and Compaction
DataWorks Summit/Hadoop Summit
 
Using memcache to improve php performance
Using memcache to improve php performanceUsing memcache to improve php performance
Using memcache to improve php performance
Sudar Muthu
 

What's hot (18)

Memcached Code Camp 2009
Memcached Code Camp 2009Memcached Code Camp 2009
Memcached Code Camp 2009
 
DPC2007 MySQL Stored Routines for PHP Developers (Roland Bouman)
DPC2007 MySQL Stored Routines for PHP Developers (Roland Bouman)DPC2007 MySQL Stored Routines for PHP Developers (Roland Bouman)
DPC2007 MySQL Stored Routines for PHP Developers (Roland Bouman)
 
The Essential postgresql.conf
The Essential postgresql.confThe Essential postgresql.conf
The Essential postgresql.conf
 
Moxi - Memcached Proxy
Moxi - Memcached ProxyMoxi - Memcached Proxy
Moxi - Memcached Proxy
 
Hadoop Summit 2012 | HBase Consistency and Performance Improvements
Hadoop Summit 2012 | HBase Consistency and Performance ImprovementsHadoop Summit 2012 | HBase Consistency and Performance Improvements
Hadoop Summit 2012 | HBase Consistency and Performance Improvements
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL Administration
 
Cassandra as Memcache
Cassandra as MemcacheCassandra as Memcache
Cassandra as Memcache
 
Meet hbase 2.0
Meet hbase 2.0Meet hbase 2.0
Meet hbase 2.0
 
Off-heaping the Apache HBase Read Path
Off-heaping the Apache HBase Read Path Off-heaping the Apache HBase Read Path
Off-heaping the Apache HBase Read Path
 
Scaling HBase for Big Data
Scaling HBase for Big DataScaling HBase for Big Data
Scaling HBase for Big Data
 
NoSql Databases and Polyglot Applications
NoSql Databases and Polyglot ApplicationsNoSql Databases and Polyglot Applications
NoSql Databases and Polyglot Applications
 
PostgreSQL Performance Tuning
PostgreSQL Performance TuningPostgreSQL Performance Tuning
PostgreSQL Performance Tuning
 
Accelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket CacheAccelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket Cache
 
Operating and supporting HBase Clusters
Operating and supporting HBase ClustersOperating and supporting HBase Clusters
Operating and supporting HBase Clusters
 
Digital Library Collection Management using HBase
Digital Library Collection Management using HBaseDigital Library Collection Management using HBase
Digital Library Collection Management using HBase
 
PostGreSQL Performance Tuning
PostGreSQL Performance TuningPostGreSQL Performance Tuning
PostGreSQL Performance Tuning
 
HBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and CompactionHBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and Compaction
 
Using memcache to improve php performance
Using memcache to improve php performanceUsing memcache to improve php performance
Using memcache to improve php performance
 

Viewers also liked

Hortonworks Technical Workshop: HBase and Apache Phoenix
Hortonworks Technical Workshop: HBase and Apache Phoenix Hortonworks Technical Workshop: HBase and Apache Phoenix
Hortonworks Technical Workshop: HBase and Apache Phoenix
Hortonworks
 
HBase for Architects
HBase for ArchitectsHBase for Architects
HBase for Architects
Nick Dimiduk
 
Intro to HBase Internals & Schema Design (for HBase users)
Intro to HBase Internals & Schema Design (for HBase users)Intro to HBase Internals & Schema Design (for HBase users)
Intro to HBase Internals & Schema Design (for HBase users)
alexbaranau
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
Saurav Haloi
 
Intro to HBase
Intro to HBaseIntro to HBase
Intro to HBase
alexbaranau
 
Apache HBase Performance Tuning
Apache HBase Performance TuningApache HBase Performance Tuning
Apache HBase Performance Tuning
Lars Hofhansl
 

Viewers also liked (6)

Hortonworks Technical Workshop: HBase and Apache Phoenix
Hortonworks Technical Workshop: HBase and Apache Phoenix Hortonworks Technical Workshop: HBase and Apache Phoenix
Hortonworks Technical Workshop: HBase and Apache Phoenix
 
HBase for Architects
HBase for ArchitectsHBase for Architects
HBase for Architects
 
Intro to HBase Internals & Schema Design (for HBase users)
Intro to HBase Internals & Schema Design (for HBase users)Intro to HBase Internals & Schema Design (for HBase users)
Intro to HBase Internals & Schema Design (for HBase users)
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
 
Intro to HBase
Intro to HBaseIntro to HBase
Intro to HBase
 
Apache HBase Performance Tuning
Apache HBase Performance TuningApache HBase Performance Tuning
Apache HBase Performance Tuning
 

Similar to HBase本輪読会資料(11章)

HBase 0.20.0 Performance Evaluation
HBase 0.20.0 Performance EvaluationHBase 0.20.0 Performance Evaluation
HBase 0.20.0 Performance Evaluation
Schubert Zhang
 
HBase: Extreme makeover
HBase: Extreme makeoverHBase: Extreme makeover
HBase: Extreme makeover
bigbase
 
HBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ SalesforceHBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon
 
Facebook Messages & HBase
Facebook Messages & HBaseFacebook Messages & HBase
Facebook Messages & HBase
强 王
 
支撑Facebook消息处理的h base存储系统
支撑Facebook消息处理的h base存储系统支撑Facebook消息处理的h base存储系统
支撑Facebook消息处理的h base存储系统yongboy
 
Hbase
HbaseHbase
Hbase
HbaseHbase
006 performance tuningandclusteradmin
006 performance tuningandclusteradmin006 performance tuningandclusteradmin
006 performance tuningandclusteradminScott Miao
 
HBase New Features
HBase New FeaturesHBase New Features
HBase New Features
rxu
 
HBase: Extreme Makeover
HBase: Extreme MakeoverHBase: Extreme Makeover
HBase: Extreme Makeover
HBaseCon
 
Hbase
HbaseHbase
8a. How To Setup HBase with Docker
8a. How To Setup HBase with Docker8a. How To Setup HBase with Docker
8a. How To Setup HBase with Docker
Fabio Fumarola
 
NoSQL 동향
NoSQL 동향NoSQL 동향
NoSQL 동향NAVER D2
 
HBase tales from the trenches
HBase tales from the trenchesHBase tales from the trenches
HBase tales from the trenches
wchevreuil
 
Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011
Puppet
 
Meet Apache HBase - 2.0
Meet Apache HBase - 2.0Meet Apache HBase - 2.0
Meet Apache HBase - 2.0
DataWorks Summit
 
Meet HBase 2.0
Meet HBase 2.0Meet HBase 2.0
Meet HBase 2.0
enissoz
 
Supporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability ImprovementsSupporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability Improvements
DataWorks Summit
 

Similar to HBase本輪読会資料(11章) (20)

HBase 0.20.0 Performance Evaluation
HBase 0.20.0 Performance EvaluationHBase 0.20.0 Performance Evaluation
HBase 0.20.0 Performance Evaluation
 
HBase: Extreme makeover
HBase: Extreme makeoverHBase: Extreme makeover
HBase: Extreme makeover
 
HBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ SalesforceHBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ Salesforce
 
Facebook Messages & HBase
Facebook Messages & HBaseFacebook Messages & HBase
Facebook Messages & HBase
 
支撑Facebook消息处理的h base存储系统
支撑Facebook消息处理的h base存储系统支撑Facebook消息处理的h base存储系统
支撑Facebook消息处理的h base存储系统
 
Hbase
HbaseHbase
Hbase
 
Hbase
HbaseHbase
Hbase
 
006 performance tuningandclusteradmin
006 performance tuningandclusteradmin006 performance tuningandclusteradmin
006 performance tuningandclusteradmin
 
HBase New Features
HBase New FeaturesHBase New Features
HBase New Features
 
HBase: Extreme Makeover
HBase: Extreme MakeoverHBase: Extreme Makeover
HBase: Extreme Makeover
 
Hbase
HbaseHbase
Hbase
 
8a. How To Setup HBase with Docker
8a. How To Setup HBase with Docker8a. How To Setup HBase with Docker
8a. How To Setup HBase with Docker
 
NoSQL 동향
NoSQL 동향NoSQL 동향
NoSQL 동향
 
HBase tales from the trenches
HBase tales from the trenchesHBase tales from the trenches
HBase tales from the trenches
 
Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011
 
Hbase
HbaseHbase
Hbase
 
ApacheCon-HBase-2016
ApacheCon-HBase-2016ApacheCon-HBase-2016
ApacheCon-HBase-2016
 
Meet Apache HBase - 2.0
Meet Apache HBase - 2.0Meet Apache HBase - 2.0
Meet Apache HBase - 2.0
 
Meet HBase 2.0
Meet HBase 2.0Meet HBase 2.0
Meet HBase 2.0
 
Supporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability ImprovementsSupporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability Improvements
 

More from moai kids

中国最新ニュースアプリ事情
中国最新ニュースアプリ事情中国最新ニュースアプリ事情
中国最新ニュースアプリ事情
moai kids
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係moai kids
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについてmoai kids
 
Programming Hive Reading #4
Programming Hive Reading #4Programming Hive Reading #4
Programming Hive Reading #4moai kids
 
Programming Hive Reading #3
Programming Hive Reading #3Programming Hive Reading #3
Programming Hive Reading #3moai kids
 
"Programming Hive" Reading #1
"Programming Hive" Reading #1"Programming Hive" Reading #1
"Programming Hive" Reading #1moai kids
 
Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDBmoai kids
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBmoai kids
 
Hadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきましたHadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきましたmoai kids
 
snappyについて
snappyについてsnappyについて
snappyについて
moai kids
 
第四回月次セミナー(公開版)
第四回月次セミナー(公開版)第四回月次セミナー(公開版)
第四回月次セミナー(公開版)moai kids
 
第三回月次セミナー(公開版)
第三回月次セミナー(公開版)第三回月次セミナー(公開版)
第三回月次セミナー(公開版)moai kids
 
Pythonで自然言語処理
Pythonで自然言語処理Pythonで自然言語処理
Pythonで自然言語処理moai kids
 
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマークHandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマークmoai kids
 
Yammer試用レポート(公開版)
Yammer試用レポート(公開版)Yammer試用レポート(公開版)
Yammer試用レポート(公開版)moai kids
 
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)moai kids
 
中国と私(仮題)
中国と私(仮題)中国と私(仮題)
中国と私(仮題)moai kids
 
不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料moai kids
 
n-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法についてn-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法についてmoai kids
 
Analysis of ‘lang-8’
Analysis of ‘lang-8’Analysis of ‘lang-8’
Analysis of ‘lang-8’moai kids
 

More from moai kids (20)

中国最新ニュースアプリ事情
中国最新ニュースアプリ事情中国最新ニュースアプリ事情
中国最新ニュースアプリ事情
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
 
Programming Hive Reading #4
Programming Hive Reading #4Programming Hive Reading #4
Programming Hive Reading #4
 
Programming Hive Reading #3
Programming Hive Reading #3Programming Hive Reading #3
Programming Hive Reading #3
 
"Programming Hive" Reading #1
"Programming Hive" Reading #1"Programming Hive" Reading #1
"Programming Hive" Reading #1
 
Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Hadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきましたHadoop Conference Japan 2011 Fallに行ってきました
Hadoop Conference Japan 2011 Fallに行ってきました
 
snappyについて
snappyについてsnappyについて
snappyについて
 
第四回月次セミナー(公開版)
第四回月次セミナー(公開版)第四回月次セミナー(公開版)
第四回月次セミナー(公開版)
 
第三回月次セミナー(公開版)
第三回月次セミナー(公開版)第三回月次セミナー(公開版)
第三回月次セミナー(公開版)
 
Pythonで自然言語処理
Pythonで自然言語処理Pythonで自然言語処理
Pythonで自然言語処理
 
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマークHandlerSocket plugin Client for Javaとそれを用いたベンチマーク
HandlerSocket plugin Client for Javaとそれを用いたベンチマーク
 
Yammer試用レポート(公開版)
Yammer試用レポート(公開版)Yammer試用レポート(公開版)
Yammer試用レポート(公開版)
 
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
 
中国と私(仮題)
中国と私(仮題)中国と私(仮題)
中国と私(仮題)
 
不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料不自然言語処理コンテストLT資料
不自然言語処理コンテストLT資料
 
n-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法についてn-gramコーパスを用いた類義語自動獲得手法について
n-gramコーパスを用いた類義語自動獲得手法について
 
Analysis of ‘lang-8’
Analysis of ‘lang-8’Analysis of ‘lang-8’
Analysis of ‘lang-8’
 

Recently uploaded

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 

Recently uploaded (20)

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 

HBase本輪読会資料(11章)

  • 1. HBaes The Difinitive Guide Chapter 11 : Performance Tuning 1
  • 2. HBase The Definitive Guide http://shop.oreilly.com/product/0636920014348.do 2
  • 3. chapter 11 : Performance Tuning • Garbage Collection Tuning • Memstore-Local Allocation Buffer • Compression • Optimizing Splits and Compactions • Load Balancing • Merging Regions • Client API: Best Practices • Configuration • Load Tests 3
  • 4. Garbage Collection Tuning • Young 128MB 512MB ex. -XX:MaxNewSize=128m -XX:NewSize=128m -Xmn128m • Concurrent Mark-Sweep GC GC ex. -XX:+UseParNewGC and -XX:+UseConcMarkSweepGC • Concurrent Mark-Sweep Collector (CMS) GC 70% Concorrent Mark-Sweep GC ex. -XX:CMSInitiatingOccupancyFraction=70 4
  • 5. Memstore-Local Allocation Buffer • HBase Region Heap fragmentation • 0.90.0 MSLAB Memstore HDFS flush MemStoreLAB hbase-site.xml hbase.hregion.memstore.mslab.enabled hbase.hregion.memstore.mslab.max.allocation 0.90.2 • http://www.cloudera.com/blog/2011/02/avoiding-full-gcs-in-hbase-with-memstore-local- allocation-buffers-part-1/ http://www.slideshare.net/cloudera/hbase-hug-presentation 5
  • 6. Compression • HBase GZIP LZO Snappy • major_compact • HBase Snappy http://dayafterneet.blogspot.com/2011/09/hbasesnappy.html 6
  • 7. Optimizing Splits and Compactions • Split split major_compact hbase.hregion.max.filesize region ex.100GB • Region Hotspotting Region Region Hotspotting Key Sequential ID NG Random Key 7
  • 9. Load Balancing • Resion hbase.balancer.period balancer hbase.balancer.max.balancing hbase.balancer.period balancer 9
  • 10. Merging Regions • Resion Region Merge 10
  • 11. Client API: Best Practices • Java Client API Disable auto-flush flushCommits() Use scanner-caching scan NG Limit scan scope family Close ResultScanners Block cache usage Optimal loading of row keys filter Turn off WAL on Puts ... 11
  • 12. Configuration • HBase Decrease ZooKeeper timeout zookeeper.session.timeout ↓ Increase handlers hbase.regionserver.handler.count ↑ Increase heap settings ↑ Enable data compression Increase region size hbase.hregion.max.filesize ↑ Adjust block cache size hfile.block.cache.size Adjust memstore limits hbase.regionserver.global.memstore.upperLimit hbase.region server.global.memstore.lowerLimit Increase blocking store files hbase.hstore.blockingStoreFiles ↑ Increase block multiplier hbase.hregion.memstore.block.multiplier ↑ Decrease maximum logfiles hbase.regionserver.maxlogs ↓ 12
  • 13. Load Tests • HBase PerformanceEvaluation Tool • YCSB Load Test http://dayafterneet.blogspot.com/2011/08/ycsbhbasemongodb.html 13
  • 14. Hadoop/HBase hbase-env.sh HBASE_HEAPSIZE 16384 2000 HRegionServer Java Heap core-site.xml fs.inmemory.size.mb 200 75 fs in-memory (MB) SequenceFile io.file.buffer.size 131072 hdfs-site.xml dfs.namenode.handler.count 50 10 NameNode DataNode dfs.datanode.max.xcievers 8192 256 hbase-site.xml hbase.regionserver.handler.count 50 10 RegionServer hbase.hregion.max.filesize 536870912 268435456 HFile HFile BlockCache hfile.block.cache.size 0.3 0.2 (0.2!20%) HStore hbase.hstore.blockingStoreFiles 10 7 BlockingStoreFile hbase.hregion.memstore.mslab.enabled TRUE FALSE mslab hbase.hregion.memstore.mslab.chunksize 2097152 2097152 mslab chunksize hbase.hregion.memstore.mslab.max.allocation 1024768 262144 mslab ※ HBase Chapter.11 14
  • 15. table lookup BloomFilter BLOOMFILTER ROW NONE (NONE/ROW/ROWCOL) COMPRESSION SNAPPY NONE NONE/GZ/LZO/SNAPPY) IN_MEMORY true/false HDFS ※ HBase Chapter.11 15
  • 16. - 100 threads ※1,500,000 records HBase(100 threads - 15 nodes) ※qps(query per second) HBase(100 threads / in_memory - 15 nodes) 100000 qps 90000 qps 80000 qps 86914 70000 qps 60000 qps 50000 qps 40000 qps 43630 30000 qps 28125 20000 qps 24943 10000 qps 12468 12542 0 qps insert select delete 16
  • 17. - 100 threads ※1,500,000 records HBase(100 threads - 15 nodes) ※latency μs HBase(100 threads / in_memory - 15 nodes) 20000 μs 18000 μs 16000 μs 16786 14000 μs 12000 μs 11943 11841 10000 μs 8000 μs 6000 μs 6059 4000 μs 2000 μs 2651 0 μs 1156 insert select delete 17
  • 18. thread (in_memory) ※1,500,000 records ※qps(query per second) 100 200 300 400 500 600 700 350000 qps 300000 qps 250000 qps 200000 qps 150000 qps 100000 qps 50000 qps 0 qps insert select delete 18
  • 19. thread (not in_memory) ※1,500,000 records ※qps(query per second) 100 200 300 400 500 600 700 350000 qps 300000 qps 250000 qps 200000 qps 150000 qps 100000 qps 50000 qps 0 qps insert select delete 19