1 /** 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 package org.apache.hadoop.hdfs; 20 21 import java.util.concurrent.TimeUnit; 22 23 import org.apache.hadoop.classification.InterfaceAudience; 24 import org.apache.hadoop.fs.CommonConfigurationKeys; 25 import org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault; 26 import org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.RamDiskReplicaLruTracker; 27 import org.apache.hadoop.hdfs.web.AuthFilter; 28 import org.apache.hadoop.http.HttpConfig; 29 30 /** 31 * This class contains constants for configuration keys used 32 * in hdfs. 33 * 34 */ 35 36 @InterfaceAudience.Private 37 public class DFSConfigKeys extends CommonConfigurationKeys { 38 39 public static final String DFS_BLOCK_SIZE_KEY = "dfs.blocksize"; 40 public static final long DFS_BLOCK_SIZE_DEFAULT = 128*1024*1024; 41 public static final String DFS_REPLICATION_KEY = "dfs.replication"; 42 public static final short DFS_REPLICATION_DEFAULT = 3; 43 public static final String DFS_STREAM_BUFFER_SIZE_KEY = "dfs.stream-buffer-size"; 44 public static final int DFS_STREAM_BUFFER_SIZE_DEFAULT = 4096; 45 public static final String DFS_BYTES_PER_CHECKSUM_KEY = "dfs.bytes-per-checksum"; 46 public static final int DFS_BYTES_PER_CHECKSUM_DEFAULT = 512; 47 public static final String DFS_USER_HOME_DIR_PREFIX_KEY = "dfs.user.home.dir.prefix"; 48 public static final String DFS_USER_HOME_DIR_PREFIX_DEFAULT = "/user"; 49 public static final String DFS_CLIENT_RETRY_POLICY_ENABLED_KEY = "dfs.client.retry.policy.enabled"; 50 public static final boolean DFS_CLIENT_RETRY_POLICY_ENABLED_DEFAULT = false; 51 public static final String DFS_CLIENT_RETRY_POLICY_SPEC_KEY = "dfs.client.retry.policy.spec"; 52 public static final String DFS_CLIENT_RETRY_POLICY_SPEC_DEFAULT = "10000,6,60000,10"; //t1,n1,t2,n2,... 53 public static final String DFS_CHECKSUM_TYPE_KEY = "dfs.checksum.type"; 54 public static final String DFS_CHECKSUM_TYPE_DEFAULT = "CRC32C"; 55 public static final String DFS_CLIENT_WRITE_MAX_PACKETS_IN_FLIGHT_KEY = "dfs.client.write.max-packets-in-flight"; 56 public static final int DFS_CLIENT_WRITE_MAX_PACKETS_IN_FLIGHT_DEFAULT = 80; 57 public static final String DFS_CLIENT_WRITE_PACKET_SIZE_KEY = "dfs.client-write-packet-size"; 58 public static final int DFS_CLIENT_WRITE_PACKET_SIZE_DEFAULT = 64*1024; 59 public static final String DFS_CLIENT_WRITE_BYTE_ARRAY_MANAGER_ENABLED_KEY 60 = "dfs.client.write.byte-array-manager.enabled"; 61 public static final boolean DFS_CLIENT_WRITE_BYTE_ARRAY_MANAGER_ENABLED_DEFAULT 62 = false; 63 public static final String DFS_CLIENT_WRITE_BYTE_ARRAY_MANAGER_COUNT_THRESHOLD_KEY 64 = "dfs.client.write.byte-array-manager.count-threshold"; 65 public static final int DFS_CLIENT_WRITE_BYTE_ARRAY_MANAGER_COUNT_THRESHOLD_DEFAULT 66 = 128; 67 public static final String DFS_CLIENT_WRITE_BYTE_ARRAY_MANAGER_COUNT_LIMIT_KEY 68 = "dfs.client.write.byte-array-manager.count-limit"; 69 public static final int DFS_CLIENT_WRITE_BYTE_ARRAY_MANAGER_COUNT_LIMIT_DEFAULT 70 = 2048; 71 public static final String DFS_CLIENT_WRITE_BYTE_ARRAY_MANAGER_COUNT_RESET_TIME_PERIOD_MS_KEY 72 = "dfs.client.write.byte-array-manager.count-reset-time-period-ms"; 73 public static final long DFS_CLIENT_WRITE_BYTE_ARRAY_MANAGER_COUNT_RESET_TIME_PERIOD_MS_DEFAULT 74 = 10L * 1000; 75 76 public static final String DFS_CLIENT_WRITE_REPLACE_DATANODE_ON_FAILURE_ENABLE_KEY = "dfs.client.block.write.replace-datanode-on-failure.enable"; 77 public static final boolean DFS_CLIENT_WRITE_REPLACE_DATANODE_ON_FAILURE_ENABLE_DEFAULT = true; 78 public static final String DFS_CLIENT_WRITE_REPLACE_DATANODE_ON_FAILURE_POLICY_KEY = "dfs.client.block.write.replace-datanode-on-failure.policy"; 79 public static final String DFS_CLIENT_WRITE_REPLACE_DATANODE_ON_FAILURE_POLICY_DEFAULT = "DEFAULT"; 80 public static final String DFS_CLIENT_WRITE_REPLACE_DATANODE_ON_FAILURE_BEST_EFFORT_KEY = "dfs.client.block.write.replace-datanode-on-failure.best-effort"; 81 public static final boolean DFS_CLIENT_WRITE_REPLACE_DATANODE_ON_FAILURE_BEST_EFFORT_DEFAULT = false; 82 public static final String DFS_CLIENT_SOCKET_CACHE_CAPACITY_KEY = "dfs.client.socketcache.capacity"; 83 public static final int DFS_CLIENT_SOCKET_CACHE_CAPACITY_DEFAULT = 16; 84 public static final String DFS_CLIENT_USE_DN_HOSTNAME = "dfs.client.use.datanode.hostname"; 85 public static final boolean DFS_CLIENT_USE_DN_HOSTNAME_DEFAULT = false; 86 public static final String DFS_CLIENT_CACHE_DROP_BEHIND_WRITES = "dfs.client.cache.drop.behind.writes"; 87 public static final String DFS_CLIENT_CACHE_DROP_BEHIND_READS = "dfs.client.cache.drop.behind.reads"; 88 public static final String DFS_CLIENT_CACHE_READAHEAD = "dfs.client.cache.readahead"; 89 public static final String DFS_CLIENT_CONTEXT = "dfs.client.context"; 90 public static final String DFS_CLIENT_CONTEXT_DEFAULT = "default"; 91 public static final String DFS_HDFS_BLOCKS_METADATA_ENABLED = "dfs.datanode.hdfs-blocks-metadata.enabled"; 92 public static final boolean DFS_HDFS_BLOCKS_METADATA_ENABLED_DEFAULT = false; 93 public static final String DFS_CLIENT_FILE_BLOCK_STORAGE_LOCATIONS_NUM_THREADS = "dfs.client.file-block-storage-locations.num-threads"; 94 public static final int DFS_CLIENT_FILE_BLOCK_STORAGE_LOCATIONS_NUM_THREADS_DEFAULT = 10; 95 public static final String DFS_CLIENT_FILE_BLOCK_STORAGE_LOCATIONS_TIMEOUT_MS = "dfs.client.file-block-storage-locations.timeout.millis"; 96 public static final int DFS_CLIENT_FILE_BLOCK_STORAGE_LOCATIONS_TIMEOUT_MS_DEFAULT = 1000; 97 public static final String DFS_CLIENT_RETRY_TIMES_GET_LAST_BLOCK_LENGTH = "dfs.client.retry.times.get-last-block-length"; 98 public static final int DFS_CLIENT_RETRY_TIMES_GET_LAST_BLOCK_LENGTH_DEFAULT = 3; 99 public static final String DFS_CLIENT_RETRY_INTERVAL_GET_LAST_BLOCK_LENGTH = "dfs.client.retry.interval-ms.get-last-block-length"; 100 public static final int DFS_CLIENT_RETRY_INTERVAL_GET_LAST_BLOCK_LENGTH_DEFAULT = 4000; 101 public static final String DFS_WEBHDFS_ACL_PERMISSION_PATTERN_DEFAULT = 102 "^(default:)?(user|group|mask|other):[[A-Za-z_][A-Za-z0-9._-]]*:([rwx-]{3})?(,(default:)?(user|group|mask|other):[[A-Za-z_][A-Za-z0-9._-]]*:([rwx-]{3})?)*$"; 103 104 // HDFS HTrace configuration is controlled by dfs.htrace.spanreceiver.classes, 105 // etc. 106 public static final String DFS_SERVER_HTRACE_PREFIX = "dfs.htrace."; 107 108 // HDFS client HTrace configuration. 109 public static final String DFS_CLIENT_HTRACE_PREFIX = "dfs.client.htrace."; 110 111 // HA related configuration 112 public static final String DFS_CLIENT_FAILOVER_PROXY_PROVIDER_KEY_PREFIX = "dfs.client.failover.proxy.provider"; 113 public static final String DFS_CLIENT_FAILOVER_MAX_ATTEMPTS_KEY = "dfs.client.failover.max.attempts"; 114 public static final int DFS_CLIENT_FAILOVER_MAX_ATTEMPTS_DEFAULT = 15; 115 public static final String DFS_CLIENT_FAILOVER_SLEEPTIME_BASE_KEY = "dfs.client.failover.sleep.base.millis"; 116 public static final int DFS_CLIENT_FAILOVER_SLEEPTIME_BASE_DEFAULT = 500; 117 public static final String DFS_CLIENT_FAILOVER_SLEEPTIME_MAX_KEY = "dfs.client.failover.sleep.max.millis"; 118 public static final int DFS_CLIENT_FAILOVER_SLEEPTIME_MAX_DEFAULT = 15000; 119 public static final String DFS_CLIENT_FAILOVER_CONNECTION_RETRIES_KEY = "dfs.client.failover.connection.retries"; 120 public static final int DFS_CLIENT_FAILOVER_CONNECTION_RETRIES_DEFAULT = 0; 121 public static final String DFS_CLIENT_FAILOVER_CONNECTION_RETRIES_ON_SOCKET_TIMEOUTS_KEY = "dfs.client.failover.connection.retries.on.timeouts"; 122 public static final int DFS_CLIENT_FAILOVER_CONNECTION_RETRIES_ON_SOCKET_TIMEOUTS_DEFAULT = 0; 123 public static final String DFS_CLIENT_RETRY_MAX_ATTEMPTS_KEY = "dfs.client.retry.max.attempts"; 124 public static final int DFS_CLIENT_RETRY_MAX_ATTEMPTS_DEFAULT = 10; 125 126 public static final String DFS_CLIENT_SOCKET_CACHE_EXPIRY_MSEC_KEY = "dfs.client.socketcache.expiryMsec"; 127 public static final long DFS_CLIENT_SOCKET_CACHE_EXPIRY_MSEC_DEFAULT = 3000; 128 public static final String DFS_CLIENT_WRITE_EXCLUDE_NODES_CACHE_EXPIRY_INTERVAL = "dfs.client.write.exclude.nodes.cache.expiry.interval.millis"; 129 public static final long DFS_CLIENT_WRITE_EXCLUDE_NODES_CACHE_EXPIRY_INTERVAL_DEFAULT = 10 * 60 * 1000; // 10 minutes, in ms 130 public static final String DFS_CLIENT_DATANODE_RESTART_TIMEOUT_KEY = "dfs.client.datanode-restart.timeout"; 131 public static final long DFS_CLIENT_DATANODE_RESTART_TIMEOUT_DEFAULT = 30; 132 public static final String DFS_DATANODE_RESTART_REPLICA_EXPIRY_KEY = "dfs.datanode.restart.replica.expiration"; 133 public static final long DFS_DATANODE_RESTART_REPLICA_EXPIRY_DEFAULT = 50; 134 public static final String DFS_NAMENODE_BACKUP_ADDRESS_KEY = "dfs.namenode.backup.address"; 135 public static final String DFS_NAMENODE_BACKUP_ADDRESS_DEFAULT = "localhost:50100"; 136 public static final String DFS_NAMENODE_BACKUP_HTTP_ADDRESS_KEY = "dfs.namenode.backup.http-address"; 137 public static final String DFS_NAMENODE_BACKUP_HTTP_ADDRESS_DEFAULT = "0.0.0.0:50105"; 138 public static final String DFS_NAMENODE_BACKUP_SERVICE_RPC_ADDRESS_KEY = "dfs.namenode.backup.dnrpc-address"; 139 public static final String DFS_DATANODE_BALANCE_BANDWIDTHPERSEC_KEY = "dfs.datanode.balance.bandwidthPerSec"; 140 public static final long DFS_DATANODE_BALANCE_BANDWIDTHPERSEC_DEFAULT = 1024*1024; 141 public static final String DFS_DATANODE_BALANCE_MAX_NUM_CONCURRENT_MOVES_KEY = "dfs.datanode.balance.max.concurrent.moves"; 142 public static final int DFS_DATANODE_BALANCE_MAX_NUM_CONCURRENT_MOVES_DEFAULT = 5; 143 public static final String DFS_DATANODE_READAHEAD_BYTES_KEY = "dfs.datanode.readahead.bytes"; 144 public static final long DFS_DATANODE_READAHEAD_BYTES_DEFAULT = 4 * 1024 * 1024; // 4MB 145 public static final String DFS_DATANODE_DROP_CACHE_BEHIND_WRITES_KEY = "dfs.datanode.drop.cache.behind.writes"; 146 public static final boolean DFS_DATANODE_DROP_CACHE_BEHIND_WRITES_DEFAULT = false; 147 public static final String DFS_DATANODE_SYNC_BEHIND_WRITES_KEY = "dfs.datanode.sync.behind.writes"; 148 public static final boolean DFS_DATANODE_SYNC_BEHIND_WRITES_DEFAULT = false; 149 public static final String DFS_DATANODE_SYNC_BEHIND_WRITES_IN_BACKGROUND_KEY = "dfs.datanode.sync.behind.writes.in.background"; 150 public static final boolean DFS_DATANODE_SYNC_BEHIND_WRITES_IN_BACKGROUND_DEFAULT = false; 151 public static final String DFS_DATANODE_DROP_CACHE_BEHIND_READS_KEY = "dfs.datanode.drop.cache.behind.reads"; 152 public static final boolean DFS_DATANODE_DROP_CACHE_BEHIND_READS_DEFAULT = false; 153 public static final String DFS_DATANODE_USE_DN_HOSTNAME = "dfs.datanode.use.datanode.hostname"; 154 public static final boolean DFS_DATANODE_USE_DN_HOSTNAME_DEFAULT = false; 155 public static final String DFS_DATANODE_MAX_LOCKED_MEMORY_KEY = "dfs.datanode.max.locked.memory"; 156 public static final long DFS_DATANODE_MAX_LOCKED_MEMORY_DEFAULT = 0; 157 public static final String DFS_DATANODE_FSDATASETCACHE_MAX_THREADS_PER_VOLUME_KEY = "dfs.datanode.fsdatasetcache.max.threads.per.volume"; 158 public static final int DFS_DATANODE_FSDATASETCACHE_MAX_THREADS_PER_VOLUME_DEFAULT = 4; 159 public static final String DFS_DATANODE_LAZY_WRITER_INTERVAL_SEC = "dfs.datanode.lazywriter.interval.sec"; 160 public static final int DFS_DATANODE_LAZY_WRITER_INTERVAL_DEFAULT_SEC = 60; 161 public static final String DFS_DATANODE_RAM_DISK_REPLICA_TRACKER_KEY = "dfs.datanode.ram.disk.replica.tracker"; 162 public static final Class<RamDiskReplicaLruTracker> DFS_DATANODE_RAM_DISK_REPLICA_TRACKER_DEFAULT = RamDiskReplicaLruTracker.class; 163 public static final String DFS_DATANODE_RAM_DISK_LOW_WATERMARK_PERCENT = "dfs.datanode.ram.disk.low.watermark.percent"; 164 public static final float DFS_DATANODE_RAM_DISK_LOW_WATERMARK_PERCENT_DEFAULT = 10.0f; 165 public static final String DFS_DATANODE_RAM_DISK_LOW_WATERMARK_BYTES = "dfs.datanode.ram.disk.low.watermark.bytes"; 166 public static final long DFS_DATANODE_RAM_DISK_LOW_WATERMARK_BYTES_DEFAULT = DFS_BLOCK_SIZE_DEFAULT; 167 public static final String DFS_DATANODE_NETWORK_COUNTS_CACHE_MAX_SIZE_KEY = "dfs.datanode.network.counts.cache.max.size"; 168 public static final int DFS_DATANODE_NETWORK_COUNTS_CACHE_MAX_SIZE_DEFAULT = Integer.MAX_VALUE; 169 170 // This setting is for testing/internal use only. 171 public static final String DFS_DATANODE_DUPLICATE_REPLICA_DELETION = "dfs.datanode.duplicate.replica.deletion"; 172 public static final boolean DFS_DATANODE_DUPLICATE_REPLICA_DELETION_DEFAULT = true; 173 174 public static final String DFS_NAMENODE_PATH_BASED_CACHE_BLOCK_MAP_ALLOCATION_PERCENT = 175 "dfs.namenode.path.based.cache.block.map.allocation.percent"; 176 public static final float DFS_NAMENODE_PATH_BASED_CACHE_BLOCK_MAP_ALLOCATION_PERCENT_DEFAULT = 0.25f; 177 178 public static final String DFS_NAMENODE_HTTP_PORT_KEY = "dfs.http.port"; 179 public static final int DFS_NAMENODE_HTTP_PORT_DEFAULT = 50070; 180 public static final String DFS_NAMENODE_HTTP_ADDRESS_KEY = "dfs.namenode.http-address"; 181 public static final String DFS_NAMENODE_HTTP_ADDRESS_DEFAULT = "0.0.0.0:" + DFS_NAMENODE_HTTP_PORT_DEFAULT; 182 public static final String DFS_NAMENODE_HTTP_BIND_HOST_KEY = "dfs.namenode.http-bind-host"; 183 public static final String DFS_NAMENODE_RPC_ADDRESS_KEY = "dfs.namenode.rpc-address"; 184 public static final String DFS_NAMENODE_RPC_BIND_HOST_KEY = "dfs.namenode.rpc-bind-host"; 185 public static final String DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY = "dfs.namenode.servicerpc-address"; 186 public static final String DFS_NAMENODE_SERVICE_RPC_BIND_HOST_KEY = "dfs.namenode.servicerpc-bind-host"; 187 public static final String DFS_NAMENODE_MAX_OBJECTS_KEY = "dfs.namenode.max.objects"; 188 public static final long DFS_NAMENODE_MAX_OBJECTS_DEFAULT = 0; 189 public static final String DFS_NAMENODE_SAFEMODE_EXTENSION_KEY = "dfs.namenode.safemode.extension"; 190 public static final int DFS_NAMENODE_SAFEMODE_EXTENSION_DEFAULT = 30000; 191 public static final String DFS_NAMENODE_SAFEMODE_THRESHOLD_PCT_KEY = "dfs.namenode.safemode.threshold-pct"; 192 public static final float DFS_NAMENODE_SAFEMODE_THRESHOLD_PCT_DEFAULT = 0.999f; 193 // set this to a slightly smaller value than 194 // DFS_NAMENODE_SAFEMODE_THRESHOLD_PCT_DEFAULT to populate 195 // needed replication queues before exiting safe mode 196 public static final String DFS_NAMENODE_REPL_QUEUE_THRESHOLD_PCT_KEY = 197 "dfs.namenode.replqueue.threshold-pct"; 198 public static final String DFS_NAMENODE_SAFEMODE_MIN_DATANODES_KEY = "dfs.namenode.safemode.min.datanodes"; 199 public static final int DFS_NAMENODE_SAFEMODE_MIN_DATANODES_DEFAULT = 0; 200 public static final String DFS_NAMENODE_SECONDARY_HTTP_ADDRESS_KEY = "dfs.namenode.secondary.http-address"; 201 public static final String DFS_NAMENODE_SECONDARY_HTTP_ADDRESS_DEFAULT = "0.0.0.0:50090"; 202 public static final String DFS_NAMENODE_SECONDARY_HTTPS_ADDRESS_KEY = "dfs.namenode.secondary.https-address"; 203 public static final String DFS_NAMENODE_SECONDARY_HTTPS_ADDRESS_DEFAULT = "0.0.0.0:50091"; 204 public static final String DFS_NAMENODE_CHECKPOINT_CHECK_PERIOD_KEY = "dfs.namenode.checkpoint.check.period"; 205 public static final long DFS_NAMENODE_CHECKPOINT_CHECK_PERIOD_DEFAULT = 60; 206 public static final String DFS_NAMENODE_CHECKPOINT_PERIOD_KEY = "dfs.namenode.checkpoint.period"; 207 public static final long DFS_NAMENODE_CHECKPOINT_PERIOD_DEFAULT = 3600; 208 public static final String DFS_NAMENODE_CHECKPOINT_TXNS_KEY = "dfs.namenode.checkpoint.txns"; 209 public static final long DFS_NAMENODE_CHECKPOINT_TXNS_DEFAULT = 1000000; 210 public static final String DFS_NAMENODE_CHECKPOINT_MAX_RETRIES_KEY = "dfs.namenode.checkpoint.max-retries"; 211 public static final int DFS_NAMENODE_CHECKPOINT_MAX_RETRIES_DEFAULT = 3; 212 public static final String DFS_NAMENODE_HEARTBEAT_RECHECK_INTERVAL_KEY = "dfs.namenode.heartbeat.recheck-interval"; 213 public static final int DFS_NAMENODE_HEARTBEAT_RECHECK_INTERVAL_DEFAULT = 5*60*1000; 214 public static final String DFS_NAMENODE_TOLERATE_HEARTBEAT_MULTIPLIER_KEY = "dfs.namenode.tolerate.heartbeat.multiplier"; 215 public static final int DFS_NAMENODE_TOLERATE_HEARTBEAT_MULTIPLIER_DEFAULT = 4; 216 public static final String DFS_CLIENT_HTTPS_KEYSTORE_RESOURCE_KEY = "dfs.client.https.keystore.resource"; 217 public static final String DFS_CLIENT_HTTPS_KEYSTORE_RESOURCE_DEFAULT = "ssl-client.xml"; 218 public static final String DFS_CLIENT_HTTPS_NEED_AUTH_KEY = "dfs.client.https.need-auth"; 219 public static final boolean DFS_CLIENT_HTTPS_NEED_AUTH_DEFAULT = false; 220 public static final String DFS_CLIENT_CACHED_CONN_RETRY_KEY = "dfs.client.cached.conn.retry"; 221 public static final int DFS_CLIENT_CACHED_CONN_RETRY_DEFAULT = 3; 222 public static final String DFS_NAMENODE_ACCESSTIME_PRECISION_KEY = "dfs.namenode.accesstime.precision"; 223 public static final long DFS_NAMENODE_ACCESSTIME_PRECISION_DEFAULT = 3600000; 224 public static final String DFS_NAMENODE_REPLICATION_CONSIDERLOAD_KEY = "dfs.namenode.replication.considerLoad"; 225 public static final boolean DFS_NAMENODE_REPLICATION_CONSIDERLOAD_DEFAULT = true; 226 public static final String DFS_NAMENODE_REPLICATION_INTERVAL_KEY = "dfs.namenode.replication.interval"; 227 public static final int DFS_NAMENODE_REPLICATION_INTERVAL_DEFAULT = 3; 228 public static final String DFS_NAMENODE_REPLICATION_MIN_KEY = "dfs.namenode.replication.min"; 229 public static final int DFS_NAMENODE_REPLICATION_MIN_DEFAULT = 1; 230 public static final String DFS_NAMENODE_REPLICATION_PENDING_TIMEOUT_SEC_KEY = "dfs.namenode.replication.pending.timeout-sec"; 231 public static final int DFS_NAMENODE_REPLICATION_PENDING_TIMEOUT_SEC_DEFAULT = -1; 232 public static final String DFS_NAMENODE_REPLICATION_MAX_STREAMS_KEY = "dfs.namenode.replication.max-streams"; 233 public static final int DFS_NAMENODE_REPLICATION_MAX_STREAMS_DEFAULT = 2; 234 public static final String DFS_NAMENODE_REPLICATION_STREAMS_HARD_LIMIT_KEY = "dfs.namenode.replication.max-streams-hard-limit"; 235 public static final int DFS_NAMENODE_REPLICATION_STREAMS_HARD_LIMIT_DEFAULT = 4; 236 public static final String DFS_WEBHDFS_AUTHENTICATION_FILTER_KEY = "dfs.web.authentication.filter"; 237 public static final String DFS_WEBHDFS_AUTHENTICATION_FILTER_DEFAULT = AuthFilter.class.getName(); 238 public static final String DFS_WEBHDFS_ENABLED_KEY = "dfs.webhdfs.enabled"; 239 public static final boolean DFS_WEBHDFS_ENABLED_DEFAULT = true; 240 public static final String DFS_WEBHDFS_USER_PATTERN_KEY = "dfs.webhdfs.user.provider.user.pattern"; 241 public static final String DFS_WEBHDFS_USER_PATTERN_DEFAULT = "^[A-Za-z_][A-Za-z0-9._-]*[$]?$"; 242 public static final String DFS_PERMISSIONS_ENABLED_KEY = "dfs.permissions.enabled"; 243 public static final boolean DFS_PERMISSIONS_ENABLED_DEFAULT = true; 244 public static final String DFS_PERMISSIONS_SUPERUSERGROUP_KEY = "dfs.permissions.superusergroup"; 245 public static final String DFS_PERMISSIONS_SUPERUSERGROUP_DEFAULT = "supergroup"; 246 public static final String DFS_NAMENODE_ACLS_ENABLED_KEY = "dfs.namenode.acls.enabled"; 247 public static final boolean DFS_NAMENODE_ACLS_ENABLED_DEFAULT = false; 248 public static final String DFS_NAMENODE_XATTRS_ENABLED_KEY = "dfs.namenode.xattrs.enabled"; 249 public static final boolean DFS_NAMENODE_XATTRS_ENABLED_DEFAULT = true; 250 public static final String DFS_ADMIN = "dfs.cluster.administrators"; 251 public static final String DFS_SERVER_HTTPS_KEYSTORE_RESOURCE_KEY = "dfs.https.server.keystore.resource"; 252 public static final String DFS_SERVER_HTTPS_KEYSTORE_RESOURCE_DEFAULT = "ssl-server.xml"; 253 public static final String DFS_SERVER_HTTPS_KEYPASSWORD_KEY = "ssl.server.keystore.keypassword"; 254 public static final String DFS_SERVER_HTTPS_KEYSTORE_PASSWORD_KEY = "ssl.server.keystore.password"; 255 public static final String DFS_SERVER_HTTPS_TRUSTSTORE_PASSWORD_KEY = "ssl.server.truststore.password"; 256 public static final String DFS_NAMENODE_NAME_DIR_RESTORE_KEY = "dfs.namenode.name.dir.restore"; 257 public static final boolean DFS_NAMENODE_NAME_DIR_RESTORE_DEFAULT = false; 258 public static final String DFS_NAMENODE_SUPPORT_ALLOW_FORMAT_KEY = "dfs.namenode.support.allow.format"; 259 public static final boolean DFS_NAMENODE_SUPPORT_ALLOW_FORMAT_DEFAULT = true; 260 public static final String DFS_NAMENODE_NUM_CHECKPOINTS_RETAINED_KEY = "dfs.namenode.num.checkpoints.retained"; 261 public static final int DFS_NAMENODE_NUM_CHECKPOINTS_RETAINED_DEFAULT = 2; 262 public static final String DFS_NAMENODE_NUM_EXTRA_EDITS_RETAINED_KEY = "dfs.namenode.num.extra.edits.retained"; 263 public static final int DFS_NAMENODE_NUM_EXTRA_EDITS_RETAINED_DEFAULT = 1000000; //1M 264 public static final String DFS_NAMENODE_MAX_EXTRA_EDITS_SEGMENTS_RETAINED_KEY = "dfs.namenode.max.extra.edits.segments.retained"; 265 public static final int DFS_NAMENODE_MAX_EXTRA_EDITS_SEGMENTS_RETAINED_DEFAULT = 10000; // 10k 266 public static final String DFS_NAMENODE_MIN_SUPPORTED_DATANODE_VERSION_KEY = "dfs.namenode.min.supported.datanode.version"; 267 public static final String DFS_NAMENODE_MIN_SUPPORTED_DATANODE_VERSION_DEFAULT = "2.1.0-beta"; 268 269 public static final String DFS_NAMENODE_EDITS_DIR_MINIMUM_KEY = "dfs.namenode.edits.dir.minimum"; 270 public static final int DFS_NAMENODE_EDITS_DIR_MINIMUM_DEFAULT = 1; 271 272 public static final String DFS_NAMENODE_EDIT_LOG_AUTOROLL_MULTIPLIER_THRESHOLD = "dfs.namenode.edit.log.autoroll.multiplier.threshold"; 273 public static final float DFS_NAMENODE_EDIT_LOG_AUTOROLL_MULTIPLIER_THRESHOLD_DEFAULT = 2.0f; 274 public static final String DFS_NAMENODE_EDIT_LOG_AUTOROLL_CHECK_INTERVAL_MS = "dfs.namenode.edit.log.autoroll.check.interval.ms"; 275 public static final int DFS_NAMENODE_EDIT_LOG_AUTOROLL_CHECK_INTERVAL_MS_DEFAULT = 5*60*1000; 276 277 public static final String DFS_NAMENODE_LAZY_PERSIST_FILE_SCRUB_INTERVAL_SEC = "dfs.namenode.lazypersist.file.scrub.interval.sec"; 278 public static final int DFS_NAMENODE_LAZY_PERSIST_FILE_SCRUB_INTERVAL_SEC_DEFAULT = 5 * 60; 279 280 public static final String DFS_NAMENODE_EDITS_NOEDITLOGCHANNELFLUSH = "dfs.namenode.edits.noeditlogchannelflush"; 281 public static final boolean DFS_NAMENODE_EDITS_NOEDITLOGCHANNELFLUSH_DEFAULT = false; 282 283 public static final String DFS_LIST_LIMIT = "dfs.ls.limit"; 284 public static final int DFS_LIST_LIMIT_DEFAULT = 1000; 285 public static final String DFS_CONTENT_SUMMARY_LIMIT_KEY = "dfs.content-summary.limit"; 286 public static final int DFS_CONTENT_SUMMARY_LIMIT_DEFAULT = 5000; 287 public static final String DFS_CONTENT_SUMMARY_SLEEP_MICROSEC_KEY = "dfs.content-summary.sleep-microsec"; 288 public static final long DFS_CONTENT_SUMMARY_SLEEP_MICROSEC_DEFAULT = 500; 289 public static final String DFS_DATANODE_FAILED_VOLUMES_TOLERATED_KEY = "dfs.datanode.failed.volumes.tolerated"; 290 public static final int DFS_DATANODE_FAILED_VOLUMES_TOLERATED_DEFAULT = 0; 291 public static final String DFS_DATANODE_SYNCONCLOSE_KEY = "dfs.datanode.synconclose"; 292 public static final boolean DFS_DATANODE_SYNCONCLOSE_DEFAULT = false; 293 public static final String DFS_DATANODE_SOCKET_REUSE_KEEPALIVE_KEY = "dfs.datanode.socket.reuse.keepalive"; 294 public static final int DFS_DATANODE_SOCKET_REUSE_KEEPALIVE_DEFAULT = 4000; 295 public static final String DFS_DATANODE_OOB_TIMEOUT_KEY = "dfs.datanode.oob.timeout-ms"; 296 public static final String DFS_DATANODE_OOB_TIMEOUT_DEFAULT = "1500,0,0,0"; // OOB_TYPE1, OOB_TYPE2, OOB_TYPE3, OOB_TYPE4 297 298 public static final String DFS_DATANODE_CACHE_REVOCATION_TIMEOUT_MS = "dfs.datanode.cache.revocation.timeout.ms"; 299 public static final long DFS_DATANODE_CACHE_REVOCATION_TIMEOUT_MS_DEFAULT = 900000L; 300 301 public static final String DFS_DATANODE_CACHE_REVOCATION_POLLING_MS = "dfs.datanode.cache.revocation.polling.ms"; 302 public static final long DFS_DATANODE_CACHE_REVOCATION_POLLING_MS_DEFAULT = 500L; 303 304 public static final String DFS_NAMENODE_DATANODE_REGISTRATION_IP_HOSTNAME_CHECK_KEY = "dfs.namenode.datanode.registration.ip-hostname-check"; 305 public static final boolean DFS_NAMENODE_DATANODE_REGISTRATION_IP_HOSTNAME_CHECK_DEFAULT = true; 306 307 public static final String DFS_NAMENODE_LIST_CACHE_POOLS_NUM_RESPONSES = 308 "dfs.namenode.list.cache.pools.num.responses"; 309 public static final int DFS_NAMENODE_LIST_CACHE_POOLS_NUM_RESPONSES_DEFAULT = 100; 310 public static final String DFS_NAMENODE_LIST_CACHE_DIRECTIVES_NUM_RESPONSES = 311 "dfs.namenode.list.cache.directives.num.responses"; 312 public static final int DFS_NAMENODE_LIST_CACHE_DIRECTIVES_NUM_RESPONSES_DEFAULT = 100; 313 public static final String DFS_NAMENODE_PATH_BASED_CACHE_REFRESH_INTERVAL_MS = 314 "dfs.namenode.path.based.cache.refresh.interval.ms"; 315 public static final long DFS_NAMENODE_PATH_BASED_CACHE_REFRESH_INTERVAL_MS_DEFAULT = 30000L; 316 317 /** Pending period of block deletion since NameNode startup */ 318 public static final String DFS_NAMENODE_STARTUP_DELAY_BLOCK_DELETION_SEC_KEY = "dfs.namenode.startup.delay.block.deletion.sec"; 319 public static final long DFS_NAMENODE_STARTUP_DELAY_BLOCK_DELETION_SEC_DEFAULT = 0L; 320 321 // Whether to enable datanode's stale state detection and usage for reads 322 public static final String DFS_NAMENODE_AVOID_STALE_DATANODE_FOR_READ_KEY = "dfs.namenode.avoid.read.stale.datanode"; 323 public static final boolean DFS_NAMENODE_AVOID_STALE_DATANODE_FOR_READ_DEFAULT = false; 324 // Whether to enable datanode's stale state detection and usage for writes 325 public static final String DFS_NAMENODE_AVOID_STALE_DATANODE_FOR_WRITE_KEY = "dfs.namenode.avoid.write.stale.datanode"; 326 public static final boolean DFS_NAMENODE_AVOID_STALE_DATANODE_FOR_WRITE_DEFAULT = false; 327 // The default value of the time interval for marking datanodes as stale 328 public static final String DFS_NAMENODE_STALE_DATANODE_INTERVAL_KEY = "dfs.namenode.stale.datanode.interval"; 329 public static final long DFS_NAMENODE_STALE_DATANODE_INTERVAL_DEFAULT = 30 * 1000; // 30s 330 // The stale interval cannot be too small since otherwise this may cause too frequent churn on stale states. 331 // This value uses the times of heartbeat interval to define the minimum value for stale interval. 332 public static final String DFS_NAMENODE_STALE_DATANODE_MINIMUM_INTERVAL_KEY = "dfs.namenode.stale.datanode.minimum.interval"; 333 public static final int DFS_NAMENODE_STALE_DATANODE_MINIMUM_INTERVAL_DEFAULT = 3; // i.e. min_interval is 3 * heartbeat_interval = 9s 334 335 // When the percentage of stale datanodes reaches this ratio, 336 // allow writing to stale nodes to prevent hotspots. 337 public static final String DFS_NAMENODE_USE_STALE_DATANODE_FOR_WRITE_RATIO_KEY = "dfs.namenode.write.stale.datanode.ratio"; 338 public static final float DFS_NAMENODE_USE_STALE_DATANODE_FOR_WRITE_RATIO_DEFAULT = 0.5f; 339 340 // Number of blocks to rescan for each iteration of postponedMisreplicatedBlocks. 341 public static final String DFS_NAMENODE_BLOCKS_PER_POSTPONEDBLOCKS_RESCAN_KEY = "dfs.namenode.blocks.per.postponedblocks.rescan"; 342 public static final long DFS_NAMENODE_BLOCKS_PER_POSTPONEDBLOCKS_RESCAN_KEY_DEFAULT = 10000; 343 344 // Replication monitoring related keys 345 public static final String DFS_NAMENODE_INVALIDATE_WORK_PCT_PER_ITERATION = 346 "dfs.namenode.invalidate.work.pct.per.iteration"; 347 public static final float DFS_NAMENODE_INVALIDATE_WORK_PCT_PER_ITERATION_DEFAULT = 0.32f; 348 public static final String DFS_NAMENODE_REPLICATION_WORK_MULTIPLIER_PER_ITERATION = 349 "dfs.namenode.replication.work.multiplier.per.iteration"; 350 public static final int DFS_NAMENODE_REPLICATION_WORK_MULTIPLIER_PER_ITERATION_DEFAULT = 2; 351 352 //Delegation token related keys 353 public static final String DFS_NAMENODE_DELEGATION_KEY_UPDATE_INTERVAL_KEY = "dfs.namenode.delegation.key.update-interval"; 354 public static final long DFS_NAMENODE_DELEGATION_KEY_UPDATE_INTERVAL_DEFAULT = 24*60*60*1000; // 1 day 355 public static final String DFS_NAMENODE_DELEGATION_TOKEN_RENEW_INTERVAL_KEY = "dfs.namenode.delegation.token.renew-interval"; 356 public static final long DFS_NAMENODE_DELEGATION_TOKEN_RENEW_INTERVAL_DEFAULT = 24*60*60*1000; // 1 day 357 public static final String DFS_NAMENODE_DELEGATION_TOKEN_MAX_LIFETIME_KEY = "dfs.namenode.delegation.token.max-lifetime"; 358 public static final long DFS_NAMENODE_DELEGATION_TOKEN_MAX_LIFETIME_DEFAULT = 7*24*60*60*1000; // 7 days 359 public static final String DFS_NAMENODE_DELEGATION_TOKEN_ALWAYS_USE_KEY = "dfs.namenode.delegation.token.always-use"; // for tests 360 public static final boolean DFS_NAMENODE_DELEGATION_TOKEN_ALWAYS_USE_DEFAULT = false; 361 362 //Filesystem limit keys 363 public static final String DFS_NAMENODE_MAX_COMPONENT_LENGTH_KEY = "dfs.namenode.fs-limits.max-component-length"; 364 public static final int DFS_NAMENODE_MAX_COMPONENT_LENGTH_DEFAULT = 255; 365 public static final String DFS_NAMENODE_MAX_DIRECTORY_ITEMS_KEY = "dfs.namenode.fs-limits.max-directory-items"; 366 public static final int DFS_NAMENODE_MAX_DIRECTORY_ITEMS_DEFAULT = 1024*1024; 367 public static final String DFS_NAMENODE_MIN_BLOCK_SIZE_KEY = "dfs.namenode.fs-limits.min-block-size"; 368 public static final long DFS_NAMENODE_MIN_BLOCK_SIZE_DEFAULT = 1024*1024; 369 public static final String DFS_NAMENODE_MAX_BLOCKS_PER_FILE_KEY = "dfs.namenode.fs-limits.max-blocks-per-file"; 370 public static final long DFS_NAMENODE_MAX_BLOCKS_PER_FILE_DEFAULT = 1024*1024; 371 public static final String DFS_NAMENODE_MAX_XATTRS_PER_INODE_KEY = "dfs.namenode.fs-limits.max-xattrs-per-inode"; 372 public static final int DFS_NAMENODE_MAX_XATTRS_PER_INODE_DEFAULT = 32; 373 public static final String DFS_NAMENODE_MAX_XATTR_SIZE_KEY = "dfs.namenode.fs-limits.max-xattr-size"; 374 public static final int DFS_NAMENODE_MAX_XATTR_SIZE_DEFAULT = 16384; 375 376 377 //Following keys have no defaults 378 public static final String DFS_DATANODE_DATA_DIR_KEY = "dfs.datanode.data.dir"; 379 public static final String DFS_NAMENODE_HTTPS_PORT_KEY = "dfs.https.port"; 380 public static final int DFS_NAMENODE_HTTPS_PORT_DEFAULT = 50470; 381 public static final String DFS_NAMENODE_HTTPS_ADDRESS_KEY = "dfs.namenode.https-address"; 382 public static final String DFS_NAMENODE_HTTPS_BIND_HOST_KEY = "dfs.namenode.https-bind-host"; 383 public static final String DFS_NAMENODE_HTTPS_ADDRESS_DEFAULT = "0.0.0.0:" + DFS_NAMENODE_HTTPS_PORT_DEFAULT; 384 public static final String DFS_NAMENODE_NAME_DIR_KEY = "dfs.namenode.name.dir"; 385 public static final String DFS_NAMENODE_EDITS_DIR_KEY = "dfs.namenode.edits.dir"; 386 public static final String DFS_NAMENODE_SHARED_EDITS_DIR_KEY = "dfs.namenode.shared.edits.dir"; 387 public static final String DFS_NAMENODE_EDITS_PLUGIN_PREFIX = "dfs.namenode.edits.journal-plugin"; 388 public static final String DFS_NAMENODE_EDITS_DIR_REQUIRED_KEY = "dfs.namenode.edits.dir.required"; 389 public static final String DFS_NAMENODE_EDITS_DIR_DEFAULT = "file:///tmp/hadoop/dfs/name"; 390 public static final String DFS_CLIENT_READ_PREFETCH_SIZE_KEY = "dfs.client.read.prefetch.size"; 391 public static final String DFS_CLIENT_RETRY_WINDOW_BASE= "dfs.client.retry.window.base"; 392 public static final String DFS_METRICS_SESSION_ID_KEY = "dfs.metrics.session-id"; 393 public static final String DFS_METRICS_PERCENTILES_INTERVALS_KEY = "dfs.metrics.percentiles.intervals"; 394 public static final String DFS_DATANODE_HOST_NAME_KEY = "dfs.datanode.hostname"; 395 public static final String DFS_NAMENODE_HOSTS_KEY = "dfs.namenode.hosts"; 396 public static final String DFS_NAMENODE_HOSTS_EXCLUDE_KEY = "dfs.namenode.hosts.exclude"; 397 public static final String DFS_CLIENT_SOCKET_TIMEOUT_KEY = "dfs.client.socket-timeout"; 398 public static final String DFS_NAMENODE_CHECKPOINT_DIR_KEY = "dfs.namenode.checkpoint.dir"; 399 public static final String DFS_NAMENODE_CHECKPOINT_EDITS_DIR_KEY = "dfs.namenode.checkpoint.edits.dir"; 400 public static final String DFS_HOSTS = "dfs.hosts"; 401 public static final String DFS_HOSTS_EXCLUDE = "dfs.hosts.exclude"; 402 public static final String DFS_CLIENT_LOCAL_INTERFACES = "dfs.client.local.interfaces"; 403 public static final String DFS_NAMENODE_AUDIT_LOGGERS_KEY = "dfs.namenode.audit.loggers"; 404 public static final String DFS_NAMENODE_DEFAULT_AUDIT_LOGGER_NAME = "default"; 405 public static final String DFS_NAMENODE_AUDIT_LOG_TOKEN_TRACKING_ID_KEY = "dfs.namenode.audit.log.token.tracking.id"; 406 public static final boolean DFS_NAMENODE_AUDIT_LOG_TOKEN_TRACKING_ID_DEFAULT = false; 407 public static final String DFS_NAMENODE_AUDIT_LOG_ASYNC_KEY = "dfs.namenode.audit.log.async"; 408 public static final boolean DFS_NAMENODE_AUDIT_LOG_ASYNC_DEFAULT = false; 409 410 // Much code in hdfs is not yet updated to use these keys. 411 public static final String DFS_CLIENT_BLOCK_WRITE_LOCATEFOLLOWINGBLOCK_RETRIES_KEY = "dfs.client.block.write.locateFollowingBlock.retries"; 412 public static final int DFS_CLIENT_BLOCK_WRITE_LOCATEFOLLOWINGBLOCK_RETRIES_DEFAULT = 5; 413 public static final String DFS_CLIENT_BLOCK_WRITE_RETRIES_KEY = "dfs.client.block.write.retries"; 414 public static final int DFS_CLIENT_BLOCK_WRITE_RETRIES_DEFAULT = 3; 415 public static final String DFS_CLIENT_MAX_BLOCK_ACQUIRE_FAILURES_KEY = "dfs.client.max.block.acquire.failures"; 416 public static final int DFS_CLIENT_MAX_BLOCK_ACQUIRE_FAILURES_DEFAULT = 3; 417 public static final String DFS_CLIENT_USE_LEGACY_BLOCKREADER = "dfs.client.use.legacy.blockreader"; 418 public static final boolean DFS_CLIENT_USE_LEGACY_BLOCKREADER_DEFAULT = false; 419 public static final String DFS_CLIENT_USE_LEGACY_BLOCKREADERLOCAL = "dfs.client.use.legacy.blockreader.local"; 420 public static final boolean DFS_CLIENT_USE_LEGACY_BLOCKREADERLOCAL_DEFAULT = false; 421 public static final String DFS_BALANCER_MOVEDWINWIDTH_KEY = "dfs.balancer.movedWinWidth"; 422 public static final long DFS_BALANCER_MOVEDWINWIDTH_DEFAULT = 5400*1000L; 423 public static final String DFS_BALANCER_MOVERTHREADS_KEY = "dfs.balancer.moverThreads"; 424 public static final int DFS_BALANCER_MOVERTHREADS_DEFAULT = 1000; 425 public static final String DFS_BALANCER_DISPATCHERTHREADS_KEY = "dfs.balancer.dispatcherThreads"; 426 public static final int DFS_BALANCER_DISPATCHERTHREADS_DEFAULT = 200; 427 428 public static final String DFS_MOVER_MOVEDWINWIDTH_KEY = "dfs.mover.movedWinWidth"; 429 public static final long DFS_MOVER_MOVEDWINWIDTH_DEFAULT = 5400*1000L; 430 public static final String DFS_MOVER_MOVERTHREADS_KEY = "dfs.mover.moverThreads"; 431 public static final int DFS_MOVER_MOVERTHREADS_DEFAULT = 1000; 432 public static final String DFS_MOVER_RETRY_MAX_ATTEMPTS_KEY = "dfs.mover.retry.max.attempts"; 433 public static final int DFS_MOVER_RETRY_MAX_ATTEMPTS_DEFAULT = 10; 434 435 public static final String DFS_DATANODE_ADDRESS_KEY = "dfs.datanode.address"; 436 public static final int DFS_DATANODE_DEFAULT_PORT = 50010; 437 public static final String DFS_DATANODE_ADDRESS_DEFAULT = "0.0.0.0:" + DFS_DATANODE_DEFAULT_PORT; 438 public static final String DFS_DATANODE_DATA_DIR_PERMISSION_KEY = "dfs.datanode.data.dir.perm"; 439 public static final String DFS_DATANODE_DATA_DIR_PERMISSION_DEFAULT = "700"; 440 public static final String DFS_DATANODE_DIRECTORYSCAN_INTERVAL_KEY = "dfs.datanode.directoryscan.interval"; 441 public static final int DFS_DATANODE_DIRECTORYSCAN_INTERVAL_DEFAULT = 21600; 442 public static final String DFS_DATANODE_DIRECTORYSCAN_THREADS_KEY = "dfs.datanode.directoryscan.threads"; 443 public static final int DFS_DATANODE_DIRECTORYSCAN_THREADS_DEFAULT = 1; 444 public static final String DFS_DATANODE_DNS_INTERFACE_KEY = "dfs.datanode.dns.interface"; 445 public static final String DFS_DATANODE_DNS_INTERFACE_DEFAULT = "default"; 446 public static final String DFS_DATANODE_DNS_NAMESERVER_KEY = "dfs.datanode.dns.nameserver"; 447 public static final String DFS_DATANODE_DNS_NAMESERVER_DEFAULT = "default"; 448 public static final String DFS_DATANODE_DU_RESERVED_KEY = "dfs.datanode.du.reserved"; 449 public static final long DFS_DATANODE_DU_RESERVED_DEFAULT = 0; 450 public static final String DFS_DATANODE_HANDLER_COUNT_KEY = "dfs.datanode.handler.count"; 451 public static final int DFS_DATANODE_HANDLER_COUNT_DEFAULT = 10; 452 public static final String DFS_DATANODE_HTTP_ADDRESS_KEY = "dfs.datanode.http.address"; 453 public static final int DFS_DATANODE_HTTP_DEFAULT_PORT = 50075; 454 public static final String DFS_DATANODE_HTTP_ADDRESS_DEFAULT = "0.0.0.0:" + DFS_DATANODE_HTTP_DEFAULT_PORT; 455 public static final String DFS_DATANODE_MAX_RECEIVER_THREADS_KEY = "dfs.datanode.max.transfer.threads"; 456 public static final int DFS_DATANODE_MAX_RECEIVER_THREADS_DEFAULT = 4096; 457 public static final String DFS_DATANODE_SCAN_PERIOD_HOURS_KEY = "dfs.datanode.scan.period.hours"; 458 public static final int DFS_DATANODE_SCAN_PERIOD_HOURS_DEFAULT = 21 * 24; // 3 weeks. 459 public static final String DFS_BLOCK_SCANNER_VOLUME_BYTES_PER_SECOND = "dfs.block.scanner.volume.bytes.per.second"; 460 public static final long DFS_BLOCK_SCANNER_VOLUME_BYTES_PER_SECOND_DEFAULT = 1048576L; 461 public static final String DFS_DATANODE_TRANSFERTO_ALLOWED_KEY = "dfs.datanode.transferTo.allowed"; 462 public static final boolean DFS_DATANODE_TRANSFERTO_ALLOWED_DEFAULT = true; 463 public static final String DFS_HEARTBEAT_INTERVAL_KEY = "dfs.heartbeat.interval"; 464 public static final long DFS_HEARTBEAT_INTERVAL_DEFAULT = 3; 465 public static final String DFS_NAMENODE_PATH_BASED_CACHE_RETRY_INTERVAL_MS = "dfs.namenode.path.based.cache.retry.interval.ms"; 466 public static final long DFS_NAMENODE_PATH_BASED_CACHE_RETRY_INTERVAL_MS_DEFAULT = 30000L; 467 public static final String DFS_NAMENODE_DECOMMISSION_INTERVAL_KEY = "dfs.namenode.decommission.interval"; 468 public static final int DFS_NAMENODE_DECOMMISSION_INTERVAL_DEFAULT = 30; 469 public static final String DFS_NAMENODE_DECOMMISSION_BLOCKS_PER_INTERVAL_KEY = "dfs.namenode.decommission.blocks.per.interval"; 470 public static final int DFS_NAMENODE_DECOMMISSION_BLOCKS_PER_INTERVAL_DEFAULT = 500000; 471 public static final String DFS_NAMENODE_DECOMMISSION_MAX_CONCURRENT_TRACKED_NODES = "dfs.namenode.decommission.max.concurrent.tracked.nodes"; 472 public static final int DFS_NAMENODE_DECOMMISSION_MAX_CONCURRENT_TRACKED_NODES_DEFAULT = 100; 473 public static final String DFS_NAMENODE_HANDLER_COUNT_KEY = "dfs.namenode.handler.count"; 474 public static final int DFS_NAMENODE_HANDLER_COUNT_DEFAULT = 10; 475 public static final String DFS_NAMENODE_SERVICE_HANDLER_COUNT_KEY = "dfs.namenode.service.handler.count"; 476 public static final int DFS_NAMENODE_SERVICE_HANDLER_COUNT_DEFAULT = 10; 477 public static final String DFS_SUPPORT_APPEND_KEY = "dfs.support.append"; 478 public static final boolean DFS_SUPPORT_APPEND_DEFAULT = true; 479 public static final String DFS_HTTPS_ENABLE_KEY = "dfs.https.enable"; 480 public static final boolean DFS_HTTPS_ENABLE_DEFAULT = false; 481 public static final String DFS_HTTP_POLICY_KEY = "dfs.http.policy"; 482 public static final String DFS_HTTP_POLICY_DEFAULT = HttpConfig.Policy.HTTP_ONLY.name(); 483 public static final String DFS_DEFAULT_CHUNK_VIEW_SIZE_KEY = "dfs.default.chunk.view.size"; 484 public static final int DFS_DEFAULT_CHUNK_VIEW_SIZE_DEFAULT = 32*1024; 485 public static final String DFS_DATANODE_HTTPS_ADDRESS_KEY = "dfs.datanode.https.address"; 486 public static final String DFS_DATANODE_HTTPS_PORT_KEY = "datanode.https.port"; 487 public static final int DFS_DATANODE_HTTPS_DEFAULT_PORT = 50475; 488 public static final String DFS_DATANODE_HTTPS_ADDRESS_DEFAULT = "0.0.0.0:" + DFS_DATANODE_HTTPS_DEFAULT_PORT; 489 public static final String DFS_DATANODE_IPC_ADDRESS_KEY = "dfs.datanode.ipc.address"; 490 public static final int DFS_DATANODE_IPC_DEFAULT_PORT = 50020; 491 public static final String DFS_DATANODE_IPC_ADDRESS_DEFAULT = "0.0.0.0:" + DFS_DATANODE_IPC_DEFAULT_PORT; 492 public static final String DFS_DATANODE_MIN_SUPPORTED_NAMENODE_VERSION_KEY = "dfs.datanode.min.supported.namenode.version"; 493 public static final String DFS_DATANODE_MIN_SUPPORTED_NAMENODE_VERSION_DEFAULT = "2.1.0-beta"; 494 public static final String DFS_NAMENODE_INODE_ATTRIBUTES_PROVIDER_KEY = "dfs.namenode.inode.attributes.provider.class"; 495 public static final String DFS_DATANODE_BP_READY_TIMEOUT_KEY = "dfs.datanode.bp-ready.timeout"; 496 public static final long DFS_DATANODE_BP_READY_TIMEOUT_DEFAULT = 20; 497 498 public static final String DFS_BLOCK_ACCESS_TOKEN_ENABLE_KEY = "dfs.block.access.token.enable"; 499 public static final boolean DFS_BLOCK_ACCESS_TOKEN_ENABLE_DEFAULT = false; 500 public static final String DFS_BLOCK_ACCESS_KEY_UPDATE_INTERVAL_KEY = "dfs.block.access.key.update.interval"; 501 public static final long DFS_BLOCK_ACCESS_KEY_UPDATE_INTERVAL_DEFAULT = 600L; 502 public static final String DFS_BLOCK_ACCESS_TOKEN_LIFETIME_KEY = "dfs.block.access.token.lifetime"; 503 public static final long DFS_BLOCK_ACCESS_TOKEN_LIFETIME_DEFAULT = 600L; 504 505 public static final String DFS_BLOCK_REPLICATOR_CLASSNAME_KEY = "dfs.block.replicator.classname"; 506 public static final Class<BlockPlacementPolicyDefault> DFS_BLOCK_REPLICATOR_CLASSNAME_DEFAULT = BlockPlacementPolicyDefault.class; 507 public static final String DFS_REPLICATION_MAX_KEY = "dfs.replication.max"; 508 public static final int DFS_REPLICATION_MAX_DEFAULT = 512; 509 510 public static final String DFS_DF_INTERVAL_KEY = "dfs.df.interval"; 511 public static final int DFS_DF_INTERVAL_DEFAULT = 60000; 512 public static final String DFS_BLOCKREPORT_INTERVAL_MSEC_KEY = "dfs.blockreport.intervalMsec"; 513 public static final long DFS_BLOCKREPORT_INTERVAL_MSEC_DEFAULT = 6 * 60 * 60 * 1000; 514 public static final String DFS_BLOCKREPORT_INITIAL_DELAY_KEY = "dfs.blockreport.initialDelay"; 515 public static final int DFS_BLOCKREPORT_INITIAL_DELAY_DEFAULT = 0; 516 public static final String DFS_BLOCKREPORT_SPLIT_THRESHOLD_KEY = "dfs.blockreport.split.threshold"; 517 public static final long DFS_BLOCKREPORT_SPLIT_THRESHOLD_DEFAULT = 1000 * 1000; 518 public static final String DFS_CACHEREPORT_INTERVAL_MSEC_KEY = "dfs.cachereport.intervalMsec"; 519 public static final long DFS_CACHEREPORT_INTERVAL_MSEC_DEFAULT = 10 * 1000; 520 public static final String DFS_BLOCK_INVALIDATE_LIMIT_KEY = "dfs.block.invalidate.limit"; 521 public static final int DFS_BLOCK_INVALIDATE_LIMIT_DEFAULT = 1000; 522 public static final String DFS_DEFAULT_MAX_CORRUPT_FILES_RETURNED_KEY = "dfs.corruptfilesreturned.max"; 523 public static final int DFS_DEFAULT_MAX_CORRUPT_FILES_RETURNED = 500; 524 /* Maximum number of blocks to process for initializing replication queues */ 525 public static final String DFS_BLOCK_MISREPLICATION_PROCESSING_LIMIT = "dfs.block.misreplication.processing.limit"; 526 public static final int DFS_BLOCK_MISREPLICATION_PROCESSING_LIMIT_DEFAULT = 10000; 527 public static final String DFS_CLIENT_READ_SHORTCIRCUIT_KEY = "dfs.client.read.shortcircuit"; 528 public static final boolean DFS_CLIENT_READ_SHORTCIRCUIT_DEFAULT = false; 529 public static final String DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_KEY = "dfs.client.read.shortcircuit.skip.checksum"; 530 public static final boolean DFS_CLIENT_READ_SHORTCIRCUIT_SKIP_CHECKSUM_DEFAULT = false; 531 public static final String DFS_CLIENT_READ_SHORTCIRCUIT_BUFFER_SIZE_KEY = "dfs.client.read.shortcircuit.buffer.size"; 532 public static final int DFS_CLIENT_READ_SHORTCIRCUIT_BUFFER_SIZE_DEFAULT = 1024 * 1024; 533 public static final String DFS_CLIENT_READ_SHORTCIRCUIT_STREAMS_CACHE_SIZE_KEY = "dfs.client.read.shortcircuit.streams.cache.size"; 534 public static final int DFS_CLIENT_READ_SHORTCIRCUIT_STREAMS_CACHE_SIZE_DEFAULT = 256; 535 public static final String DFS_CLIENT_READ_SHORTCIRCUIT_STREAMS_CACHE_EXPIRY_MS_KEY = "dfs.client.read.shortcircuit.streams.cache.expiry.ms"; 536 public static final long DFS_CLIENT_READ_SHORTCIRCUIT_STREAMS_CACHE_EXPIRY_MS_DEFAULT = 5 * 60 * 1000; 537 public static final String DFS_CLIENT_DOMAIN_SOCKET_DATA_TRAFFIC = "dfs.client.domain.socket.data.traffic"; 538 public static final boolean DFS_CLIENT_DOMAIN_SOCKET_DATA_TRAFFIC_DEFAULT = false; 539 public static final String DFS_CLIENT_MMAP_ENABLED= "dfs.client.mmap.enabled"; 540 public static final boolean DFS_CLIENT_MMAP_ENABLED_DEFAULT = true; 541 public static final String DFS_CLIENT_MMAP_CACHE_SIZE = "dfs.client.mmap.cache.size"; 542 public static final int DFS_CLIENT_MMAP_CACHE_SIZE_DEFAULT = 256; 543 public static final String DFS_CLIENT_MMAP_CACHE_TIMEOUT_MS = "dfs.client.mmap.cache.timeout.ms"; 544 public static final long DFS_CLIENT_MMAP_CACHE_TIMEOUT_MS_DEFAULT = 60 * 60 * 1000; 545 public static final String DFS_CLIENT_MMAP_RETRY_TIMEOUT_MS = "dfs.client.mmap.retry.timeout.ms"; 546 public static final long DFS_CLIENT_MMAP_RETRY_TIMEOUT_MS_DEFAULT = 5 * 60 * 1000; 547 public static final String DFS_CLIENT_SHORT_CIRCUIT_REPLICA_STALE_THRESHOLD_MS = "dfs.client.short.circuit.replica.stale.threshold.ms"; 548 public static final long DFS_CLIENT_SHORT_CIRCUIT_REPLICA_STALE_THRESHOLD_MS_DEFAULT = 30 * 60 * 1000; 549 550 // property for fsimage compression 551 public static final String DFS_IMAGE_COMPRESS_KEY = "dfs.image.compress"; 552 public static final boolean DFS_IMAGE_COMPRESS_DEFAULT = false; 553 public static final String DFS_IMAGE_COMPRESSION_CODEC_KEY = 554 "dfs.image.compression.codec"; 555 public static final String DFS_IMAGE_COMPRESSION_CODEC_DEFAULT = 556 "org.apache.hadoop.io.compress.DefaultCodec"; 557 558 public static final String DFS_IMAGE_TRANSFER_RATE_KEY = 559 "dfs.image.transfer.bandwidthPerSec"; 560 public static final long DFS_IMAGE_TRANSFER_RATE_DEFAULT = 0; //no throttling 561 562 // Image transfer timeout 563 public static final String DFS_IMAGE_TRANSFER_TIMEOUT_KEY = "dfs.image.transfer.timeout"; 564 public static final int DFS_IMAGE_TRANSFER_TIMEOUT_DEFAULT = 60 * 1000; 565 566 // Image transfer chunksize 567 public static final String DFS_IMAGE_TRANSFER_CHUNKSIZE_KEY = "dfs.image.transfer.chunksize"; 568 public static final int DFS_IMAGE_TRANSFER_CHUNKSIZE_DEFAULT = 64 * 1024; 569 570 //Keys with no defaults 571 public static final String DFS_DATANODE_PLUGINS_KEY = "dfs.datanode.plugins"; 572 public static final String DFS_DATANODE_FSDATASET_FACTORY_KEY = "dfs.datanode.fsdataset.factory"; 573 public static final String DFS_DATANODE_FSDATASET_VOLUME_CHOOSING_POLICY_KEY = "dfs.datanode.fsdataset.volume.choosing.policy"; 574 public static final String DFS_DATANODE_AVAILABLE_SPACE_VOLUME_CHOOSING_POLICY_BALANCED_SPACE_THRESHOLD_KEY = "dfs.datanode.available-space-volume-choosing-policy.balanced-space-threshold"; 575 public static final long DFS_DATANODE_AVAILABLE_SPACE_VOLUME_CHOOSING_POLICY_BALANCED_SPACE_THRESHOLD_DEFAULT = 1024L * 1024L * 1024L * 10L; // 10 GB 576 public static final String DFS_DATANODE_AVAILABLE_SPACE_VOLUME_CHOOSING_POLICY_BALANCED_SPACE_PREFERENCE_FRACTION_KEY = "dfs.datanode.available-space-volume-choosing-policy.balanced-space-preference-fraction"; 577 public static final float DFS_DATANODE_AVAILABLE_SPACE_VOLUME_CHOOSING_POLICY_BALANCED_SPACE_PREFERENCE_FRACTION_DEFAULT = 0.75f; 578 public static final String DFS_DATANODE_SOCKET_WRITE_TIMEOUT_KEY = "dfs.datanode.socket.write.timeout"; 579 public static final String DFS_DATANODE_STARTUP_KEY = "dfs.datanode.startup"; 580 public static final String DFS_NAMENODE_PLUGINS_KEY = "dfs.namenode.plugins"; 581 public static final String DFS_WEB_UGI_KEY = "dfs.web.ugi"; 582 public static final String DFS_NAMENODE_STARTUP_KEY = "dfs.namenode.startup"; 583 public static final String DFS_DATANODE_KEYTAB_FILE_KEY = "dfs.datanode.keytab.file"; 584 public static final String DFS_DATANODE_KERBEROS_PRINCIPAL_KEY = "dfs.datanode.kerberos.principal"; 585 @Deprecated 586 public static final String DFS_DATANODE_USER_NAME_KEY = DFS_DATANODE_KERBEROS_PRINCIPAL_KEY; 587 public static final String DFS_DATANODE_SHARED_FILE_DESCRIPTOR_PATHS = "dfs.datanode.shared.file.descriptor.paths"; 588 public static final String DFS_DATANODE_SHARED_FILE_DESCRIPTOR_PATHS_DEFAULT = "/dev/shm,/tmp"; 589 public static final String DFS_SHORT_CIRCUIT_SHARED_MEMORY_WATCHER_INTERRUPT_CHECK_MS = "dfs.short.circuit.shared.memory.watcher.interrupt.check.ms"; 590 public static final int DFS_SHORT_CIRCUIT_SHARED_MEMORY_WATCHER_INTERRUPT_CHECK_MS_DEFAULT = 60000; 591 public static final String DFS_NAMENODE_KEYTAB_FILE_KEY = "dfs.namenode.keytab.file"; 592 public static final String DFS_NAMENODE_KERBEROS_PRINCIPAL_KEY = "dfs.namenode.kerberos.principal"; 593 @Deprecated 594 public static final String DFS_NAMENODE_USER_NAME_KEY = DFS_NAMENODE_KERBEROS_PRINCIPAL_KEY; 595 public static final String DFS_NAMENODE_KERBEROS_INTERNAL_SPNEGO_PRINCIPAL_KEY = "dfs.namenode.kerberos.internal.spnego.principal"; 596 @Deprecated 597 public static final String DFS_NAMENODE_INTERNAL_SPNEGO_USER_NAME_KEY = DFS_NAMENODE_KERBEROS_INTERNAL_SPNEGO_PRINCIPAL_KEY; 598 public static final String DFS_SECONDARY_NAMENODE_KEYTAB_FILE_KEY = "dfs.secondary.namenode.keytab.file"; 599 public static final String DFS_SECONDARY_NAMENODE_KERBEROS_PRINCIPAL_KEY = "dfs.secondary.namenode.kerberos.principal"; 600 @Deprecated 601 public static final String DFS_SECONDARY_NAMENODE_USER_NAME_KEY = DFS_SECONDARY_NAMENODE_KERBEROS_PRINCIPAL_KEY; 602 public static final String DFS_SECONDARY_NAMENODE_KERBEROS_INTERNAL_SPNEGO_PRINCIPAL_KEY = "dfs.secondary.namenode.kerberos.internal.spnego.principal"; 603 @Deprecated 604 public static final String DFS_SECONDARY_NAMENODE_INTERNAL_SPNEGO_USER_NAME_KEY = DFS_SECONDARY_NAMENODE_KERBEROS_INTERNAL_SPNEGO_PRINCIPAL_KEY; 605 public static final String DFS_NAMENODE_NAME_CACHE_THRESHOLD_KEY = "dfs.namenode.name.cache.threshold"; 606 public static final int DFS_NAMENODE_NAME_CACHE_THRESHOLD_DEFAULT = 10; 607 public static final String DFS_NAMENODE_LEGACY_OIV_IMAGE_DIR_KEY = "dfs.namenode.legacy-oiv-image.dir"; 608 609 public static final String DFS_NAMESERVICES = "dfs.nameservices"; 610 public static final String DFS_NAMESERVICE_ID = "dfs.nameservice.id"; 611 public static final String DFS_INTERNAL_NAMESERVICES_KEY = "dfs.internal.nameservices"; 612 public static final String DFS_NAMENODE_RESOURCE_CHECK_INTERVAL_KEY = "dfs.namenode.resource.check.interval"; 613 public static final int DFS_NAMENODE_RESOURCE_CHECK_INTERVAL_DEFAULT = 5000; 614 public static final String DFS_NAMENODE_DU_RESERVED_KEY = "dfs.namenode.resource.du.reserved"; 615 public static final long DFS_NAMENODE_DU_RESERVED_DEFAULT = 1024 * 1024 * 100; // 100 MB 616 public static final String DFS_NAMENODE_CHECKED_VOLUMES_KEY = "dfs.namenode.resource.checked.volumes"; 617 public static final String DFS_NAMENODE_CHECKED_VOLUMES_MINIMUM_KEY = "dfs.namenode.resource.checked.volumes.minimum"; 618 public static final int DFS_NAMENODE_CHECKED_VOLUMES_MINIMUM_DEFAULT = 1; 619 public static final String DFS_WEB_AUTHENTICATION_SIMPLE_ANONYMOUS_ALLOWED = "dfs.web.authentication.simple.anonymous.allowed"; 620 public static final String DFS_WEB_AUTHENTICATION_KERBEROS_PRINCIPAL_KEY = "dfs.web.authentication.kerberos.principal"; 621 public static final String DFS_WEB_AUTHENTICATION_KERBEROS_KEYTAB_KEY = "dfs.web.authentication.kerberos.keytab"; 622 public static final String DFS_NAMENODE_MAX_OP_SIZE_KEY = "dfs.namenode.max.op.size"; 623 public static final int DFS_NAMENODE_MAX_OP_SIZE_DEFAULT = 50 * 1024 * 1024; 624 625 public static final String DFS_BLOCK_LOCAL_PATH_ACCESS_USER_KEY = "dfs.block.local-path-access.user"; 626 public static final String DFS_DOMAIN_SOCKET_PATH_KEY = "dfs.domain.socket.path"; 627 public static final String DFS_DOMAIN_SOCKET_PATH_DEFAULT = ""; 628 629 public static final String DFS_STORAGE_POLICY_ENABLED_KEY = "dfs.storage.policy.enabled"; 630 public static final boolean DFS_STORAGE_POLICY_ENABLED_DEFAULT = true; 631 632 public static final String DFS_QUOTA_BY_STORAGETYPE_ENABLED_KEY = "dfs.quota.by.storage.type.enabled"; 633 public static final boolean DFS_QUOTA_BY_STORAGETYPE_ENABLED_DEFAULT = true; 634 635 // HA related configuration 636 public static final String DFS_HA_NAMENODES_KEY_PREFIX = "dfs.ha.namenodes"; 637 public static final String DFS_HA_NAMENODE_ID_KEY = "dfs.ha.namenode.id"; 638 public static final String DFS_HA_STANDBY_CHECKPOINTS_KEY = "dfs.ha.standby.checkpoints"; 639 public static final boolean DFS_HA_STANDBY_CHECKPOINTS_DEFAULT = true; 640 public static final String DFS_HA_LOGROLL_PERIOD_KEY = "dfs.ha.log-roll.period"; 641 public static final int DFS_HA_LOGROLL_PERIOD_DEFAULT = 2 * 60; // 2m 642 public static final String DFS_HA_TAILEDITS_PERIOD_KEY = "dfs.ha.tail-edits.period"; 643 public static final int DFS_HA_TAILEDITS_PERIOD_DEFAULT = 60; // 1m 644 public static final String DFS_HA_LOGROLL_RPC_TIMEOUT_KEY = "dfs.ha.log-roll.rpc.timeout"; 645 public static final int DFS_HA_LOGROLL_RPC_TIMEOUT_DEFAULT = 20000; // 20s 646 public static final String DFS_HA_FENCE_METHODS_KEY = "dfs.ha.fencing.methods"; 647 public static final String DFS_HA_AUTO_FAILOVER_ENABLED_KEY = "dfs.ha.automatic-failover.enabled"; 648 public static final boolean DFS_HA_AUTO_FAILOVER_ENABLED_DEFAULT = false; 649 public static final String DFS_HA_ZKFC_PORT_KEY = "dfs.ha.zkfc.port"; 650 public static final int DFS_HA_ZKFC_PORT_DEFAULT = 8019; 651 652 // Security-related configs 653 public static final String DFS_ENCRYPT_DATA_TRANSFER_KEY = "dfs.encrypt.data.transfer"; 654 public static final boolean DFS_ENCRYPT_DATA_TRANSFER_DEFAULT = false; 655 public static final String DFS_ENCRYPT_DATA_TRANSFER_CIPHER_KEY_BITLENGTH_KEY = "dfs.encrypt.data.transfer.cipher.key.bitlength"; 656 public static final int DFS_ENCRYPT_DATA_TRANSFER_CIPHER_KEY_BITLENGTH_DEFAULT = 128; 657 public static final String DFS_ENCRYPT_DATA_TRANSFER_CIPHER_SUITES_KEY = "dfs.encrypt.data.transfer.cipher.suites"; 658 public static final String DFS_DATA_ENCRYPTION_ALGORITHM_KEY = "dfs.encrypt.data.transfer.algorithm"; 659 public static final String DFS_TRUSTEDCHANNEL_RESOLVER_CLASS = "dfs.trustedchannel.resolver.class"; 660 public static final String DFS_DATA_TRANSFER_PROTECTION_KEY = "dfs.data.transfer.protection"; 661 public static final String DFS_DATA_TRANSFER_PROTECTION_DEFAULT = ""; 662 public static final String DFS_DATA_TRANSFER_SASL_PROPS_RESOLVER_CLASS_KEY = "dfs.data.transfer.saslproperties.resolver.class"; 663 public static final int DFS_NAMENODE_LIST_ENCRYPTION_ZONES_NUM_RESPONSES_DEFAULT = 100; 664 public static final String DFS_NAMENODE_LIST_ENCRYPTION_ZONES_NUM_RESPONSES = "dfs.namenode.list.encryption.zones.num.responses"; 665 public static final String DFS_ENCRYPTION_KEY_PROVIDER_URI = "dfs.encryption.key.provider.uri"; 666 667 // Journal-node related configs. These are read on the JN side. 668 public static final String DFS_JOURNALNODE_EDITS_DIR_KEY = "dfs.journalnode.edits.dir"; 669 public static final String DFS_JOURNALNODE_EDITS_DIR_DEFAULT = "/tmp/hadoop/dfs/journalnode/"; 670 public static final String DFS_JOURNALNODE_RPC_ADDRESS_KEY = "dfs.journalnode.rpc-address"; 671 public static final int DFS_JOURNALNODE_RPC_PORT_DEFAULT = 8485; 672 public static final String DFS_JOURNALNODE_RPC_ADDRESS_DEFAULT = "0.0.0.0:" + DFS_JOURNALNODE_RPC_PORT_DEFAULT; 673 674 public static final String DFS_JOURNALNODE_HTTP_ADDRESS_KEY = "dfs.journalnode.http-address"; 675 public static final int DFS_JOURNALNODE_HTTP_PORT_DEFAULT = 8480; 676 public static final String DFS_JOURNALNODE_HTTP_ADDRESS_DEFAULT = "0.0.0.0:" + DFS_JOURNALNODE_HTTP_PORT_DEFAULT; 677 public static final String DFS_JOURNALNODE_HTTPS_ADDRESS_KEY = "dfs.journalnode.https-address"; 678 public static final int DFS_JOURNALNODE_HTTPS_PORT_DEFAULT = 8481; 679 public static final String DFS_JOURNALNODE_HTTPS_ADDRESS_DEFAULT = "0.0.0.0:" + DFS_JOURNALNODE_HTTPS_PORT_DEFAULT; 680 681 public static final String DFS_JOURNALNODE_KEYTAB_FILE_KEY = "dfs.journalnode.keytab.file"; 682 public static final String DFS_JOURNALNODE_KERBEROS_PRINCIPAL_KEY = "dfs.journalnode.kerberos.principal"; 683 public static final String DFS_JOURNALNODE_KERBEROS_INTERNAL_SPNEGO_PRINCIPAL_KEY = "dfs.journalnode.kerberos.internal.spnego.principal"; 684 685 // Journal-node related configs for the client side. 686 public static final String DFS_QJOURNAL_QUEUE_SIZE_LIMIT_KEY = "dfs.qjournal.queued-edits.limit.mb"; 687 public static final int DFS_QJOURNAL_QUEUE_SIZE_LIMIT_DEFAULT = 10; 688 689 // Quorum-journal timeouts for various operations. Unlikely to need 690 // to be tweaked, but configurable just in case. 691 public static final String DFS_QJOURNAL_START_SEGMENT_TIMEOUT_KEY = "dfs.qjournal.start-segment.timeout.ms"; 692 public static final String DFS_QJOURNAL_PREPARE_RECOVERY_TIMEOUT_KEY = "dfs.qjournal.prepare-recovery.timeout.ms"; 693 public static final String DFS_QJOURNAL_ACCEPT_RECOVERY_TIMEOUT_KEY = "dfs.qjournal.accept-recovery.timeout.ms"; 694 public static final String DFS_QJOURNAL_FINALIZE_SEGMENT_TIMEOUT_KEY = "dfs.qjournal.finalize-segment.timeout.ms"; 695 public static final String DFS_QJOURNAL_SELECT_INPUT_STREAMS_TIMEOUT_KEY = "dfs.qjournal.select-input-streams.timeout.ms"; 696 public static final String DFS_QJOURNAL_GET_JOURNAL_STATE_TIMEOUT_KEY = "dfs.qjournal.get-journal-state.timeout.ms"; 697 public static final String DFS_QJOURNAL_NEW_EPOCH_TIMEOUT_KEY = "dfs.qjournal.new-epoch.timeout.ms"; 698 public static final String DFS_QJOURNAL_WRITE_TXNS_TIMEOUT_KEY = "dfs.qjournal.write-txns.timeout.ms"; 699 public static final int DFS_QJOURNAL_START_SEGMENT_TIMEOUT_DEFAULT = 20000; 700 public static final int DFS_QJOURNAL_PREPARE_RECOVERY_TIMEOUT_DEFAULT = 120000; 701 public static final int DFS_QJOURNAL_ACCEPT_RECOVERY_TIMEOUT_DEFAULT = 120000; 702 public static final int DFS_QJOURNAL_FINALIZE_SEGMENT_TIMEOUT_DEFAULT = 120000; 703 public static final int DFS_QJOURNAL_SELECT_INPUT_STREAMS_TIMEOUT_DEFAULT = 20000; 704 public static final int DFS_QJOURNAL_GET_JOURNAL_STATE_TIMEOUT_DEFAULT = 120000; 705 public static final int DFS_QJOURNAL_NEW_EPOCH_TIMEOUT_DEFAULT = 120000; 706 public static final int DFS_QJOURNAL_WRITE_TXNS_TIMEOUT_DEFAULT = 20000; 707 708 public static final String DFS_MAX_NUM_BLOCKS_TO_LOG_KEY = "dfs.namenode.max-num-blocks-to-log"; 709 public static final long DFS_MAX_NUM_BLOCKS_TO_LOG_DEFAULT = 1000l; 710 711 public static final String DFS_NAMENODE_ENABLE_RETRY_CACHE_KEY = "dfs.namenode.enable.retrycache"; 712 public static final boolean DFS_NAMENODE_ENABLE_RETRY_CACHE_DEFAULT = true; 713 public static final String DFS_NAMENODE_RETRY_CACHE_EXPIRYTIME_MILLIS_KEY = "dfs.namenode.retrycache.expirytime.millis"; 714 public static final long DFS_NAMENODE_RETRY_CACHE_EXPIRYTIME_MILLIS_DEFAULT = 600000; // 10 minutes 715 public static final String DFS_NAMENODE_RETRY_CACHE_HEAP_PERCENT_KEY = "dfs.namenode.retrycache.heap.percent"; 716 public static final float DFS_NAMENODE_RETRY_CACHE_HEAP_PERCENT_DEFAULT = 0.03f; 717 718 // The number of NN response dropped by client proactively in each RPC call. 719 // For testing NN retry cache, we can set this property with positive value. 720 public static final String DFS_CLIENT_TEST_DROP_NAMENODE_RESPONSE_NUM_KEY = "dfs.client.test.drop.namenode.response.number"; 721 public static final int DFS_CLIENT_TEST_DROP_NAMENODE_RESPONSE_NUM_DEFAULT = 0; 722 723 724 // Hidden configuration undocumented in hdfs-site. xml 725 // Timeout to wait for block receiver and responder thread to stop 726 public static final String DFS_DATANODE_XCEIVER_STOP_TIMEOUT_MILLIS_KEY = "dfs.datanode.xceiver.stop.timeout.millis"; 727 public static final long DFS_DATANODE_XCEIVER_STOP_TIMEOUT_MILLIS_DEFAULT = 60000; 728 729 // WebHDFS retry policy 730 public static final String DFS_HTTP_CLIENT_RETRY_POLICY_ENABLED_KEY = "dfs.http.client.retry.policy.enabled"; 731 public static final boolean DFS_HTTP_CLIENT_RETRY_POLICY_ENABLED_DEFAULT = false; 732 public static final String DFS_HTTP_CLIENT_RETRY_POLICY_SPEC_KEY = "dfs.http.client.retry.policy.spec"; 733 public static final String DFS_HTTP_CLIENT_RETRY_POLICY_SPEC_DEFAULT = "10000,6,60000,10"; //t1,n1,t2,n2,... 734 public static final String DFS_HTTP_CLIENT_FAILOVER_MAX_ATTEMPTS_KEY = "dfs.http.client.failover.max.attempts"; 735 public static final int DFS_HTTP_CLIENT_FAILOVER_MAX_ATTEMPTS_DEFAULT = 15; 736 public static final String DFS_HTTP_CLIENT_RETRY_MAX_ATTEMPTS_KEY = "dfs.http.client.retry.max.attempts"; 737 public static final int DFS_HTTP_CLIENT_RETRY_MAX_ATTEMPTS_DEFAULT = 10; 738 public static final String DFS_HTTP_CLIENT_FAILOVER_SLEEPTIME_BASE_KEY = "dfs.http.client.failover.sleep.base.millis"; 739 public static final int DFS_HTTP_CLIENT_FAILOVER_SLEEPTIME_BASE_DEFAULT = 500; 740 public static final String DFS_HTTP_CLIENT_FAILOVER_SLEEPTIME_MAX_KEY = "dfs.http.client.failover.sleep.max.millis"; 741 public static final int DFS_HTTP_CLIENT_FAILOVER_SLEEPTIME_MAX_DEFAULT = 15000; 742 743 // Handling unresolved DN topology mapping 744 public static final String DFS_REJECT_UNRESOLVED_DN_TOPOLOGY_MAPPING_KEY = 745 "dfs.namenode.reject-unresolved-dn-topology-mapping"; 746 public static final boolean DFS_REJECT_UNRESOLVED_DN_TOPOLOGY_MAPPING_DEFAULT = 747 false; 748 749 // hedged read properties 750 public static final String DFS_DFSCLIENT_HEDGED_READ_THRESHOLD_MILLIS = 751 "dfs.client.hedged.read.threshold.millis"; 752 public static final long DEFAULT_DFSCLIENT_HEDGED_READ_THRESHOLD_MILLIS = 753 500; 754 755 public static final String DFS_DFSCLIENT_HEDGED_READ_THREADPOOL_SIZE = 756 "dfs.client.hedged.read.threadpool.size"; 757 public static final int DEFAULT_DFSCLIENT_HEDGED_READ_THREADPOOL_SIZE = 0; 758 759 // Slow io warning log threshold settings for dfsclient and datanode. 760 public static final String DFS_CLIENT_SLOW_IO_WARNING_THRESHOLD_KEY = 761 "dfs.client.slow.io.warning.threshold.ms"; 762 public static final long DFS_CLIENT_SLOW_IO_WARNING_THRESHOLD_DEFAULT = 30000; 763 public static final String DFS_DATANODE_SLOW_IO_WARNING_THRESHOLD_KEY = 764 "dfs.datanode.slow.io.warning.threshold.ms"; 765 public static final long DFS_DATANODE_SLOW_IO_WARNING_THRESHOLD_DEFAULT = 300; 766 767 public static final String DFS_NAMENODE_INOTIFY_MAX_EVENTS_PER_RPC_KEY = 768 "dfs.namenode.inotify.max.events.per.rpc"; 769 public static final int DFS_NAMENODE_INOTIFY_MAX_EVENTS_PER_RPC_DEFAULT = 770 1000; 771 772 public static final String DFS_DATANODE_BLOCK_ID_LAYOUT_UPGRADE_THREADS_KEY = 773 "dfs.datanode.block.id.layout.upgrade.threads"; 774 public static final int DFS_DATANODE_BLOCK_ID_LAYOUT_UPGRADE_THREADS = 12; 775 public static final String IGNORE_SECURE_PORTS_FOR_TESTING_KEY = 776 "ignore.secure.ports.for.testing"; 777 public static final boolean IGNORE_SECURE_PORTS_FOR_TESTING_DEFAULT = false; 778 779 // nntop Configurations 780 public static final String NNTOP_ENABLED_KEY = 781 "dfs.namenode.top.enabled"; 782 public static final boolean NNTOP_ENABLED_DEFAULT = true; 783 public static final String NNTOP_BUCKETS_PER_WINDOW_KEY = 784 "dfs.namenode.top.window.num.buckets"; 785 public static final int NNTOP_BUCKETS_PER_WINDOW_DEFAULT = 10; 786 public static final String NNTOP_NUM_USERS_KEY = 787 "dfs.namenode.top.num.users"; 788 public static final int NNTOP_NUM_USERS_DEFAULT = 10; 789 // comma separated list of nntop reporting periods in minutes 790 public static final String NNTOP_WINDOWS_MINUTES_KEY = 791 "dfs.namenode.top.windows.minutes"; 792 public static final String[] NNTOP_WINDOWS_MINUTES_DEFAULT = {"1","5","25"}; 793 public static final String DFS_PIPELINE_ECN_ENABLED = "dfs.pipeline.ecn"; 794 public static final boolean DFS_PIPELINE_ECN_ENABLED_DEFAULT = false; 795 796 // Key Provider Cache Expiry 797 public static final String DFS_CLIENT_KEY_PROVIDER_CACHE_EXPIRY_MS = 798 "dfs.client.key.provider.cache.expiry"; 799 // 10 days 800 public static final long DFS_CLIENT_KEY_PROVIDER_CACHE_EXPIRY_DEFAULT = 801 TimeUnit.DAYS.toMillis(10); 802 public static final String DFS_DATANODE_BLOCK_PINNING_ENABLED = 803 "dfs.datanode.block-pinning.enabled"; 804 public static final boolean DFS_DATANODE_BLOCK_PINNING_ENABLED_DEFAULT = 805 false; 806 } 807