|
@@ -20,6 +20,8 @@ package org.apache.hadoop.hdfs.server.datanode;
|
|
|
|
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_BLOCKREPORT_INTERVAL_MSEC_KEY;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_BLOCKREPORT_INTERVAL_MSEC_KEY;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_BLOCKREPORT_INTERVAL_MSEC_DEFAULT;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_BLOCKREPORT_INTERVAL_MSEC_DEFAULT;
|
|
|
|
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_CACHEREPORT_INTERVAL_MSEC_DEFAULT;
|
|
|
|
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_CACHEREPORT_INTERVAL_MSEC_KEY;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_ADDRESS_DEFAULT;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_ADDRESS_DEFAULT;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_ADDRESS_KEY;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_ADDRESS_KEY;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_ALLOW_SAME_DISK_TIERING;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_ALLOW_SAME_DISK_TIERING;
|
|
@@ -306,7 +308,8 @@ public class DataNode extends ReconfigurableBase
|
|
DFS_DATANODE_DATA_DIR_KEY,
|
|
DFS_DATANODE_DATA_DIR_KEY,
|
|
DFS_DATANODE_BALANCE_MAX_NUM_CONCURRENT_MOVES_KEY,
|
|
DFS_DATANODE_BALANCE_MAX_NUM_CONCURRENT_MOVES_KEY,
|
|
DFS_BLOCKREPORT_INTERVAL_MSEC_KEY,
|
|
DFS_BLOCKREPORT_INTERVAL_MSEC_KEY,
|
|
- DFS_DATANODE_MAX_RECEIVER_THREADS_KEY));
|
|
|
|
|
|
+ DFS_DATANODE_MAX_RECEIVER_THREADS_KEY,
|
|
|
|
+ DFS_CACHEREPORT_INTERVAL_MSEC_KEY));
|
|
|
|
|
|
public static final Log METRICS_LOG = LogFactory.getLog("DataNodeMetricsLog");
|
|
public static final Log METRICS_LOG = LogFactory.getLog("DataNodeMetricsLog");
|
|
|
|
|
|
@@ -652,6 +655,8 @@ public class DataNode extends ReconfigurableBase
|
|
}
|
|
}
|
|
case DFS_DATANODE_MAX_RECEIVER_THREADS_KEY:
|
|
case DFS_DATANODE_MAX_RECEIVER_THREADS_KEY:
|
|
return reconfDataXceiverParameters(property, newVal);
|
|
return reconfDataXceiverParameters(property, newVal);
|
|
|
|
+ case DFS_CACHEREPORT_INTERVAL_MSEC_KEY:
|
|
|
|
+ return reconfCacheReportParameters(property, newVal);
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -676,6 +681,23 @@ public class DataNode extends ReconfigurableBase
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private String reconfCacheReportParameters(String property, String newVal)
|
|
|
|
+ throws ReconfigurationException {
|
|
|
|
+ String result;
|
|
|
|
+ try {
|
|
|
|
+ LOG.info("Reconfiguring {} to {}", property, newVal);
|
|
|
|
+ Preconditions.checkNotNull(dnConf, "DNConf has not been initialized.");
|
|
|
|
+ long reportInterval = (newVal == null ? DFS_CACHEREPORT_INTERVAL_MSEC_DEFAULT :
|
|
|
|
+ Long.parseLong(newVal));
|
|
|
|
+ result = Long.toString(reportInterval);
|
|
|
|
+ dnConf.setCacheReportInterval(reportInterval);
|
|
|
|
+ LOG.info("RECONFIGURE* changed {} to {}", property, newVal);
|
|
|
|
+ return result;
|
|
|
|
+ } catch (IllegalArgumentException e) {
|
|
|
|
+ throw new ReconfigurationException(property, newVal, getConf().get(property), e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Get a list of the keys of the re-configurable properties in configuration.
|
|
* Get a list of the keys of the re-configurable properties in configuration.
|
|
*/
|
|
*/
|