Package org.apache.solr.store.hdfs
Class HdfsLocalityReporter
- java.lang.Object
-
- org.apache.solr.store.hdfs.HdfsLocalityReporter
-
- All Implemented Interfaces:
SolrInfoBean
,SolrMetricProducer
public class HdfsLocalityReporter extends Object implements SolrInfoBean, SolrMetricProducer
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.solr.core.SolrInfoBean
SolrInfoBean.Category, SolrInfoBean.Group
-
-
Field Summary
Fields Modifier and Type Field Description static String
LOCALITY_BLOCKS_LOCAL
static String
LOCALITY_BLOCKS_RATIO
static String
LOCALITY_BLOCKS_TOTAL
static String
LOCALITY_BYTES_LOCAL
static String
LOCALITY_BYTES_RATIO
static String
LOCALITY_BYTES_TOTAL
-
Constructor Summary
Constructors Constructor Description HdfsLocalityReporter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SolrInfoBean.Category
getCategory()
Category of this componentString
getDescription()
Simple one or two line descriptionSet<String>
getMetricNames()
Modifiable set of metric names that this component reports (default is null, which means none).com.codahale.metrics.MetricRegistry
getMetricRegistry()
An instance ofMetricRegistry
that this component uses for metrics reporting (default is null, which means no registry).String
getName()
Simple common usage name, e.g.void
initializeMetrics(SolrMetricManager manager, String registryName, String tag, String scope)
Provide statistics on HDFS block locality, both in terms of bytes and block counts.void
registerDirectory(HdfsDirectory dir)
Add a directory for block locality reporting.void
setHost(String hostname)
Set the host name to use when determining locality-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.solr.core.SolrInfoBean
getMetricsSnapshot, registerMetricName
-
Methods inherited from interface org.apache.solr.metrics.SolrMetricProducer
initializeMetrics
-
-
-
-
Field Detail
-
LOCALITY_BYTES_TOTAL
public static final String LOCALITY_BYTES_TOTAL
- See Also:
- Constant Field Values
-
LOCALITY_BYTES_LOCAL
public static final String LOCALITY_BYTES_LOCAL
- See Also:
- Constant Field Values
-
LOCALITY_BYTES_RATIO
public static final String LOCALITY_BYTES_RATIO
- See Also:
- Constant Field Values
-
LOCALITY_BLOCKS_TOTAL
public static final String LOCALITY_BLOCKS_TOTAL
- See Also:
- Constant Field Values
-
LOCALITY_BLOCKS_LOCAL
public static final String LOCALITY_BLOCKS_LOCAL
- See Also:
- Constant Field Values
-
LOCALITY_BLOCKS_RATIO
public static final String LOCALITY_BLOCKS_RATIO
- See Also:
- Constant Field Values
-
-
Method Detail
-
setHost
public void setHost(String hostname)
Set the host name to use when determining locality- Parameters:
hostname
- The name of this host; should correspond to what HDFS Data Nodes think this is.
-
getName
public String getName()
Description copied from interface:SolrInfoBean
Simple common usage name, e.g. BasicQueryHandler, or fully qualified class name.- Specified by:
getName
in interfaceSolrInfoBean
-
getDescription
public String getDescription()
Description copied from interface:SolrInfoBean
Simple one or two line description- Specified by:
getDescription
in interfaceSolrInfoBean
-
getCategory
public SolrInfoBean.Category getCategory()
Description copied from interface:SolrInfoBean
Category of this component- Specified by:
getCategory
in interfaceSolrInfoBean
-
getMetricNames
public Set<String> getMetricNames()
Description copied from interface:SolrInfoBean
Modifiable set of metric names that this component reports (default is null, which means none). If not null then this set is used bySolrInfoBean.registerMetricName(String)
to capture what metrics names are reported from this component.NOTE: this set has to allow iteration under modifications.
- Specified by:
getMetricNames
in interfaceSolrInfoBean
-
getMetricRegistry
public com.codahale.metrics.MetricRegistry getMetricRegistry()
Description copied from interface:SolrInfoBean
An instance ofMetricRegistry
that this component uses for metrics reporting (default is null, which means no registry).- Specified by:
getMetricRegistry
in interfaceSolrInfoBean
-
initializeMetrics
public void initializeMetrics(SolrMetricManager manager, String registryName, String tag, String scope)
Provide statistics on HDFS block locality, both in terms of bytes and block counts.- Specified by:
initializeMetrics
in interfaceSolrMetricProducer
- Parameters:
manager
- an instance ofSolrMetricManager
registryName
- registry name where metrics are registeredtag
- symbolic tag that represents a group of related instances that have the same life-cycle. Parent component can use thetag
when callingSolrMetricManager.unregisterGauges(String, String)
to unregister metrics created by this instance of the producer.scope
- scope of the metrics (eg. handler name) to separate metrics of instances of the same component executing in different contexts
-
registerDirectory
public void registerDirectory(HdfsDirectory dir)
Add a directory for block locality reporting. This directory will continue to be checked until its close method has been called.- Parameters:
dir
- The directory to keep metrics on.
-
-