001/**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018
019package org.apache.hadoop.fs;
020
021import java.util.Arrays;
022
023import org.apache.hadoop.classification.InterfaceAudience;
024import org.apache.hadoop.crypto.CipherSuite;
025import org.apache.hadoop.crypto.JceAesCtrCryptoCodec;
026import org.apache.hadoop.crypto.OpensslAesCtrCryptoCodec;
027import org.apache.hadoop.util.StringUtils;
028
029/** 
030 * This class contains constants for configuration keys used
031 * in the common code.
032 *
033 * It includes all publicly documented configuration keys. In general
034 * this class should not be used directly (use CommonConfigurationKeys
035 * instead)
036 *
037 */
038
039@InterfaceAudience.Public
040public class CommonConfigurationKeysPublic {
041  
042  // The Keys
043  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
044  public static final String  IO_NATIVE_LIB_AVAILABLE_KEY =
045    "io.native.lib.available";
046  /** Default value for IO_NATIVE_LIB_AVAILABLE_KEY */
047  public static final boolean IO_NATIVE_LIB_AVAILABLE_DEFAULT = true;
048  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
049  public static final String  NET_TOPOLOGY_SCRIPT_NUMBER_ARGS_KEY =
050    "net.topology.script.number.args";
051  /** Default value for NET_TOPOLOGY_SCRIPT_NUMBER_ARGS_KEY */
052  public static final int     NET_TOPOLOGY_SCRIPT_NUMBER_ARGS_DEFAULT = 100;
053
054  //FS keys
055  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
056  public static final String  FS_DEFAULT_NAME_KEY = "fs.defaultFS";
057  /** Default value for FS_DEFAULT_NAME_KEY */
058  public static final String  FS_DEFAULT_NAME_DEFAULT = "file:///";
059  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
060  public static final String  FS_DF_INTERVAL_KEY = "fs.df.interval"; 
061  /** Default value for FS_DF_INTERVAL_KEY */
062  public static final long    FS_DF_INTERVAL_DEFAULT = 60000;
063  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
064  public static final String  FS_DU_INTERVAL_KEY = "fs.du.interval";
065  /** Default value for FS_DU_INTERVAL_KEY */
066  public static final long    FS_DU_INTERVAL_DEFAULT = 600000;
067  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
068  public static final String  FS_CLIENT_RESOLVE_REMOTE_SYMLINKS_KEY =
069    "fs.client.resolve.remote.symlinks";
070  /** Default value for FS_CLIENT_RESOLVE_REMOTE_SYMLINKS_KEY */
071  public static final boolean FS_CLIENT_RESOLVE_REMOTE_SYMLINKS_DEFAULT = true;
072
073
074  //Defaults are not specified for following keys
075  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
076  public static final String  NET_TOPOLOGY_SCRIPT_FILE_NAME_KEY =
077    "net.topology.script.file.name";
078  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
079  public static final String  NET_TOPOLOGY_NODE_SWITCH_MAPPING_IMPL_KEY =
080    "net.topology.node.switch.mapping.impl";
081  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
082  public static final String  NET_TOPOLOGY_IMPL_KEY =
083    "net.topology.impl";
084  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
085  public static final String  NET_TOPOLOGY_TABLE_MAPPING_FILE_KEY =
086    "net.topology.table.file.name";
087  public static final String NET_DEPENDENCY_SCRIPT_FILE_NAME_KEY = 
088    "net.topology.dependency.script.file.name";
089
090  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
091  public static final String  FS_TRASH_CHECKPOINT_INTERVAL_KEY =
092    "fs.trash.checkpoint.interval";
093  /** Default value for FS_TRASH_CHECKPOINT_INTERVAL_KEY */
094  public static final long    FS_TRASH_CHECKPOINT_INTERVAL_DEFAULT = 0;
095
096  // TBD: Code is still using hardcoded values (e.g. "fs.automatic.close")
097  // instead of constant (e.g. FS_AUTOMATIC_CLOSE_KEY)
098  //
099  /** Not used anywhere, looks like default value for FS_LOCAL_BLOCK_SIZE */
100  public static final long    FS_LOCAL_BLOCK_SIZE_DEFAULT = 32*1024*1024;
101  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
102  public static final String  FS_AUTOMATIC_CLOSE_KEY = "fs.automatic.close";
103  /** Default value for FS_AUTOMATIC_CLOSE_KEY */
104  public static final boolean FS_AUTOMATIC_CLOSE_DEFAULT = true;
105  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
106  public static final String  FS_FILE_IMPL_KEY = "fs.file.impl";
107  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
108  public static final String  FS_FTP_HOST_KEY = "fs.ftp.host";
109  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
110  public static final String  FS_FTP_HOST_PORT_KEY = "fs.ftp.host.port";
111  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
112  public static final String  FS_TRASH_INTERVAL_KEY = "fs.trash.interval";
113  /** Default value for FS_TRASH_INTERVAL_KEY */
114  public static final long    FS_TRASH_INTERVAL_DEFAULT = 0;
115
116  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
117  public static final String  IO_MAPFILE_BLOOM_SIZE_KEY =
118    "io.mapfile.bloom.size";
119  /** Default value for IO_MAPFILE_BLOOM_SIZE_KEY */
120  public static final int     IO_MAPFILE_BLOOM_SIZE_DEFAULT = 1024*1024;
121  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
122  public static final String  IO_MAPFILE_BLOOM_ERROR_RATE_KEY =
123    "io.mapfile.bloom.error.rate" ;
124  /** Default value for IO_MAPFILE_BLOOM_ERROR_RATE_KEY */
125  public static final float   IO_MAPFILE_BLOOM_ERROR_RATE_DEFAULT = 0.005f;
126  /** Codec class that implements Lzo compression algorithm */
127  public static final String  IO_COMPRESSION_CODEC_LZO_CLASS_KEY =
128    "io.compression.codec.lzo.class";
129  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
130  public static final String  IO_MAP_INDEX_INTERVAL_KEY =
131    "io.map.index.interval";
132  /** Default value for IO_MAP_INDEX_INTERVAL_DEFAULT */
133  public static final int     IO_MAP_INDEX_INTERVAL_DEFAULT = 128;
134  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
135  public static final String  IO_MAP_INDEX_SKIP_KEY = "io.map.index.skip";
136  /** Default value for IO_MAP_INDEX_SKIP_KEY */
137  public static final int     IO_MAP_INDEX_SKIP_DEFAULT = 0;
138  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
139  public static final String  IO_SEQFILE_COMPRESS_BLOCKSIZE_KEY =
140    "io.seqfile.compress.blocksize";
141  /** Default value for IO_SEQFILE_COMPRESS_BLOCKSIZE_KEY */
142  public static final int     IO_SEQFILE_COMPRESS_BLOCKSIZE_DEFAULT = 1000000;
143  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
144  public static final String  IO_FILE_BUFFER_SIZE_KEY =
145    "io.file.buffer.size";
146  /** Default value for IO_FILE_BUFFER_SIZE_KEY */
147  public static final int     IO_FILE_BUFFER_SIZE_DEFAULT = 4096;
148  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
149  public static final String  IO_SKIP_CHECKSUM_ERRORS_KEY =
150    "io.skip.checksum.errors";
151  /** Default value for IO_SKIP_CHECKSUM_ERRORS_KEY */
152  public static final boolean IO_SKIP_CHECKSUM_ERRORS_DEFAULT = false;
153  /**
154   * @deprecated Moved to mapreduce, see mapreduce.task.io.sort.mb
155   * in mapred-default.xml
156   * See https://issues.apache.org/jira/browse/HADOOP-6801
157   */
158  public static final String  IO_SORT_MB_KEY = "io.sort.mb";
159  /** Default value for IO_SORT_MB_DEFAULT */
160  public static final int     IO_SORT_MB_DEFAULT = 100;
161  /**
162   * @deprecated Moved to mapreduce, see mapreduce.task.io.sort.factor
163   * in mapred-default.xml
164   * See https://issues.apache.org/jira/browse/HADOOP-6801
165   */
166  public static final String  IO_SORT_FACTOR_KEY = "io.sort.factor";
167  /** Default value for IO_SORT_FACTOR_DEFAULT */
168  public static final int     IO_SORT_FACTOR_DEFAULT = 100;
169  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
170  public static final String  IO_SERIALIZATIONS_KEY = "io.serializations";
171
172  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
173  public static final String  TFILE_IO_CHUNK_SIZE_KEY = "tfile.io.chunk.size";
174  /** Default value for TFILE_IO_CHUNK_SIZE_DEFAULT */
175  public static final int     TFILE_IO_CHUNK_SIZE_DEFAULT = 1024*1024;
176  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
177  public static final String  TFILE_FS_INPUT_BUFFER_SIZE_KEY =
178    "tfile.fs.input.buffer.size";
179  /** Default value for TFILE_FS_INPUT_BUFFER_SIZE_KEY */
180  public static final int     TFILE_FS_INPUT_BUFFER_SIZE_DEFAULT = 256*1024;
181  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
182  public static final String  TFILE_FS_OUTPUT_BUFFER_SIZE_KEY =
183    "tfile.fs.output.buffer.size";
184  /** Default value for TFILE_FS_OUTPUT_BUFFER_SIZE_KEY */
185  public static final int     TFILE_FS_OUTPUT_BUFFER_SIZE_DEFAULT = 256*1024;
186
187  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
188  public static final String  IPC_CLIENT_CONNECTION_MAXIDLETIME_KEY =
189    "ipc.client.connection.maxidletime";
190  /** Default value for IPC_CLIENT_CONNECTION_MAXIDLETIME_KEY */
191  public static final int     IPC_CLIENT_CONNECTION_MAXIDLETIME_DEFAULT = 10000; // 10s
192  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
193  public static final String  IPC_CLIENT_CONNECT_TIMEOUT_KEY =
194    "ipc.client.connect.timeout";
195  /** Default value for IPC_CLIENT_CONNECT_TIMEOUT_KEY */
196  public static final int     IPC_CLIENT_CONNECT_TIMEOUT_DEFAULT = 20000; // 20s
197  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
198  public static final String  IPC_CLIENT_CONNECT_MAX_RETRIES_KEY =
199    "ipc.client.connect.max.retries";
200  /** Default value for IPC_CLIENT_CONNECT_MAX_RETRIES_KEY */
201  public static final int     IPC_CLIENT_CONNECT_MAX_RETRIES_DEFAULT = 10;
202  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
203  public static final String  IPC_CLIENT_CONNECT_RETRY_INTERVAL_KEY =
204      "ipc.client.connect.retry.interval";
205  /** Default value for IPC_CLIENT_CONNECT_RETRY_INTERVAL_KEY */
206  public static final int     IPC_CLIENT_CONNECT_RETRY_INTERVAL_DEFAULT = 1000;
207  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
208  public static final String  IPC_CLIENT_CONNECT_MAX_RETRIES_ON_SOCKET_TIMEOUTS_KEY =
209    "ipc.client.connect.max.retries.on.timeouts";
210  /** Default value for IPC_CLIENT_CONNECT_MAX_RETRIES_ON_SOCKET_TIMEOUTS_KEY */
211  public static final int  IPC_CLIENT_CONNECT_MAX_RETRIES_ON_SOCKET_TIMEOUTS_DEFAULT = 45;
212  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
213  public static final String  IPC_CLIENT_TCPNODELAY_KEY =
214    "ipc.client.tcpnodelay";
215  /** Defalt value for IPC_CLIENT_TCPNODELAY_KEY */
216  public static final boolean IPC_CLIENT_TCPNODELAY_DEFAULT = true;
217  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
218  public static final String  IPC_SERVER_LISTEN_QUEUE_SIZE_KEY =
219    "ipc.server.listen.queue.size";
220  /** Default value for IPC_SERVER_LISTEN_QUEUE_SIZE_KEY */
221  public static final int     IPC_SERVER_LISTEN_QUEUE_SIZE_DEFAULT = 128;
222  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
223  public static final String  IPC_CLIENT_KILL_MAX_KEY = "ipc.client.kill.max";
224  /** Default value for IPC_CLIENT_KILL_MAX_KEY */
225  public static final int     IPC_CLIENT_KILL_MAX_DEFAULT = 10;
226  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
227  public static final String  IPC_CLIENT_IDLETHRESHOLD_KEY =
228    "ipc.client.idlethreshold";
229  /** Default value for IPC_CLIENT_IDLETHRESHOLD_DEFAULT */
230  public static final int     IPC_CLIENT_IDLETHRESHOLD_DEFAULT = 4000;
231  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
232  public static final String  IPC_SERVER_TCPNODELAY_KEY =
233    "ipc.server.tcpnodelay";
234  /** Default value for IPC_SERVER_TCPNODELAY_KEY */
235  public static final boolean IPC_SERVER_TCPNODELAY_DEFAULT = true;
236
237  /** Logs if a RPC is really slow compared to rest of RPCs. */
238  public static final String IPC_SERVER_LOG_SLOW_RPC =
239                                                "ipc.server.log.slow.rpc";
240  public static final boolean IPC_SERVER_LOG_SLOW_RPC_DEFAULT = false;
241
242  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
243  public static final String  HADOOP_RPC_SOCKET_FACTORY_CLASS_DEFAULT_KEY =
244    "hadoop.rpc.socket.factory.class.default";
245  public static final String  HADOOP_RPC_SOCKET_FACTORY_CLASS_DEFAULT_DEFAULT =
246    "org.apache.hadoop.net.StandardSocketFactory";
247  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
248  public static final String  HADOOP_SOCKS_SERVER_KEY = "hadoop.socks.server";
249  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
250  public static final String  HADOOP_UTIL_HASH_TYPE_KEY =
251    "hadoop.util.hash.type";
252  /** Default value for HADOOP_UTIL_HASH_TYPE_KEY */
253  public static final String  HADOOP_UTIL_HASH_TYPE_DEFAULT = "murmur";
254  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
255  public static final String  HADOOP_SECURITY_GROUP_MAPPING =
256    "hadoop.security.group.mapping";
257  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
258  public static final String  HADOOP_SECURITY_GROUPS_CACHE_SECS =
259    "hadoop.security.groups.cache.secs";
260  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
261  public static final long HADOOP_SECURITY_GROUPS_CACHE_SECS_DEFAULT =
262    300;
263  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
264  public static final String  HADOOP_SECURITY_GROUPS_NEGATIVE_CACHE_SECS =
265    "hadoop.security.groups.negative-cache.secs";
266  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
267  public static final long HADOOP_SECURITY_GROUPS_NEGATIVE_CACHE_SECS_DEFAULT =
268    30;
269  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
270  public static final String HADOOP_SECURITY_GROUPS_CACHE_WARN_AFTER_MS =
271    "hadoop.security.groups.cache.warn.after.ms";
272  public static final long HADOOP_SECURITY_GROUPS_CACHE_WARN_AFTER_MS_DEFAULT =
273    5000;
274  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
275  public static final String HADOOP_SECURITY_GROUPS_CACHE_BACKGROUND_RELOAD =
276      "hadoop.security.groups.cache.background.reload";
277  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a>. */
278  public static final boolean
279      HADOOP_SECURITY_GROUPS_CACHE_BACKGROUND_RELOAD_DEFAULT = false;
280  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a>. */
281  public static final String
282      HADOOP_SECURITY_GROUPS_CACHE_BACKGROUND_RELOAD_THREADS =
283          "hadoop.security.groups.cache.background.reload.threads";
284  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a>. */
285  public static final int
286      HADOOP_SECURITY_GROUPS_CACHE_BACKGROUND_RELOAD_THREADS_DEFAULT = 3;
287  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a>.*/
288  public static final String  HADOOP_SECURITY_AUTHENTICATION =
289    "hadoop.security.authentication";
290  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
291  public static final String HADOOP_SECURITY_AUTHORIZATION =
292    "hadoop.security.authorization";
293  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
294  public static final String HADOOP_SECURITY_INSTRUMENTATION_REQUIRES_ADMIN =
295    "hadoop.security.instrumentation.requires.admin";
296  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
297  public static final String  HADOOP_SECURITY_SERVICE_USER_NAME_KEY =
298    "hadoop.security.service.user.name.key";
299  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
300  public static final String  HADOOP_SECURITY_AUTH_TO_LOCAL =
301    "hadoop.security.auth_to_local";
302  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
303  public static final String HADOOP_SECURITY_SENSITIVE_CONFIG_KEYS =
304      "hadoop.security.sensitive-config-keys";
305  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
306  public static final String HADOOP_SECURITY_SENSITIVE_CONFIG_KEYS_DEFAULT =
307      StringUtils.join(",", Arrays.asList(
308          "secret$",
309          "password$",
310          "ssl.keystore.pass$",
311          "fs.s3.*[Ss]ecret.?[Kk]ey",
312          "fs.azure\\.account.key.*",
313          "credential$",
314          "oauth.*token$",
315          HADOOP_SECURITY_SENSITIVE_CONFIG_KEYS));
316
317  @Deprecated
318  /** Only used by HttpServer. */
319  public static final String HADOOP_SSL_ENABLED_KEY = "hadoop.ssl.enabled";
320  @Deprecated
321  /** Only used by HttpServer. */
322  public static final boolean HADOOP_SSL_ENABLED_DEFAULT = false;
323
324  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
325  public static final String HADOOP_KERBEROS_MIN_SECONDS_BEFORE_RELOGIN =
326      "hadoop.kerberos.min.seconds.before.relogin";
327  /** Default value for HADOOP_KERBEROS_MIN_SECONDS_BEFORE_RELOGIN */
328  public static final int HADOOP_KERBEROS_MIN_SECONDS_BEFORE_RELOGIN_DEFAULT =
329      60;
330
331  // HTTP policies to be used in configuration
332  // Use HttpPolicy.name() instead
333  @Deprecated
334  public static final String HTTP_POLICY_HTTP_ONLY = "HTTP_ONLY";
335  @Deprecated
336  public static final String HTTP_POLICY_HTTPS_ONLY = "HTTPS_ONLY";
337  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
338  public static final String  HADOOP_RPC_PROTECTION =
339    "hadoop.rpc.protection";
340  /** Class to override Sasl Properties for a connection */
341  public static final String  HADOOP_SECURITY_SASL_PROPS_RESOLVER_CLASS =
342    "hadoop.security.saslproperties.resolver.class";
343  public static final String HADOOP_SECURITY_CRYPTO_CODEC_CLASSES_KEY_PREFIX = 
344    "hadoop.security.crypto.codec.classes";
345  public static final String
346      HADOOP_SECURITY_CRYPTO_CODEC_CLASSES_AES_CTR_NOPADDING_KEY =
347      HADOOP_SECURITY_CRYPTO_CODEC_CLASSES_KEY_PREFIX
348          + CipherSuite.AES_CTR_NOPADDING.getConfigSuffix();
349  public static final String
350      HADOOP_SECURITY_CRYPTO_CODEC_CLASSES_AES_CTR_NOPADDING_DEFAULT =
351      OpensslAesCtrCryptoCodec.class.getName() + "," +
352          JceAesCtrCryptoCodec.class.getName();
353  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
354  public static final String HADOOP_SECURITY_CRYPTO_CIPHER_SUITE_KEY =
355    "hadoop.security.crypto.cipher.suite";
356  public static final String HADOOP_SECURITY_CRYPTO_CIPHER_SUITE_DEFAULT = 
357    "AES/CTR/NoPadding";
358  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
359  public static final String HADOOP_SECURITY_CRYPTO_JCE_PROVIDER_KEY =
360    "hadoop.security.crypto.jce.provider";
361  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
362  public static final String HADOOP_SECURITY_CRYPTO_BUFFER_SIZE_KEY = 
363    "hadoop.security.crypto.buffer.size";
364  /** Defalt value for HADOOP_SECURITY_CRYPTO_BUFFER_SIZE_KEY */
365  public static final int HADOOP_SECURITY_CRYPTO_BUFFER_SIZE_DEFAULT = 8192;
366  /** Class to override Impersonation provider */
367  public static final String  HADOOP_SECURITY_IMPERSONATION_PROVIDER_CLASS =
368    "hadoop.security.impersonation.provider.class";
369
370  // After backport HDFS-10489, we should replace 
371  //   "dfs.encryption.key.provider.uri" with "hadoop.security.key.provider.path"
372  // here
373  public static final String HADOOP_SECURITY_KEY_PROVIDER_PATH =
374    "dfs.encryption.key.provider.uri";
375
376  //  <!--- KMSClientProvider configurations ???>
377  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
378  public static final String KMS_CLIENT_ENC_KEY_CACHE_SIZE =
379      "hadoop.security.kms.client.encrypted.key.cache.size";
380  /** Default value for KMS_CLIENT_ENC_KEY_CACHE_SIZE */
381  public static final int KMS_CLIENT_ENC_KEY_CACHE_SIZE_DEFAULT = 500;
382
383  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
384  public static final String KMS_CLIENT_ENC_KEY_CACHE_LOW_WATERMARK =
385      "hadoop.security.kms.client.encrypted.key.cache.low-watermark";
386  /** Default value for KMS_CLIENT_ENC_KEY_CACHE_LOW_WATERMARK */
387  public static final float KMS_CLIENT_ENC_KEY_CACHE_LOW_WATERMARK_DEFAULT =
388      0.3f;
389
390  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
391  public static final String KMS_CLIENT_ENC_KEY_CACHE_NUM_REFILL_THREADS =
392      "hadoop.security.kms.client.encrypted.key.cache.num.refill.threads";
393  /** Default value for KMS_CLIENT_ENC_KEY_NUM_REFILL_THREADS */
394  public static final int KMS_CLIENT_ENC_KEY_CACHE_NUM_REFILL_THREADS_DEFAULT =
395      2;
396
397  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
398  public static final String KMS_CLIENT_ENC_KEY_CACHE_EXPIRY_MS =
399      "hadoop.security.kms.client.encrypted.key.cache.expiry";
400  /** Default value for KMS_CLIENT_ENC_KEY_CACHE_EXPIRY (12 hrs)*/
401  public static final int KMS_CLIENT_ENC_KEY_CACHE_EXPIRY_DEFAULT = 43200000;
402
403  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
404  public static final String HADOOP_SECURITY_JAVA_SECURE_RANDOM_ALGORITHM_KEY = 
405    "hadoop.security.java.secure.random.algorithm";
406  /** Defalt value for HADOOP_SECURITY_JAVA_SECURE_RANDOM_ALGORITHM_KEY */
407  public static final String HADOOP_SECURITY_JAVA_SECURE_RANDOM_ALGORITHM_DEFAULT = 
408    "SHA1PRNG";
409  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
410  public static final String HADOOP_SECURITY_SECURE_RANDOM_IMPL_KEY = 
411    "hadoop.security.secure.random.impl";
412  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
413  public static final String HADOOP_SECURITY_SECURE_RANDOM_DEVICE_FILE_PATH_KEY = 
414    "hadoop.security.random.device.file.path";
415  public static final String HADOOP_SECURITY_SECURE_RANDOM_DEVICE_FILE_PATH_DEFAULT = 
416    "/dev/urandom";
417
418  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
419  public static final String HADOOP_SHELL_MISSING_DEFAULT_FS_WARNING_KEY =
420      "hadoop.shell.missing.defaultFs.warning";
421  // CLOUDERA-BUILD: enable the shell warnings by default.
422  public static final boolean HADOOP_SHELL_MISSING_DEFAULT_FS_WARNING_DEFAULT =
423      true;
424
425  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
426  public static final String HADOOP_HTTP_LOGS_ENABLED =
427      "hadoop.http.logs.enabled";
428  /** Defalt value for HADOOP_HTTP_LOGS_ENABLED */
429  public static final boolean HADOOP_HTTP_LOGS_ENABLED_DEFAULT = true;
430
431  /**
432   * @see
433   * <a href="{@docRoot}/../hadoop-project-dist/hadoop-common/core-default.xml">
434   * core-default.xml</a>
435   */
436  public static final String HADOOP_SECURITY_CREDENTIAL_PROVIDER_PATH =
437      "hadoop.security.credential.provider.path";
438
439  /**
440   * @see
441   * <a href="{@docRoot}/../hadoop-project-dist/hadoop-common/core-default.xml">
442   * core-default.xml</a>
443   */
444  public static final String HADOOP_SECURITY_CREDENTIAL_CLEAR_TEXT_FALLBACK =
445      "hadoop.security.credential.clear-text-fallback";
446  public static final boolean
447      HADOOP_SECURITY_CREDENTIAL_CLEAR_TEXT_FALLBACK_DEFAULT = true;
448
449  /**
450   * @see
451   * <a href="{@docRoot}/../hadoop-project-dist/hadoop-common/core-default.xml">
452   * core-default.xml</a>
453   */
454  public static final String  HADOOP_SECURITY_CREDENTIAL_PASSWORD_FILE_KEY =
455      "hadoop.security.credstore.java-keystore-provider.password-file";
456}
457