|
@@ -80,6 +80,8 @@ import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_SLOWDISK_LOW_THR
|
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_SLOWDISK_LOW_THRESHOLD_MS_KEY;
|
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_MAX_SLOWDISKS_TO_EXCLUDE_DEFAULT;
|
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_MAX_SLOWDISKS_TO_EXCLUDE_KEY;
|
|
|
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_SLOW_IO_WARNING_THRESHOLD_DEFAULT;
|
|
|
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_SLOW_IO_WARNING_THRESHOLD_KEY;
|
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_STARTUP_KEY;
|
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_BALANCE_MAX_NUM_CONCURRENT_MOVES_KEY;
|
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_BALANCE_MAX_NUM_CONCURRENT_MOVES_DEFAULT;
|
|
@@ -371,7 +373,8 @@ public class DataNode extends ReconfigurableBase
|
|
|
DFS_DISK_BALANCER_PLAN_VALID_INTERVAL,
|
|
|
DFS_DATANODE_DATA_TRANSFER_BANDWIDTHPERSEC_KEY,
|
|
|
DFS_DATANODE_DATA_WRITE_BANDWIDTHPERSEC_KEY,
|
|
|
- DFS_DATANODE_DATA_READ_BANDWIDTHPERSEC_KEY));
|
|
|
+ DFS_DATANODE_DATA_READ_BANDWIDTHPERSEC_KEY,
|
|
|
+ DFS_DATANODE_SLOW_IO_WARNING_THRESHOLD_KEY));
|
|
|
|
|
|
public static final String METRICS_LOG_NAME = "DataNodeMetricsLog";
|
|
|
|
|
@@ -735,6 +738,8 @@ public class DataNode extends ReconfigurableBase
|
|
|
case DFS_DISK_BALANCER_ENABLED:
|
|
|
case DFS_DISK_BALANCER_PLAN_VALID_INTERVAL:
|
|
|
return reconfDiskBalancerParameters(property, newVal);
|
|
|
+ case DFS_DATANODE_SLOW_IO_WARNING_THRESHOLD_KEY:
|
|
|
+ return reconfSlowIoWarningThresholdParameters(property, newVal);
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
@@ -1056,6 +1061,24 @@ public class DataNode extends ReconfigurableBase
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private String reconfSlowIoWarningThresholdParameters(String property, String newVal)
|
|
|
+ throws ReconfigurationException {
|
|
|
+ String result;
|
|
|
+ try {
|
|
|
+ LOG.info("Reconfiguring {} to {}", property, newVal);
|
|
|
+ Preconditions.checkNotNull(dnConf, "DNConf has not been initialized.");
|
|
|
+ long slowIoWarningThreshold = (newVal == null ?
|
|
|
+ DFS_DATANODE_SLOW_IO_WARNING_THRESHOLD_DEFAULT :
|
|
|
+ Long.parseLong(newVal));
|
|
|
+ result = Long.toString(slowIoWarningThreshold);
|
|
|
+ dnConf.setDatanodeSlowIoWarningThresholdMs(slowIoWarningThreshold);
|
|
|
+ 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.
|
|
|
*/
|