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 StringLOCALITY_BLOCKS_LOCALstatic StringLOCALITY_BLOCKS_RATIOstatic StringLOCALITY_BLOCKS_TOTALstatic StringLOCALITY_BYTES_LOCALstatic StringLOCALITY_BYTES_RATIOstatic StringLOCALITY_BYTES_TOTAL
-
Constructor Summary
Constructors Constructor Description HdfsLocalityReporter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SolrInfoBean.CategorygetCategory()Category of this componentStringgetDescription()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.MetricRegistrygetMetricRegistry()An instance ofMetricRegistrythat this component uses for metrics reporting (default is null, which means no registry).StringgetName()Simple common usage name, e.g.voidinitializeMetrics(SolrMetricManager manager, String registryName, String tag, String scope)Provide statistics on HDFS block locality, both in terms of bytes and block counts.voidregisterDirectory(HdfsDirectory dir)Add a directory for block locality reporting.voidsetHost(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:SolrInfoBeanSimple common usage name, e.g. BasicQueryHandler, or fully qualified class name.- Specified by:
getNamein interfaceSolrInfoBean
-
getDescription
public String getDescription()
Description copied from interface:SolrInfoBeanSimple one or two line description- Specified by:
getDescriptionin interfaceSolrInfoBean
-
getCategory
public SolrInfoBean.Category getCategory()
Description copied from interface:SolrInfoBeanCategory of this component- Specified by:
getCategoryin interfaceSolrInfoBean
-
getMetricNames
public Set<String> getMetricNames()
Description copied from interface:SolrInfoBeanModifiable 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:
getMetricNamesin interfaceSolrInfoBean
-
getMetricRegistry
public com.codahale.metrics.MetricRegistry getMetricRegistry()
Description copied from interface:SolrInfoBeanAn instance ofMetricRegistrythat this component uses for metrics reporting (default is null, which means no registry).- Specified by:
getMetricRegistryin 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:
initializeMetricsin interfaceSolrMetricProducer- Parameters:
manager- an instance ofSolrMetricManagerregistryName- 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 thetagwhen 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.
-
-