Class AbstractDNSToSwitchMapping
- All Implemented Interfaces:
Configurable,DNSToSwitchMapping
- Direct Known Subclasses:
CachedDNSToSwitchMapping
It is not mandatory to
derive DNSToSwitchMapping implementations from it, but it is strongly
recommended, as it makes it easy for the Hadoop developers to add new methods
to this base class that are automatically picked up by all implementations.
This class does not extend the Configured
base class, and should not be changed to do so, as it causes problems
for subclasses. The constructor of the Configured calls
the setConf(Configuration) method, which will call into the
subclasses before they have been fully constructed.
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCreate an unconfigured instanceprotectedCreate an instance, caching the configuration file. -
Method Summary
Modifier and TypeMethodDescriptionGenerate a string listing the switch mapping implementation, the mapping for every known node and the number of nodes and unique switches known about -each entry to a separate line.getConf()Return the configuration used by this object.Get a copy of the map (for diagnostics)static booleanisMappingSingleSwitch(DNSToSwitchMapping mapping) Query for aDNSToSwitchMappinginstance being on a single switch.booleanPredicate that indicates that the switch mapping is known to be single-switch.protected booleanvoidsetConf(Configuration conf) Set the configuration to be used by this object.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.hadoop.net.DNSToSwitchMapping
reloadCachedMappings, reloadCachedMappings, resolve
-
Constructor Details
-
AbstractDNSToSwitchMapping
protected AbstractDNSToSwitchMapping()Create an unconfigured instance -
AbstractDNSToSwitchMapping
Create an instance, caching the configuration file. This constructor does not callsetConf(Configuration); if a subclass extracts information in that method, it must call it explicitly.- Parameters:
conf- the configuration
-
-
Method Details
-
getConf
Description copied from interface:ConfigurableReturn the configuration used by this object.- Specified by:
getConfin interfaceConfigurable- Returns:
- Configuration
-
setConf
Description copied from interface:ConfigurableSet the configuration to be used by this object.- Specified by:
setConfin interfaceConfigurable- Parameters:
conf- configuration to be used
-
isSingleSwitch
public boolean isSingleSwitch()Predicate that indicates that the switch mapping is known to be single-switch. The base class returns false: it assumes all mappings are multi-rack. Subclasses may override this with methods that are more aware of their topologies.This method is used when parts of Hadoop need know whether to apply single rack vs multi-rack policies, such as during block placement. Such algorithms behave differently if they are on multi-switch systems.
- Returns:
- true if the mapping thinks that it is on a single switch
-
getSwitchMap
Get a copy of the map (for diagnostics)- Returns:
- a clone of the map or null for none known
-
dumpTopology
Generate a string listing the switch mapping implementation, the mapping for every known node and the number of nodes and unique switches known about -each entry to a separate line.- Returns:
- a string that can be presented to the ops team or used in debug messages.
-
isSingleSwitchByScriptPolicy
protected boolean isSingleSwitchByScriptPolicy() -
isMappingSingleSwitch
Query for aDNSToSwitchMappinginstance being on a single switch.This predicate simply assumes that all mappings not derived from this class are multi-switch.
- Parameters:
mapping- the mapping to query- Returns:
- true if the base class says it is single switch, or the mapping is not derived from this class.
-