internal HeartbeatManager(Namesystem namesystem, BlockManager blockManager, Configuration conf) { heartbeatThread = new Daemon(new HeartbeatManager.Monitor(this)); this.namesystem = namesystem; this.blockManager = blockManager; bool avoidStaleDataNodesForWrite = conf.GetBoolean(DFSConfigKeys.DfsNamenodeAvoidStaleDatanodeForWriteKey , DFSConfigKeys.DfsNamenodeAvoidStaleDatanodeForWriteDefault); long recheckInterval = conf.GetInt(DFSConfigKeys.DfsNamenodeHeartbeatRecheckIntervalKey , DFSConfigKeys.DfsNamenodeHeartbeatRecheckIntervalDefault); // 5 min long staleInterval = conf.GetLong(DFSConfigKeys.DfsNamenodeStaleDatanodeIntervalKey , DFSConfigKeys.DfsNamenodeStaleDatanodeIntervalDefault); // 30s if (avoidStaleDataNodesForWrite && staleInterval < recheckInterval) { this.heartbeatRecheckInterval = staleInterval; Log.Info("Setting heartbeat recheck interval to " + staleInterval + " since " + DFSConfigKeys .DfsNamenodeStaleDatanodeIntervalKey + " is less than " + DFSConfigKeys.DfsNamenodeHeartbeatRecheckIntervalKey ); } else { this.heartbeatRecheckInterval = recheckInterval; } }
internal DecommissionManager(Namesystem namesystem, BlockManager blockManager, HeartbeatManager hbManager) { this.namesystem = namesystem; this.blockManager = blockManager; this.hbManager = hbManager; executor = Executors.NewScheduledThreadPool(1, new ThreadFactoryBuilder().SetNameFormat ("DecommissionMonitor-%d").SetDaemon(true).Build()); decomNodeBlocks = new SortedDictionary <DatanodeDescriptor, AbstractList <BlockInfoContiguous > >(); pendingNodes = new List <DatanodeDescriptor>(); }