|
@@ -135,6 +135,8 @@ import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_HA_NN_NOT_BECOME_ACTIVE_I
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_HA_NN_NOT_BECOME_ACTIVE_IN_SAFEMODE_DEFAULT;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_HA_NN_NOT_BECOME_ACTIVE_IN_SAFEMODE_DEFAULT;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_IMAGE_PARALLEL_LOAD_DEFAULT;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_IMAGE_PARALLEL_LOAD_DEFAULT;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_IMAGE_PARALLEL_LOAD_KEY;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_IMAGE_PARALLEL_LOAD_KEY;
|
|
|
|
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_BLOCKPLACEMENTPOLICY_MIN_BLOCKS_FOR_WRITE_DEFAULT;
|
|
|
|
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_BLOCKPLACEMENTPOLICY_MIN_BLOCKS_FOR_WRITE_KEY;
|
|
import static org.apache.hadoop.hdfs.client.HdfsClientConfigKeys.DFS_NAMENODE_RPC_PORT_DEFAULT;
|
|
import static org.apache.hadoop.hdfs.client.HdfsClientConfigKeys.DFS_NAMENODE_RPC_PORT_DEFAULT;
|
|
import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_CALLER_CONTEXT_ENABLED_KEY;
|
|
import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_CALLER_CONTEXT_ENABLED_KEY;
|
|
import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_CALLER_CONTEXT_ENABLED_DEFAULT;
|
|
import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_CALLER_CONTEXT_ENABLED_DEFAULT;
|
|
@@ -362,7 +364,8 @@ public class NameNode extends ReconfigurableBase implements
|
|
DFS_DATANODE_MAX_NODES_TO_REPORT_KEY,
|
|
DFS_DATANODE_MAX_NODES_TO_REPORT_KEY,
|
|
DFS_NAMENODE_RECONSTRUCTION_PENDING_TIMEOUT_SEC_KEY,
|
|
DFS_NAMENODE_RECONSTRUCTION_PENDING_TIMEOUT_SEC_KEY,
|
|
DFS_NAMENODE_DECOMMISSION_BACKOFF_MONITOR_PENDING_LIMIT,
|
|
DFS_NAMENODE_DECOMMISSION_BACKOFF_MONITOR_PENDING_LIMIT,
|
|
- DFS_NAMENODE_DECOMMISSION_BACKOFF_MONITOR_PENDING_BLOCKS_PER_LOCK));
|
|
|
|
|
|
+ DFS_NAMENODE_DECOMMISSION_BACKOFF_MONITOR_PENDING_BLOCKS_PER_LOCK,
|
|
|
|
+ DFS_NAMENODE_BLOCKPLACEMENTPOLICY_MIN_BLOCKS_FOR_WRITE_KEY));
|
|
|
|
|
|
private static final String USAGE = "Usage: hdfs namenode ["
|
|
private static final String USAGE = "Usage: hdfs namenode ["
|
|
+ StartupOption.BACKUP.getName() + "] | \n\t["
|
|
+ StartupOption.BACKUP.getName() + "] | \n\t["
|
|
@@ -2362,6 +2365,8 @@ public class NameNode extends ReconfigurableBase implements
|
|
(property.equals(DFS_NAMENODE_DECOMMISSION_BACKOFF_MONITOR_PENDING_BLOCKS_PER_LOCK))) {
|
|
(property.equals(DFS_NAMENODE_DECOMMISSION_BACKOFF_MONITOR_PENDING_BLOCKS_PER_LOCK))) {
|
|
return reconfigureDecommissionBackoffMonitorParameters(datanodeManager, property,
|
|
return reconfigureDecommissionBackoffMonitorParameters(datanodeManager, property,
|
|
newVal);
|
|
newVal);
|
|
|
|
+ } else if (property.equals(DFS_NAMENODE_BLOCKPLACEMENTPOLICY_MIN_BLOCKS_FOR_WRITE_KEY)) {
|
|
|
|
+ return reconfigureMinBlocksForWrite(property, newVal);
|
|
} else {
|
|
} else {
|
|
throw new ReconfigurationException(property, newVal, getConf().get(
|
|
throw new ReconfigurationException(property, newVal, getConf().get(
|
|
property));
|
|
property));
|
|
@@ -2671,6 +2676,18 @@ public class NameNode extends ReconfigurableBase implements
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private String reconfigureMinBlocksForWrite(String property, String newValue)
|
|
|
|
+ throws ReconfigurationException {
|
|
|
|
+ try {
|
|
|
|
+ int newSetting = adjustNewVal(
|
|
|
|
+ DFS_NAMENODE_BLOCKPLACEMENTPOLICY_MIN_BLOCKS_FOR_WRITE_DEFAULT, newValue);
|
|
|
|
+ namesystem.getBlockManager().setMinBlocksForWrite(newSetting);
|
|
|
|
+ return String.valueOf(newSetting);
|
|
|
|
+ } catch (IllegalArgumentException e) {
|
|
|
|
+ throw new ReconfigurationException(property, newValue, getConf().get(property), e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override // ReconfigurableBase
|
|
@Override // ReconfigurableBase
|
|
protected Configuration getNewConf() {
|
|
protected Configuration getNewConf() {
|
|
return new HdfsConfiguration();
|
|
return new HdfsConfiguration();
|