HBASE-27257 Remove unnecessary usage of CachedBlocksByFile from RS UI (#4667)
Signed-off-by: Wellington Chevreuil <wchevreuil@apache.org>
This commit is contained in:
parent
811f0e7d2a
commit
e8c14ee308
|
@ -30,6 +30,7 @@ BlockCache bc;
|
|||
</%java>
|
||||
<%import>
|
||||
java.util.Map;
|
||||
org.apache.hadoop.hbase.io.hfile.BlockCacheUtil;
|
||||
org.apache.hadoop.hbase.io.hfile.BlockCacheUtil.CachedBlocksByFile;
|
||||
org.apache.hadoop.hbase.io.hfile.AgeSnapshot;
|
||||
org.apache.hadoop.hbase.io.hfile.CachedBlock;
|
||||
|
@ -281,9 +282,7 @@ are combined counts. Request count is sum of hits and misses.</p>
|
|||
<%java>
|
||||
String bcUrl = "http://hbase.apache.org/devapidocs/" + bc.getClass().getName().replaceAll("\\.", "/") + ".html";
|
||||
String bcName = bc.getClass().getSimpleName();
|
||||
org.apache.hadoop.hbase.io.hfile.BlockCacheUtil.CachedBlocksByFile cbsbf =
|
||||
org.apache.hadoop.hbase.io.hfile.BlockCacheUtil.getLoadedCachedBlocksByFile(config, bc);
|
||||
AgeSnapshot cbsbfSnapshot = cbsbf.getAgeInCacheSnapshot();
|
||||
int maxCachedBlocksByFile = BlockCacheUtil.getMaxCachedBlocksByFile(config);
|
||||
|
||||
boolean bucketCache = bc.getClass().getSimpleName().equals("BucketCache");
|
||||
BucketCacheStats bucketCacheStats = null;
|
||||
|
@ -294,13 +293,6 @@ are combined counts. Request count is sum of hits and misses.</p>
|
|||
bucketAllocator = ((BucketCache)bc).getAllocator();
|
||||
}
|
||||
</%java>
|
||||
<%if cbsbf.isFull() %>
|
||||
<p>
|
||||
<div class="alert alert-danger">
|
||||
<strong>The stats below are incomplete!</strong> We ran into our accounting limit of <% cbsbf.getCount() %> blocks. Up the configuration <i>hbase.ui.blockcache.by.file.max</i>.
|
||||
</div>
|
||||
</p>
|
||||
</%if>
|
||||
<table id="blocks_summary" class="table table-striped">
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
|
@ -365,9 +357,13 @@ are combined counts. Request count is sum of hits and misses.</p>
|
|||
</%if>
|
||||
</table>
|
||||
<%doc>Call through to block cache Detail rendering template</%doc>
|
||||
<p>View block cache <a href="?format=json&bcn=<% name %>">as JSON</a> | Block cache <a href="?format=json&bcn=<% name %>&bcv=file">as JSON by file</a></p>
|
||||
<%java>
|
||||
cbsbf = null;
|
||||
</%java>
|
||||
<p>
|
||||
View block cache <a href="?format=json&bcn=<% name %>">as JSON</a> | Block cache <a href="?format=json&bcn=<% name %>&bcv=file">as JSON by file</a>
|
||||
<%if bc.getBlockCount() > maxCachedBlocksByFile %>
|
||||
<br>
|
||||
<b>Note</b>: JSON view of block cache will be incomplete, because block count <% bc.getBlockCount() %> is greater than <i>hbase.ui.blockcache.by.file.max</i> value of <% maxCachedBlocksByFile %>.
|
||||
Increase that value to get a complete picture.
|
||||
</%if>
|
||||
</p>
|
||||
</%def>
|
||||
|
||||
|
|
|
@ -242,6 +242,12 @@ public class BlockCacheUtil {
|
|||
}
|
||||
}
|
||||
|
||||
private static final int DEFAULT_MAX = 1000000;
|
||||
|
||||
public static int getMaxCachedBlocksByFile(Configuration conf) {
|
||||
return conf == null ? DEFAULT_MAX : conf.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);
|
||||
}
|
||||
|
||||
/**
|
||||
* Use one of these to keep a running account of cached blocks by file. Throw it away when done.
|
||||
* This is different than metrics in that it is stats on current state of a cache. See
|
||||
|
@ -259,14 +265,13 @@ public class BlockCacheUtil {
|
|||
* displays warning in red when stats are incomplete.
|
||||
*/
|
||||
private final int max;
|
||||
public static final int DEFAULT_MAX = 1000000;
|
||||
|
||||
CachedBlocksByFile() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
CachedBlocksByFile(final Configuration c) {
|
||||
this.max = c == null ? DEFAULT_MAX : c.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);
|
||||
this.max = getMaxCachedBlocksByFile(c);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue