/// <summary> /// Get an instance of the configured Block Placement Policy based on the /// the configuration property /// <see cref="Org.Apache.Hadoop.Hdfs.DFSConfigKeys.DfsBlockReplicatorClassnameKey"/> /// . /// </summary> /// <param name="conf">the configuration to be used</param> /// <param name="stats">an object that is used to retrieve the load on the cluster</param> /// <param name="clusterMap">the network topology of the cluster</param> /// <returns>an instance of BlockPlacementPolicy</returns> public static BlockPlacementPolicy GetInstance(Configuration conf, FSClusterStats stats, NetworkTopology clusterMap, Host2NodesMap host2datanodeMap) { Type replicatorClass = conf.GetClass <BlockPlacementPolicy>(DFSConfigKeys.DfsBlockReplicatorClassnameKey , DFSConfigKeys.DfsBlockReplicatorClassnameDefault); BlockPlacementPolicy replicator = ReflectionUtils.NewInstance(replicatorClass, conf ); replicator.Initialize(conf, stats, clusterMap, host2datanodeMap); return(replicator); }
protected internal override void Initialize(Configuration conf, FSClusterStats stats , NetworkTopology clusterMap, Host2NodesMap host2datanodeMap) { base.Initialize(conf, stats, clusterMap, host2datanodeMap); }
protected internal BlockPlacementPolicyWithNodeGroup(Configuration conf, FSClusterStats stats, NetworkTopology clusterMap, DatanodeManager datanodeManager) { Initialize(conf, stats, clusterMap, host2datanodeMap); }
/// <summary>Used to setup a BlockPlacementPolicy object.</summary> /// <remarks> /// Used to setup a BlockPlacementPolicy object. This should be defined by /// all implementations of a BlockPlacementPolicy. /// </remarks> /// <param name="conf">the configuration object</param> /// <param name="stats">retrieve cluster status from here</param> /// <param name="clusterMap">cluster topology</param> protected internal abstract void Initialize(Configuration conf, FSClusterStats stats , NetworkTopology clusterMap, Host2NodesMap host2datanodeMap);