

{"id":18109,"date":"2018-06-20T04:05:34","date_gmt":"2018-06-20T04:05:34","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=18109"},"modified":"2018-06-20T04:05:34","modified_gmt":"2018-06-20T04:05:34","slug":"hbase-performance-tuning","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/","title":{"rendered":"HBase Performance Tuning | Ways For HBase Optimization"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Today, in this <strong>HBase<\/strong> article, &#8220;HBase Performance Tuning&#8221;\u00a0 we are discussing some best ways for optimizing our HBase environment. We will see garbage collection tuning, compression in HBase and configurations for HBase. Moreover, we will apply a load test for HBase Performance Tuning. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Since HBase is a key part of the <strong>Hadoop <\/strong>architecture and a distributed database hence we definitely want to optimize HBase Performance as much as possible. Also, we will look at HBase scan performance tuning and HBase read optimizations.<br \/>\n<\/span><br \/>\n<span style=\"font-weight: 400\">So, let&#8217;s explore HBase Performance Tuning.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">What is Garbage Collection Tuning?<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Garbage Collection Parameter is one of the lower-level settings we need to adjust for the region server processes. Although make sure, the master is not a problem here as data does not pass through it and it does not handle any heavy loads either. <\/span><\/p>\n<p><span style=\"font-weight: 400\">However, only to the HBase Region Servers, we need to add these Garbage Collection Parameters for HBase Performance Tuning.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Memstore-Local Allocation Buffer<\/span><\/h2>\n<p><span style=\"font-weight: 400\">In order to mitigate the issue of heap fragmentation due to too much churn on the memstore instances of an HBase Region Server, version 0.90 of HBase introduced an advanced mechanism, the Memstore-Local Allocation Buffers(MSLAB).<\/span><\/p>\n<p><span style=\"font-weight: 400\">Basically, these MSLABs are buffers of fixed sizes which consist of KeyValue instances of varying sizes. There are times when a buffer cannot completely fit a newly added KeyValue, at that time it is considered full and then once again a new buffer is created for the given fixed size.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">HBase Compression\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400\">There is one more <strong>feature of HBase<\/strong>, that it support for a number of compression algorithms in HBase. Basically, HBase compression algorithms can be enabled at the column family level.<\/span><\/p>\n<div id=\"attachment_18641\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Compression-01.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-18641\" class=\"wp-image-18641 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Compression-01.jpg\" alt=\"HBase Performance Tuning\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Compression-01.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Compression-01-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Compression-01-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Compression-01-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Compression-01-1024x536.jpg 1024w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-18641\" class=\"wp-caption-text\">HBase Compression<\/p><\/div>\n<p><span style=\"font-weight: 400\">In addition, compression yields better performance, for every other use case,\u00a0it is possible because there is CPU which is performing the compression and decompression, its\u00a0overhead is less than\u00a0the actual demand to read more data from the disk.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">i. Available HBase Codecs<\/span><\/h3>\n<p><span style=\"font-weight: 400\">There is a fixed list of supported compression algorithms in HBase, we can select from it. Although, when it comes to compression ratio, as well as CPU and installation requirements, they have different qualities. <\/span><\/p>\n<h3><span style=\"font-weight: 400\">ii. Verifying Installation<\/span><\/h3>\n<p><span style=\"font-weight: 400\">It is highly recommended that you check if the installation was successful,\u00a0as soon as we have installed a supported HBase compression algorithm. So, to do that, there are\u00a0several mechanisms in HBase.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>HBase Compression test tool<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">In order to test if compression is set up properly or not, there is a tool available in HBase. Hence, to use it,\u00a0 run the following command:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\">.\/bin\/ hbase org.apache.hadoop.hbase.util.CompressionTest,<\/pre>\n<p><span style=\"font-weight: 400\">Thus,\u00a0it returns the information on way to run the tool:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\">$ .\/bin\/hbase org.apache.hadoop.hbase.util.CompressionTest\nUsage: CompressionTest &lt;path&gt; none|gz|lzo|snappy<\/pre>\n<p><strong>For example:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">hbase class org.apache.hadoop.hbase.util.CompressionTest file:\/\/\/tmp\/testfile gz<\/pre>\n<h3><span style=\"font-weight: 400\">iii. Enabling Compression<\/span><\/h3>\n<p><span style=\"font-weight: 400\">The installation of the JNI and native compression libraries is must for Enabling compression.<\/span><\/p>\n<pre class=\"EnlighterJSRAW\">hbase(main):001:0&gt; create 'testtable', { NAME =&gt; 'colfam1', COMPRESSION =&gt; 'GZ' }\n0 row(s) in 1.1920 seconds\nhbase(main):012:0&gt; describe 'testtable'\nDESCRIPTION ENABLED\n{NAME =&gt; 'testtable', FAMILIES =&gt; [{NAME =&gt; 'colfam1', true\nBLOOMFILTER =&gt; 'NONE', REPLICATION_SCOPE =&gt; '0', VERSIONS\n=&gt; '3', COMPRESSION =&gt; 'GZ', TTL =&gt; '2147483647', BLOCKSIZE\n=&gt; '65536', IN_MEMORY =&gt; 'false', BLOCKCACHE =&gt; 'true'}]}\n1 row(s) in 0.0400 seconds<\/pre>\n<p><span style=\"font-weight: 400\">In order to read back the schema of the newly created table, we use the describe <strong>HBase shell command<\/strong>.\u00a0Here, we can see that the compression is set to GZIP. Moreover, we use the alter command for existing tables to enable\u2014or change or disable\u2014the compression algorithm.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Also, disable the compression for the given column family to change the compression format to NONE.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Load Balancing<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">There is one built-in feature in Master, what we call the balancer. Basically, the balancer runs every five minutes, by default. And, by the hbase.balancer.period property,\u00a0we configure it. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Its process is like, as soon as it starts, it strives to equal out the number of assigned regions per region server hence they are within one region of the average number per server. Basically, the call first determines a new assignment plan. <\/span><\/p>\n<p><span style=\"font-weight: 400\">So, that explains which regions should be moved where. Then by calling the unassign() method of the administrative API iteratively, it starts the process of moving the regions.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Also, there is an upper limit in the balancer,\u00a0which decides how long it is allowed to run. Basically, by\u00a0using the hbase.balancer.max.balancing property, it is configured or defaults to half of the balancer period vale, or two and a half minutes.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Merging Regions<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Sometimes\u00a0we may need to merge regions since it is much more common for regions to split automatically over time as we are adding data to the corresponding table.<\/span><\/p>\n<p>Let&#8217;s understand with an example, let we want to reduce the number of regions hosted by each server after\u00a0we have removed a large amount of data, so\u00a0there is a tool in HBase which permits\u00a0us to merge two adjacent regions as long as the cluster is not online.<\/p>\n<p>Therefore, below is a command-line tool we can use to get the usage details:<\/p>\n<pre class=\"EnlighterJSRAW\">$ .\/bin\/hbase org.apache.hadoop.hbase.util.Merge\nUsage: bin\/hbase merge &lt;table-name&gt; &lt;region-1&gt; &lt;region-2&gt;<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><strong>Client API: Best Practices<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">There are a handful of optimizations we should consider to gain the best performance\u00a0while reading or writing data from a client using the API.\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Disable auto-flush<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">By using the setAutoFlush(false) method,\u00a0set the auto-flush feature ofHTable to false\u00a0while performing a lot of put operations.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Limit scan scope<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">It says, be aware of which attributes we are selecting when we use scan to process large numbers of rows.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Close ResultScanners<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This may not help in improving performance, but definitely helps rather avoiding performance problems.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Block cache usage<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Furthermore, by the setCacheBlocks() method, we can set Scan instances to use the block cache in the region server.<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400\"> Optimal loading of row keys<\/span><\/li>\n<li><span style=\"font-weight: 400\"> Turn off WAL on Puts<\/span><\/li>\n<\/ol>\n<h2><span style=\"font-weight: 400\">HBase Configuration\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400\">In order to fine-tune our HBase Cluster setup, there are many configuration properties are available in HBase:<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400\"> Decrease ZooKeeper timeout.<\/span><\/li>\n<li><span style=\"font-weight: 400\"> Increase handlers.<\/span><\/li>\n<li>Increase heap settings.<\/li>\n<li><span style=\"font-weight: 400\">Enable data compression.<\/span><\/li>\n<li><span style=\"font-weight: 400\"> Increase region size.<\/span><\/li>\n<li><span style=\"font-weight: 400\"> Adjust block cache size.<\/span><\/li>\n<li>Adjust memstore limits.<\/li>\n<li>Increase blocking store files.<\/li>\n<li><span style=\"font-weight: 400\">Increase block multiplier.<\/span><\/li>\n<li><span style=\"font-weight: 400\"> Decrease maximum logfiles.<\/span><\/li>\n<\/ol>\n<h2><span style=\"font-weight: 400\">Load Tests in HBase Performance Tuning\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400\">It is recommended to run HBase performance tests to verify the functionality of cluster, after installing our cluster. Moreover, it provides us a baseline which we can refer to making changes to the configuration of the cluster, or over the schemas of our tables. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Basically, doing a burn-in of our cluster will show us how much we can gain from it, but make sure this does not replace a test with the load as expected from our use case.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">i. HBase Performance Evaluation<\/span><\/h3>\n<p><span style=\"font-weight: 400\">To execute a performance evaluation, HBase ships with its own tool. This is what we call Performance Evaluation (PE).\u00a0Basically, on using it with no command-line parameters, we can gain its main usage details:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\">$.\/bin\/hbase org.apache.hadoop.hbase.PerformanceEvaluation\nUsage: java org.apache.hadoop.hbase.PerformanceEvaluation \\\n[--miniCluster] [--nomapred] [--rows=ROWS] &lt;command&gt; &lt;nclients&gt;<\/pre>\n<p><span style=\"font-weight: 400\">Moreover, to run a single evaluation client:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\">$ bin\/hbase org.apache.hadoop.hbase.PerformanceEvaluation sequentialWrite 1<\/pre>\n<h3><span style=\"font-weight: 400\">ii. YCSB (Yahoo! Cloud Serving Benchmark*)<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Basically, to run comparable workloads against different storage systems, we can use the YCSB is a suite of tools. However, it is also a reasonable tool for performing an HBase cluster burn-in\u2014or performance text, while primarily built to compare various systems.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>YCSB installation<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">We need to compile a binary version yourself since YCSB is available in an online repository only. So, at very first, clone the repository:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\">$ git clone http:\/\/github.com\/brianfrankcooper\/YCSB.git<\/pre>\n<p><span style=\"font-weight: 400\">Start empty Git repository in \/private\/tmp\/YCSB\/.git\/<\/span><br \/>\n<span style=\"font-weight: 400\">\u2026<\/span><br \/>\n<span style=\"font-weight: 400\">Resolving deltas: 100% (475\/475), done.<\/span><br \/>\n<span style=\"font-weight: 400\">Moreover, it creates a local YCSB directory in our current path. However, its next step is to change into the newly created directory or compile the executable code and to copy the required libraries for HBase :<\/span><\/p>\n<pre class=\"EnlighterJSRAW\">$ cd YCSB\/\n$ cp $HBASE_HOME\/hbase*.jar db\/hbase\/lib\/\n$ cp $HBASE_HOME\/lib\/*.jar db\/hbase\/lib\/\n$ ant\nBuildfile: \/private\/tmp\/YCSB\/build.xml\n...\nmakejar:\n[jar] Building jar: \/private\/tmp\/YCSB\/build\/ycsb.jar\nBUILD SUCCESSFUL\nTotal time: 1 second\n$ ant dbcompile-hbase\n...<\/pre>\n<p><b>BUILD SUCCESSFUL<\/b><br \/>\n<b>Total time: 1 second<\/b><br \/>\n<span style=\"font-weight: 400\">It leaves us with an executable JAR file in the build directory.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Furthermore, it can still be useful to test a varying set of loads on your cluster, even though YCSB can hardly emulate the workload. However, to emulate cases that are bound to read, write, or both kinds of operations, use the supplied workloads, or create your own.<\/span><\/p>\n<p>So, this was all about HBase Performance Tuning. Hope you like our explanation.<\/p>\n<h2><span style=\"font-weight: 400\">Conclusion\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Hence, in this HBase Performance Tuning tutorial,\u00a0 we saw all the best practices for Optimizing HBase Performance of our HBase environment. Moreover, we discussed garbage collection tuning, HBase scan performance tuning, HBase read performance. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Also, we applied load test for HBase Performance Tuning. Still, if any doubt occurs regarding performance tuning of HBase, feel free to ask.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today, in this HBase article, &#8220;HBase Performance Tuning&#8221;\u00a0 we are discussing some best ways for optimizing our HBase environment. We will see garbage collection tuning, compression in HBase and configurations for HBase. Moreover, we&#46;&#46;&#46;<\/p>\n","protected":false},"author":7,"featured_media":18642,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[5023,5404,5414,5415,5435,5462,5464,5468,5473,5475,5478,5491,8641,9469,9473],"class_list":["post-18109","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hbase","tag-garbage-collection-tuning","tag-hbase-codecs","tag-hbase-compression","tag-hbase-configuration","tag-hbase-improve-read-performance","tag-hbase-optimizations-techniques","tag-hbase-performance-tuning","tag-hbase-query-performance","tag-hbase-read-optimizations","tag-hbase-read-performance","tag-hbase-scan-performance-tuning","tag-hbase-tutorial","tag-memstore-local-allocation-buffer","tag-performance-tuning","tag-performance-tuning-of-hbase"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>HBase Performance Tuning | Ways For HBase Optimization - DataFlair<\/title>\n<meta name=\"description\" content=\"HBase Performance Tuning,garbage collection tuning,load tests,HBase compression,configurations in HBase,HBase codecs,HBase performance optimization\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HBase Performance Tuning | Ways For HBase Optimization - DataFlair\" \/>\n<meta property=\"og:description\" content=\"HBase Performance Tuning,garbage collection tuning,load tests,HBase compression,configurations in HBase,HBase codecs,HBase performance optimization\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-20T04:05:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Performance-Tuning-01-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HBase Performance Tuning | Ways For HBase Optimization - DataFlair","description":"HBase Performance Tuning,garbage collection tuning,load tests,HBase compression,configurations in HBase,HBase codecs,HBase performance optimization","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/","og_locale":"en_US","og_type":"article","og_title":"HBase Performance Tuning | Ways For HBase Optimization - DataFlair","og_description":"HBase Performance Tuning,garbage collection tuning,load tests,HBase compression,configurations in HBase,HBase codecs,HBase performance optimization","og_url":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-06-20T04:05:34+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Performance-Tuning-01-1.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd"},"headline":"HBase Performance Tuning | Ways For HBase Optimization","datePublished":"2018-06-20T04:05:34+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/"},"wordCount":1336,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Performance-Tuning-01-1.jpg","keywords":["Garbage Collection Tuning","HBase Codecs","HBase Compression","HBase Configuration","HBase improve read performance","HBase optimizations techniques","HBase Performance Tuning","HBase query performance","HBase read optimizations","HBase read performance","HBase scan performance tuning","hbase tutorial","Memstore-Local Allocation Buffer","Performance tuning","performance tuning of HBase"],"articleSection":["HBase Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/","url":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/","name":"HBase Performance Tuning | Ways For HBase Optimization - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Performance-Tuning-01-1.jpg","datePublished":"2018-06-20T04:05:34+00:00","description":"HBase Performance Tuning,garbage collection tuning,load tests,HBase compression,configurations in HBase,HBase codecs,HBase performance optimization","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Performance-Tuning-01-1.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Performance-Tuning-01-1.jpg","width":1200,"height":628,"caption":"HBase Performance Tuning | Ways For HBase Optimization"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/hbase-performance-tuning\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"HBase Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/hbase\/"},{"@type":"ListItem","position":3,"name":"HBase Performance Tuning | Ways For HBase Optimization"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team specializes in creating clear, actionable content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Backed by industry expertise, we make learning easy and career-oriented for beginners and pros alike.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam3\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/18109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=18109"}],"version-history":[{"count":0,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/18109\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/18642"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=18109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=18109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=18109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}