diff --git src/main/java/org/apache/hadoop/hbase/HConstants.java src/main/java/org/apache/hadoop/hbase/HConstants.java index e60ce04..a60c6c1 100644 --- src/main/java/org/apache/hadoop/hbase/HConstants.java +++ src/main/java/org/apache/hadoop/hbase/HConstants.java @@ -605,6 +605,7 @@ public final class HConstants { /** Host name of the local machine */ public static final String LOCALHOST = "localhost"; + public static final String ENABLE_FILE_PERMISSIONS = "hbase.file.permissions.enable"; private HConstants() { // Can't be instantiated with this ctor. diff --git src/main/java/org/apache/hadoop/hbase/io/hfile/AbstractHFileWriter.java src/main/java/org/apache/hadoop/hbase/io/hfile/AbstractHFileWriter.java index 9e7e624..1a0adb7 100644 --- src/main/java/org/apache/hadoop/hbase/io/hfile/AbstractHFileWriter.java +++ src/main/java/org/apache/hadoop/hbase/io/hfile/AbstractHFileWriter.java @@ -34,6 +34,7 @@ import org.apache.hadoop.hbase.KeyValue.KeyComparator; import org.apache.hadoop.hbase.io.hfile.HFile.FileInfo; import org.apache.hadoop.hbase.regionserver.metrics.SchemaConfigured; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.hbase.util.FSUtils; import org.apache.hadoop.io.RawComparator; import org.apache.hadoop.io.Writable; @@ -44,6 +45,8 @@ import org.apache.hadoop.io.Writable; public abstract class AbstractHFileWriter extends SchemaConfigured implements HFile.Writer { + private static final String HFILE_PERMISSION_KEY = "hbase.hfile.store.permissions"; + /** Key previously appended. Becomes the last key in the file. */ protected byte[] lastKeyBuffer = null; @@ -266,7 +269,10 @@ public abstract class AbstractHFileWriter extends SchemaConfigured /** A helper method to create HFile output streams in constructors */ protected static FSDataOutputStream createOutputStream(Configuration conf, FileSystem fs, Path path) throws IOException { - return fs.create(path, FsPermission.getDefault(), true, + FsPermission perms = FSUtils.getFilePermissions(fs, HFILE_PERMISSION_KEY, + conf); + + return fs.create(path, perms, true, fs.getConf().getInt("io.file.buffer.size", 4096), fs.getDefaultReplication(), fs.getDefaultBlockSize(), null); diff --git src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java index 76ff422..e15321c 100644 --- src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -65,6 +65,7 @@ import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.permission.FsPermission; import org.apache.hadoop.hbase.DoNotRetryIOException; import org.apache.hadoop.hbase.DroppedSnapshotException; import org.apache.hadoop.hbase.HBaseConfiguration; @@ -78,7 +79,6 @@ import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.NotServingRegionException; import org.apache.hadoop.hbase.UnknownScannerException; import org.apache.hadoop.hbase.client.Append; -import org.apache.hadoop.hbase.client.RowMutations; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Increment; @@ -88,13 +88,13 @@ import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.Row; import org.apache.hadoop.hbase.client.RowLock; +import org.apache.hadoop.hbase.client.RowMutations; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.coprocessor.Exec; import org.apache.hadoop.hbase.client.coprocessor.ExecResult; import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp; import org.apache.hadoop.hbase.filter.Filter; import org.apache.hadoop.hbase.filter.IncompatibleFilterException; -import org.apache.hadoop.hbase.filter.NullComparator; import org.apache.hadoop.hbase.filter.WritableByteArrayComparable; import org.apache.hadoop.hbase.io.HeapSize; import org.apache.hadoop.hbase.io.TimeRange; @@ -339,6 +339,9 @@ public class HRegion implements HeapSize { // , Writable{ public static final ConcurrentMap> timeVaryingMetrics = new ConcurrentHashMap>(); + + /** Configuration key for the permissions to use when creating the .regioninfo */ + private static final String HREGION_INFO_PERMISSION_KEY = "hbase.hregion.info.permissions"; public static void incrNumericMetric(String key, long amount) { AtomicLong oldVal = numericMetrics.get(key); @@ -761,8 +764,16 @@ public class HRegion implements HeapSize { // , Writable{ // create but before close. If we don't successfully close the file, // subsequent region reopens will fail the below because create is // registered in NN. + + // first check to get the permissions + FsPermission perms = FSUtils.getFilePermissions(fs, + HREGION_INFO_PERMISSION_KEY, conf); + + // and then create the file Path tmpPath = new Path(getTmpDir(), REGIONINFO_FILE); - FSDataOutputStream out = this.fs.create(tmpPath, true); + FSDataOutputStream out = fs.create(tmpPath, perms, true, + fs.getConf().getInt("io.file.buffer.size", 4096), + fs.getDefaultReplication(), fs.getDefaultBlockSize(), null); try { this.regionInfo.write(out); out.write('\n'); diff --git src/main/java/org/apache/hadoop/hbase/util/FSUtils.java src/main/java/org/apache/hadoop/hbase/util/FSUtils.java index d2d7efe..ffef0f4 100644 --- src/main/java/org/apache/hadoop/hbase/util/FSUtils.java +++ src/main/java/org/apache/hadoop/hbase/util/FSUtils.java @@ -42,6 +42,7 @@ import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.PathFilter; +import org.apache.hadoop.fs.permission.FsPermission; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HDFSBlocksDistribution; import org.apache.hadoop.hbase.HRegionInfo; @@ -123,6 +124,36 @@ public abstract class FSUtils { } /** + * Get the file permissions specified in the configuration, if they are + * enabled. + * + * @param fs filesystem that the file will be created on. + * @param permssionConfKey property key in the configuration to use when + * finding the permission + * @param conf configuration to read for determining if permissions are + * enabled and which to use + * @return the permission to use when creating a new file on the fs. If + * special permissions are not specified in the configuration, then + * the default permissions on the the fs will be returned. + */ + public static FsPermission getFilePermissions(final FileSystem fs, + final String permssionConfKey, final Configuration conf) { + boolean enablePermissions = conf.getBoolean( + HConstants.ENABLE_FILE_PERMISSIONS, false); + + if (enablePermissions) { + try { + return new FsPermission(conf.get(permssionConfKey)); + } catch (IllegalArgumentException e) { + return FsPermission.getDefault(); + } catch (NullPointerException e) { + return FsPermission.getDefault(); + } + } + return FsPermission.getDefault(); + } + + /** * Checks to see if the specified file system is available * * @param fs filesystem diff --git src/main/resources/hbase-default.xml src/main/resources/hbase-default.xml index 9277e0c..af9c80e 100644 --- src/main/resources/hbase-default.xml +++ src/main/resources/hbase-default.xml @@ -1,872 +1,954 @@ - + - - hbase.rootdir - file:///tmp/hbase-${user.name}/hbase - The directory shared by region servers and into - which HBase persists. The URL should be 'fully-qualified' - to include the filesystem scheme. For example, to specify the - HDFS directory '/hbase' where the HDFS instance's namenode is - running at namenode.example.org on port 9000, set this value to: - hdfs://namenode.example.org:9000/hbase. By default HBase writes - into /tmp. Change this configuration else all data will be lost - on machine restart. - - - - hbase.master.port - 60000 - The port the HBase Master should bind to. - - - hbase.cluster.distributed - false - The mode the cluster will be in. Possible values are - false for standalone mode and true for distributed mode. If - false, startup will run all HBase and ZooKeeper daemons together - in the one JVM. - - - - hbase.tmp.dir - /tmp/hbase-${user.name} - Temporary directory on the local filesystem. - Change this setting to point to a location more permanent - than '/tmp' (The '/tmp' directory is often cleared on - machine restart). - - - - hbase.master.info.port - 60010 - The port for the HBase Master web UI. - Set to -1 if you do not want a UI instance run. - - - - hbase.master.info.bindAddress - 0.0.0.0 - The bind address for the HBase Master web UI - - - - hbase.client.write.buffer - 2097152 - Default size of the HTable clien write buffer in bytes. - A bigger buffer takes more memory -- on both the client and server - side since server instantiates the passed write buffer to process - it -- but a larger buffer size reduces the number of RPCs made. - For an estimate of server-side memory-used, evaluate - hbase.client.write.buffer * hbase.regionserver.handler.count - - - - hbase.regionserver.port - 60020 - The port the HBase RegionServer binds to. - - - - hbase.regionserver.info.port - 60030 - The port for the HBase RegionServer web UI - Set to -1 if you do not want the RegionServer UI to run. - - - - hbase.regionserver.info.port.auto - false - Whether or not the Master or RegionServer - UI should search for a port to bind to. Enables automatic port - search if hbase.regionserver.info.port is already in use. - Useful for testing, turned off by default. - - - - hbase.regionserver.info.bindAddress - 0.0.0.0 - The address for the HBase RegionServer web UI - - - - hbase.regionserver.class - org.apache.hadoop.hbase.ipc.HRegionInterface - The RegionServer interface to use. - Used by the client opening proxy to remote region server. - - - - hbase.client.pause - 1000 - General client pause value. Used mostly as value to wait - before running a retry of a failed get, region lookup, etc. - - - hbase.client.retries.number - 10 - Maximum retries. Used as maximum for all retryable - operations such as fetching of the root region from root region - server, getting a cell's value, starting a row update, etc. - Default: 10. - - - - hbase.bulkload.retries.number - 0 - Maximum retries. This is maximum number of iterations - to atomic bulk loads are attempted in the face of splitting operations - 0 means never give up. Default: 0. - - - - hbase.client.scanner.caching - 1 - Number of rows that will be fetched when calling next - on a scanner if it is not served from (local, client) memory. Higher - caching values will enable faster scanners but will eat up more memory - and some calls of next may take longer and longer times when the cache is empty. - Do not set this value such that the time between invocations is greater - than the scanner timeout; i.e. hbase.regionserver.lease.period - - - - hbase.client.keyvalue.maxsize - 10485760 - Specifies the combined maximum allowed size of a KeyValue - instance. This is to set an upper boundary for a single entry saved in a - storage file. Since they cannot be split it helps avoiding that a region - cannot be split any further because the data is too large. It seems wise - to set this to a fraction of the maximum region size. Setting it to zero - or less disables the check. - - - - hbase.regionserver.lease.period - 60000 - HRegion server lease period in milliseconds. Default is - 60 seconds. Clients must report in within this period else they are - considered dead. - - - hbase.regionserver.handler.count - 10 - Count of RPC Listener instances spun up on RegionServers. - Same property is used by the Master for count of master handlers. - Default is 10. - - - - hbase.regionserver.msginterval - 3000 - Interval between messages from the RegionServer to Master - in milliseconds. - - - - hbase.regionserver.optionallogflushinterval - 1000 - Sync the HLog to the HDFS after this interval if it has not - accumulated enough entries to trigger a sync. Default 1 second. Units: - milliseconds. - - - - hbase.regionserver.regionSplitLimit - 2147483647 - Limit for the number of regions after which no more region - splitting should take place. This is not a hard limit for the number of - regions but acts as a guideline for the regionserver to stop splitting after - a certain limit. Default is set to MAX_INT; i.e. do not block splitting. - - - - hbase.regionserver.logroll.period - 3600000 - Period at which we will roll the commit log regardless - of how many edits it has. - - - hbase.regionserver.logroll.errors.tolerated - 2 - The number of consecutive WAL close errors we will allow - before triggering a server abort. A setting of 0 will cause the - region server to abort if closing the current WAL writer fails during - log rolling. Even a small value (2 or 3) will allow a region server - to ride over transient HDFS errors. - - - hbase.regionserver.hlog.reader.impl - org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader - The HLog file reader implementation. - - - hbase.regionserver.hlog.writer.impl - org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter - The HLog file writer implementation. - - - hbase.regionserver.nbreservationblocks - 4 - The number of resevoir blocks of memory release on - OOME so we can cleanup properly before server shutdown. - - - - hbase.zookeeper.dns.interface - default - The name of the Network Interface from which a ZooKeeper server - should report its IP address. - - - - hbase.zookeeper.dns.nameserver - default - The host name or IP address of the name server (DNS) - which a ZooKeeper server should use to determine the host name used by the - master for communication and display purposes. - - - - hbase.regionserver.dns.interface - default - The name of the Network Interface from which a region server - should report its IP address. - - - - hbase.regionserver.dns.nameserver - default - The host name or IP address of the name server (DNS) - which a region server should use to determine the host name used by the - master for communication and display purposes. - - - - hbase.master.dns.interface - default - The name of the Network Interface from which a master - should report its IP address. - - - - hbase.master.dns.nameserver - default - The host name or IP address of the name server (DNS) - which a master should use to determine the host name used - for communication and display purposes. - - - - hbase.balancer.period - - 300000 - Period at which the region balancer runs in the Master. - - - - hbase.regions.slop - 0.2 - Rebalance if any regionserver has average + (average * slop) regions. - Default is 20% slop. - - - - hbase.master.logcleaner.ttl - 600000 - Maximum time a HLog can stay in the .oldlogdir directory, - after which it will be cleaned by a Master thread. - - - - hbase.master.logcleaner.plugins - org.apache.hadoop.hbase.master.TimeToLiveLogCleaner - A comma-separated list of LogCleanerDelegate invoked by - the LogsCleaner service. These WAL/HLog cleaners are called in order, - so put the HLog cleaner that prunes the most HLog files in front. To - implement your own LogCleanerDelegate, just put it in HBase's classpath - and add the fully qualified class name here. Always add the above - default log cleaners in the list. - - - - hbase.regionserver.global.memstore.upperLimit - 0.4 - Maximum size of all memstores in a region server before new - updates are blocked and flushes are forced. Defaults to 40% of heap - - - - hbase.regionserver.global.memstore.lowerLimit - 0.35 - When memstores are being forced to flush to make room in - memory, keep flushing until we hit this mark. Defaults to 35% of heap. - This value equal to hbase.regionserver.global.memstore.upperLimit causes - the minimum possible flushing to occur when updates are blocked due to - memstore limiting. - - - - hbase.server.thread.wakefrequency - 10000 - Time to sleep in between searches for work (in milliseconds). - Used as sleep interval by service threads such as log roller. - - - - hbase.server.versionfile.writeattempts - 3 - - How many time to retry attempting to write a version file - before just aborting. Each attempt is seperated by the - hbase.server.thread.wakefrequency milliseconds. - - - - hbase.hregion.memstore.flush.size - 134217728 - - Memstore will be flushed to disk if size of the memstore - exceeds this number of bytes. Value is checked by a thread that runs - every hbase.server.thread.wakefrequency. - - - - hbase.hregion.preclose.flush.size - 5242880 - - If the memstores in a region are this size or larger when we go - to close, run a "pre-flush" to clear out memstores before we put up - the region closed flag and take the region offline. On close, - a flush is run under the close flag to empty memory. During - this time the region is offline and we are not taking on any writes. - If the memstore content is large, this flush could take a long time to - complete. The preflush is meant to clean out the bulk of the memstore - before putting up the close flag and taking the region offline so the - flush that runs under the close flag has little to do. - - - - hbase.hregion.memstore.block.multiplier - 2 - - Block updates if memstore has hbase.hregion.block.memstore - time hbase.hregion.flush.size bytes. Useful preventing - runaway memstore during spikes in update traffic. Without an - upper-bound, memstore fills such that when it flushes the - resultant flush files take a long time to compact or split, or - worse, we OOME. - - - - hbase.hregion.memstore.mslab.enabled - true - - Enables the MemStore-Local Allocation Buffer, - a feature which works to prevent heap fragmentation under - heavy write loads. This can reduce the frequency of stop-the-world - GC pauses on large heaps. - - - - hbase.hregion.max.filesize - 10737418240 - - Maximum HStoreFile size. If any one of a column families' HStoreFiles has - grown to exceed this value, the hosting HRegion is split in two. - Default: 10G. - - - - hbase.hstore.compactionThreshold - 3 - - If more than this number of HStoreFiles in any one HStore - (one HStoreFile is written per flush of memstore) then a compaction - is run to rewrite all HStoreFiles files as one. Larger numbers - put off compaction but when it runs, it takes longer to complete. - - - - hbase.hstore.blockingStoreFiles - 7 - - If more than this number of StoreFiles in any one Store - (one StoreFile is written per flush of MemStore) then updates are - blocked for this HRegion until a compaction is completed, or - until hbase.hstore.blockingWaitTime has been exceeded. - - - - hbase.hstore.blockingWaitTime - 90000 - - The time an HRegion will block updates for after hitting the StoreFile - limit defined by hbase.hstore.blockingStoreFiles. - After this time has elapsed, the HRegion will stop blocking updates even - if a compaction has not been completed. Default: 90 seconds. - - - - hbase.hstore.compaction.max - 10 - Max number of HStoreFiles to compact per 'minor' compaction. - - - - hbase.hregion.majorcompaction - 86400000 - The time (in miliseconds) between 'major' compactions of all - HStoreFiles in a region. Default: 1 day. - Set to 0 to disable automated major compactions. - - - - hbase.mapreduce.hfileoutputformat.blocksize - 65536 - The mapreduce HFileOutputFormat writes storefiles/hfiles. - This is the minimum hfile blocksize to emit. Usually in hbase, writing - hfiles, the blocksize is gotten from the table schema (HColumnDescriptor) - but in the mapreduce outputformat context, we don't have access to the - schema so get blocksize from Configuration. The smaller you make - the blocksize, the bigger your index and the less you fetch on a - random-access. Set the blocksize down if you have small cells and want - faster random-access of individual cells. - - - - hfile.block.cache.size - 0.25 - - Percentage of maximum heap (-Xmx setting) to allocate to block cache - used by HFile/StoreFile. Default of 0.25 means allocate 25%. - Set to 0 to disable but it's not recommended. - - - - hbase.hash.type - murmur - The hashing algorithm for use in HashFunction. Two values are - supported now: murmur (MurmurHash) and jenkins (JenkinsHash). - Used by bloom filters. - - - - hfile.block.index.cacheonwrite - false - - This allows to put non-root multi-level index blocks into the block - cache at the time the index is being written. - - - - hfile.index.block.max.size - 131072 - - When the size of a leaf-level, intermediate-level, or root-level - index block in a multi-level block index grows to this size, the - block is written out and a new block is started. - - - - hfile.format.version - 2 - - The HFile format version to use for new files. Set this to 1 to test - backwards-compatibility. The default value of this option should be - consistent with FixedFileTrailer.MAX_VERSION. - - - - io.storefile.bloom.block.size - 131072 - - The size in bytes of a single block ("chunk") of a compound Bloom - filter. This size is approximate, because Bloom blocks can only be - inserted at data block boundaries, and the number of keys per data - block varies. - - - - io.storefile.bloom.cacheonwrite - false - - Enables cache-on-write for inline blocks of a compound Bloom filter. - - - - hbase.rs.cacheblocksonwrite - false - - Whether an HFile block should be added to the block cache when the - block is finished. - - - - hbase.rpc.engine - org.apache.hadoop.hbase.ipc.WritableRpcEngine - Implementation of org.apache.hadoop.hbase.ipc.RpcEngine to be - used for client / server RPC call marshalling. - - + + hbase.rootdir + file:///tmp/hbase-${user.name}/hbase + The directory shared by region servers and into + which HBase persists. The URL should be 'fully-qualified' + to include the filesystem scheme. For example, to specify the + HDFS directory '/hbase' where the HDFS instance's namenode is + running at namenode.example.org on port 9000, set this value to: + hdfs://namenode.example.org:9000/hbase. By default HBase writes + into /tmp. Change this configuration else all data will be lost + on machine restart. + + + + hbase.master.port + 60000 + The port the HBase Master should bind to. + + + hbase.cluster.distributed + false + The mode the cluster will be in. Possible values are + false for standalone mode and true for distributed mode. If + false, startup will run all HBase and ZooKeeper daemons together + in the one JVM. + + + + hbase.tmp.dir + /tmp/hbase-${user.name} + Temporary directory on the local filesystem. + Change this setting to point to a location more permanent + than '/tmp' (The '/tmp' directory is often cleared on + machine restart). + + + + hbase.master.info.port + 60010 + The port for the HBase Master web UI. + Set to -1 if you do not want a UI instance run. + + + + hbase.master.info.bindAddress + 0.0.0.0 + The bind address for the HBase Master web UI + + + + hbase.client.write.buffer + 2097152 + Default size of the HTable clien write buffer in bytes. + A bigger buffer takes more memory -- on both the client and server + side since server instantiates the passed write buffer to process + it -- but a larger buffer size reduces the number of RPCs made. + For an estimate of server-side memory-used, evaluate + hbase.client.write.buffer * hbase.regionserver.handler.count + + + + hbase.regionserver.port + 60020 + The port the HBase RegionServer binds to. + + + + hbase.regionserver.info.port + 60030 + The port for the HBase RegionServer web UI + Set to -1 if you do not want the RegionServer UI to run. + + + + hbase.regionserver.info.port.auto + false + Whether or not the Master or RegionServer + UI should search for a port to bind to. Enables automatic port + search if hbase.regionserver.info.port is already in use. + Useful for testing, turned off by default. + + + + hbase.regionserver.info.bindAddress + 0.0.0.0 + The address for the HBase RegionServer web UI + + + + hbase.regionserver.class + org.apache.hadoop.hbase.ipc.HRegionInterface + The RegionServer interface to use. + Used by the client opening proxy to remote region server. + + + + hbase.client.pause + 1000 + General client pause value. Used mostly as value to wait + before running a retry of a failed get, region lookup, etc. + + + + hbase.client.retries.number + 10 + Maximum retries. Used as maximum for all retryable + operations such as fetching of the root region from root region + server, getting a cell's value, starting a row update, etc. + Default: 10. + + + + hbase.bulkload.retries.number + 0 + Maximum retries. This is maximum number of iterations + to atomic bulk loads are attempted in the face of splitting operations + 0 means never give up. Default: 0. + + + + hbase.client.scanner.caching + 1 + Number of rows that will be fetched when calling next + on a scanner if it is not served from (local, client) memory. Higher + caching values will enable faster scanners but will eat up more + memory + and some calls of next may take longer and longer times when the cache + is empty. + Do not set this value such that the time between invocations is greater + than the scanner timeout; i.e. hbase.regionserver.lease.period + + + + hbase.client.keyvalue.maxsize + 10485760 + Specifies the combined maximum allowed size of a KeyValue + instance. This is to set an upper boundary for a single entry saved + in a + storage file. Since they cannot be split it helps avoiding that a region + cannot be split any further because the data is too large. It seems + wise + to set this to a fraction of the maximum region size. Setting it to + zero + or less disables the check. + + + + hbase.regionserver.lease.period + 60000 + HRegion server lease period in milliseconds. Default is + 60 seconds. Clients must report in within this period else they are + considered dead. + + + + hbase.regionserver.handler.count + 10 + Count of RPC Listener instances spun up on RegionServers. + Same property is used by the Master for count of master handlers. + Default is 10. + + + + hbase.regionserver.msginterval + 3000 + Interval between messages from the RegionServer to Master + in milliseconds. + + + + hbase.regionserver.optionallogflushinterval + 1000 + Sync the HLog to the HDFS after this interval if it has + not + accumulated enough entries to trigger a sync. Default 1 second. Units: + milliseconds. + + + + hbase.regionserver.regionSplitLimit + 2147483647 + Limit for the number of regions after which no more + region + splitting should take place. This is not a hard limit for the number of + regions but acts as a guideline for the regionserver to stop + splitting after + a certain limit. Default is set to MAX_INT; i.e. do not block + splitting. + + + + hbase.regionserver.logroll.period + 3600000 + Period at which we will roll the commit log regardless + of how many edits it has. + + + + hbase.regionserver.logroll.errors.tolerated + 2 + The number of consecutive WAL close errors we will allow + before triggering a server abort. A setting of 0 will cause the + region server to abort if closing the current WAL writer fails during + log rolling. Even a small value (2 or 3) will allow a region server + to ride over transient HDFS errors. + + + + hbase.regionserver.hlog.reader.impl + org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader + + The HLog file reader implementation. + + + hbase.regionserver.hlog.writer.impl + org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter + + The HLog file writer implementation. + + + hbase.regionserver.nbreservationblocks + 4 + The number of resevoir blocks of memory release on + OOME so we can cleanup properly before server shutdown. + + + + hbase.zookeeper.dns.interface + default + The name of the Network Interface from which a ZooKeeper + server + should report its IP address. + + + + hbase.zookeeper.dns.nameserver + default + The host name or IP address of the name server (DNS) + which a ZooKeeper server should use to determine the host name used + by the + master for communication and display purposes. + + + + hbase.regionserver.dns.interface + default + The name of the Network Interface from which a region + server + should report its IP address. + + + + hbase.regionserver.dns.nameserver + default + The host name or IP address of the name server (DNS) + which a region server should use to determine the host name used by + the + master for communication and display purposes. + + + + hbase.master.dns.interface + default + The name of the Network Interface from which a master + should report its IP address. + + + + hbase.master.dns.nameserver + default + The host name or IP address of the name server (DNS) + which a master should use to determine the host name used + for communication and display purposes. + + + + hbase.balancer.period + + 300000 + Period at which the region balancer runs in the Master. + + + + hbase.regions.slop + 0.2 + Rebalance if any regionserver has average + (average * + slop) regions. + Default is 20% slop. + + + + hbase.master.logcleaner.ttl + 600000 + Maximum time a HLog can stay in the .oldlogdir directory, + after which it will be cleaned by a Master thread. + + + + hbase.master.logcleaner.plugins + org.apache.hadoop.hbase.master.TimeToLiveLogCleaner + A comma-separated list of LogCleanerDelegate invoked by + the LogsCleaner service. These WAL/HLog cleaners are called in order, + so put the HLog cleaner that prunes the most HLog files in front. To + implement your own LogCleanerDelegate, just put it in HBase's + classpath + and add the fully qualified class name here. Always add the above + default log cleaners in the list. + + + + hbase.regionserver.global.memstore.upperLimit + 0.4 + Maximum size of all memstores in a region server before + new + updates are blocked and flushes are forced. Defaults to 40% of heap + + + + hbase.regionserver.global.memstore.lowerLimit + 0.35 + When memstores are being forced to flush to make room in + memory, keep flushing until we hit this mark. Defaults to 35% of + heap. + This value equal to hbase.regionserver.global.memstore.upperLimit causes + the minimum possible flushing to occur when updates are blocked due + to + memstore limiting. + + + + hbase.server.thread.wakefrequency + 10000 + Time to sleep in between searches for work (in + milliseconds). + Used as sleep interval by service threads such as log roller. + + + + hbase.server.versionfile.writeattempts + 3 + + How many time to retry attempting to write a version file + before just aborting. Each attempt is seperated by the + hbase.server.thread.wakefrequency milliseconds. + + + + hbase.hregion.memstore.flush.size + 134217728 + + Memstore will be flushed to disk if size of the memstore + exceeds this number of bytes. Value is checked by a thread that runs + every hbase.server.thread.wakefrequency. + + + + hbase.hregion.preclose.flush.size + 5242880 + + If the memstores in a region are this size or larger when we go + to close, run a "pre-flush" to clear out memstores before we put up + the region closed flag and take the region offline. On close, + a flush is run under the close flag to empty memory. During + this time the region is offline and we are not taking on any writes. + If the memstore content is large, this flush could take a long time to + complete. The preflush is meant to clean out the bulk of the memstore + before putting up the close flag and taking the region offline so the + flush that runs under the close flag has little to do. + + + + hbase.hregion.memstore.block.multiplier + 2 + + Block updates if memstore has hbase.hregion.block.memstore + time hbase.hregion.flush.size bytes. Useful preventing + runaway memstore during spikes in update traffic. Without an + upper-bound, memstore fills such that when it flushes the + resultant flush files take a long time to compact or split, or + worse, we OOME. + + + + hbase.hregion.memstore.mslab.enabled + true + + Enables the MemStore-Local Allocation Buffer, + a feature which works to prevent heap fragmentation under + heavy write loads. This can reduce the frequency of stop-the-world + GC pauses on large heaps. + + + + hbase.hregion.max.filesize + 10737418240 + + Maximum HStoreFile size. If any one of a column families' HStoreFiles has + grown to exceed this value, the hosting HRegion is split in two. + Default: 10G. + + + + hbase.hstore.compactionThreshold + 3 + + If more than this number of HStoreFiles in any one HStore + (one HStoreFile is written per flush of memstore) then a compaction + is run to rewrite all HStoreFiles files as one. Larger numbers + put off compaction but when it runs, it takes longer to complete. + + + + hbase.hstore.blockingStoreFiles + 7 + + If more than this number of StoreFiles in any one Store + (one StoreFile is written per flush of MemStore) then updates are + blocked for this HRegion until a compaction is completed, or + until hbase.hstore.blockingWaitTime has been exceeded. + + + + hbase.hstore.blockingWaitTime + 90000 + + The time an HRegion will block updates for after hitting the StoreFile + limit defined by hbase.hstore.blockingStoreFiles. + After this time has elapsed, the HRegion will stop blocking updates even + if a compaction has not been completed. Default: 90 seconds. + + + + hbase.hstore.compaction.max + 10 + Max number of HStoreFiles to compact per 'minor' + compaction. + + + + hbase.hregion.majorcompaction + 86400000 + The time (in miliseconds) between 'major' compactions of + all + HStoreFiles in a region. Default: 1 day. + Set to 0 to disable automated major compactions. + + + + hbase.mapreduce.hfileoutputformat.blocksize + 65536 + The mapreduce HFileOutputFormat writes storefiles/hfiles. + This is the minimum hfile blocksize to emit. Usually in hbase, + writing + hfiles, the blocksize is gotten from the table schema (HColumnDescriptor) + but in the mapreduce outputformat context, we don't have access to + the + schema so get blocksize from Configuration. The smaller you make + the blocksize, the bigger your index and the less you fetch on a + random-access. Set the blocksize down if you have small cells and + want + faster random-access of individual cells. + + + + hfile.block.cache.size + 0.25 + + Percentage of maximum heap (-Xmx setting) to allocate to block cache + used by HFile/StoreFile. Default of 0.25 means allocate 25%. + Set to 0 to disable but it's not recommended. + + + + hbase.hash.type + murmur + The hashing algorithm for use in HashFunction. Two values + are + supported now: murmur (MurmurHash) and jenkins (JenkinsHash). + Used by bloom filters. + + + + hfile.block.index.cacheonwrite + false + + This allows to put non-root multi-level index blocks into the block + cache at the time the index is being written. + + + + hfile.index.block.max.size + 131072 + + When the size of a leaf-level, intermediate-level, or root-level + index block in a multi-level block index grows to this size, the + block is written out and a new block is started. + + + + hfile.format.version + 2 + + The HFile format version to use for new files. Set this to 1 to test + backwards-compatibility. The default value of this option should be + consistent with FixedFileTrailer.MAX_VERSION. + + + + io.storefile.bloom.block.size + 131072 + + The size in bytes of a single block ("chunk") of a compound Bloom + filter. This size is approximate, because Bloom blocks can only be + inserted at data block boundaries, and the number of keys per data + block varies. + + + + io.storefile.bloom.cacheonwrite + false + + Enables cache-on-write for inline blocks of a compound Bloom filter. + + + + hbase.rs.cacheblocksonwrite + false + + Whether an HFile block should be added to the block cache when the + block is finished. + + + + hbase.rpc.engine + org.apache.hadoop.hbase.ipc.WritableRpcEngine + Implementation of org.apache.hadoop.hbase.ipc.RpcEngine + to be + used for client / server RPC call marshalling. + + - - - hbase.master.keytab.file - - Full path to the kerberos keytab file to use for logging in - the configured HMaster server principal. - - - - hbase.master.kerberos.principal - - Ex. "hbase/_HOST@EXAMPLE.COM". The kerberos principal name - that should be used to run the HMaster process. The principal name should - be in the form: user/hostname@DOMAIN. If "_HOST" is used as the hostname - portion, it will be replaced with the actual hostname of the running - instance. - - - - hbase.regionserver.keytab.file - - Full path to the kerberos keytab file to use for logging in - the configured HRegionServer server principal. - - - - hbase.regionserver.kerberos.principal - - Ex. "hbase/_HOST@EXAMPLE.COM". The kerberos principal name - that should be used to run the HRegionServer process. The principal name - should be in the form: user/hostname@DOMAIN. If "_HOST" is used as the - hostname portion, it will be replaced with the actual hostname of the - running instance. An entry for this principal must exist in the file - specified in hbase.regionserver.keytab.file - - + + + hbase.master.keytab.file + + Full path to the kerberos keytab file to use for logging + in + the configured HMaster server principal. + + + + hbase.master.kerberos.principal + + Ex. "hbase/_HOST@EXAMPLE.COM". The kerberos principal + name + that should be used to run the HMaster process. The principal name should + be in the form: user/hostname@DOMAIN. If "_HOST" is used as the + hostname + portion, it will be replaced with the actual hostname of the running + instance. + + + + hbase.regionserver.keytab.file + + Full path to the kerberos keytab file to use for logging + in + the configured HRegionServer server principal. + + + + hbase.regionserver.kerberos.principal + + Ex. "hbase/_HOST@EXAMPLE.COM". The kerberos principal + name + that should be used to run the HRegionServer process. The principal name + should be in the form: user/hostname@DOMAIN. If "_HOST" is used as + the + hostname portion, it will be replaced with the actual hostname of the + running instance. An entry for this principal must exist in the file + specified in hbase.regionserver.keytab.file + + - - - hadoop.policy.file - hbase-policy.xml - The policy configuration file used by RPC servers to make - authorization decisions on client requests. Only used when HBase - security is enabled. - - - - hbase.superuser - - List of users or groups (comma-separated), who are allowed - full privileges, regardless of stored ACLs, across the cluster. - Only used when HBase security is enabled. - - - - hbase.auth.key.update.interval - 86400000 - The update interval for master key for authentication tokens - in servers in milliseconds. Only used when HBase security is enabled. - - - - hbase.auth.token.max.lifetime - 604800000 - The maximum lifetime in milliseconds after which an - authentication token expires. Only used when HBase security is enabled. - - + + + hadoop.policy.file + hbase-policy.xml + The policy configuration file used by RPC servers to make + authorization decisions on client requests. Only used when HBase + security is enabled. + + + + hbase.superuser + + List of users or groups (comma-separated), who are + allowed + full privileges, regardless of stored ACLs, across the cluster. + Only used when HBase security is enabled. + + + + hbase.auth.key.update.interval + 86400000 + The update interval for master key for authentication + tokens + in servers in milliseconds. Only used when HBase security is enabled. + + + + hbase.auth.token.max.lifetime + 604800000 + The maximum lifetime in milliseconds after which an + authentication token expires. Only used when HBase security is + enabled. + + - - zookeeper.session.timeout - 180000 - ZooKeeper session timeout. - HBase passes this to the zk quorum as suggested maximum time for a - session (This setting becomes zookeeper's 'maxSessionTimeout'). See - http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkSessions - "The client sends a requested timeout, the server responds with the - timeout that it can give the client. " In milliseconds. - - - - zookeeper.znode.parent - /hbase - Root ZNode for HBase in ZooKeeper. All of HBase's ZooKeeper - files that are configured with a relative path will go under this node. - By default, all of HBase's ZooKeeper file path are configured with a - relative path, so they will all go under this directory unless changed. - - - - zookeeper.znode.rootserver - root-region-server - Path to ZNode holding root region location. This is written by - the master and read by clients and region servers. If a relative path is - given, the parent folder will be ${zookeeper.znode.parent}. By default, - this means the root location is stored at /hbase/root-region-server. - - + + zookeeper.session.timeout + 180000 + ZooKeeper session timeout. + HBase passes this to the zk quorum as suggested maximum time for a + session (This setting becomes zookeeper's 'maxSessionTimeout'). See + http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkSessions + "The client sends a requested timeout, the server responds with the + timeout that it can give the client. " In milliseconds. + + + + zookeeper.znode.parent + /hbase + Root ZNode for HBase in ZooKeeper. All of HBase's + ZooKeeper + files that are configured with a relative path will go under this node. + By default, all of HBase's ZooKeeper file path are configured with a + relative path, so they will all go under this directory unless + changed. + + + + zookeeper.znode.rootserver + root-region-server + Path to ZNode holding root region location. This is + written by + the master and read by clients and region servers. If a relative path is + given, the parent folder will be ${zookeeper.znode.parent}. By + default, + this means the root location is stored at /hbase/root-region-server. + + - - zookeeper.znode.acl.parent - acl - Root ZNode for access control lists. - - - - hbase.coprocessor.region.classes - - A comma-separated list of Coprocessors that are loaded by - default on all tables. For any override coprocessor method, these classes - will be called in order. After implementing your own Coprocessor, just put - it in HBase's classpath and add the fully qualified class name here. - A coprocessor can also be loaded on demand by setting HTableDescriptor. - - + + zookeeper.znode.acl.parent + acl + Root ZNode for access control lists. + - - hbase.coprocessor.master.classes - - A comma-separated list of - org.apache.hadoop.hbase.coprocessor.MasterObserver coprocessors that are - loaded by default on the active HMaster process. For any implemented - coprocessor methods, the listed classes will be called in order. After - implementing your own MasterObserver, just put it in HBase's classpath - and add the fully qualified class name here. - - + + hbase.coprocessor.region.classes + + A comma-separated list of Coprocessors that are loaded by + default on all tables. For any override coprocessor method, these + classes + will be called in order. After implementing your own Coprocessor, just + put + it in HBase's classpath and add the fully qualified class name here. + A coprocessor can also be loaded on demand by setting + HTableDescriptor. + + - - - hbase.zookeeper.quorum - localhost - Comma separated list of servers in the ZooKeeper Quorum. - For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com". - By default this is set to localhost for local and pseudo-distributed modes - of operation. For a fully-distributed setup, this should be set to a full - list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh - this is the list of servers which we will start/stop ZooKeeper on. - - - - hbase.zookeeper.peerport - 2888 - Port used by ZooKeeper peers to talk to each other. - See http://hadoop.apache.org/zookeeper/docs/r3.1.1/zookeeperStarted.html#sc_RunningReplicatedZooKeeper - for more information. - - - - hbase.zookeeper.leaderport - 3888 - Port used by ZooKeeper for leader election. - See http://hadoop.apache.org/zookeeper/docs/r3.1.1/zookeeperStarted.html#sc_RunningReplicatedZooKeeper - for more information. - - - + + hbase.coprocessor.master.classes + + A comma-separated list of + org.apache.hadoop.hbase.coprocessor.MasterObserver coprocessors that + are + loaded by default on the active HMaster process. For any implemented + coprocessor methods, the listed classes will be called in order. + After + implementing your own MasterObserver, just put it in HBase's classpath + and add the fully qualified class name here. + + - - - hbase.zookeeper.property.initLimit - 10 - Property from ZooKeeper's config zoo.cfg. - The number of ticks that the initial synchronization phase can take. - - - - hbase.zookeeper.property.syncLimit - 5 - Property from ZooKeeper's config zoo.cfg. - The number of ticks that can pass between sending a request and getting an - acknowledgment. - - - - hbase.zookeeper.property.dataDir - ${hbase.tmp.dir}/zookeeper - Property from ZooKeeper's config zoo.cfg. - The directory where the snapshot is stored. - - - - hbase.zookeeper.property.clientPort - 2181 - Property from ZooKeeper's config zoo.cfg. - The port at which the clients will connect. - - - - hbase.zookeeper.property.maxClientCnxns - 300 - Property from ZooKeeper's config zoo.cfg. - Limit on number of concurrent connections (at the socket level) that a - single client, identified by IP address, may make to a single member of - the ZooKeeper ensemble. Set high to avoid zk connection issues running - standalone and pseudo-distributed. - - - - - hbase.rest.port - 8080 - The port for the HBase REST server. - - - hbase.rest.readonly - false - - Defines the mode the REST server will be started in. Possible values are: - false: All HTTP methods are permitted - GET/PUT/POST/DELETE. - true: Only the GET method is permitted. - - + + + hbase.zookeeper.quorum + localhost + Comma separated list of servers in the ZooKeeper Quorum. + For example, + "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com". + By default this is set to localhost for local and pseudo-distributed + modes + of operation. For a fully-distributed setup, this should be set to a + full + list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in + hbase-env.sh + this is the list of servers which we will start/stop ZooKeeper on. + + + + hbase.zookeeper.peerport + 2888 + Port used by ZooKeeper peers to talk to each other. + See + http://hadoop.apache.org/zookeeper/docs/r3.1.1/zookeeperStarted.html#sc_RunningReplicatedZooKeeper + for more information. + + + + hbase.zookeeper.leaderport + 3888 + Port used by ZooKeeper for leader election. + See + http://hadoop.apache.org/zookeeper/docs/r3.1.1/zookeeperStarted.html#sc_RunningReplicatedZooKeeper + for more information. + + + - - hbase.defaults.for.version - @@@VERSION@@@ - - This defaults file was compiled for version @@@VERSION@@@. This variable is used - to make sure that a user doesn't have an old version of hbase-default.xml on the - classpath. - - - - hbase.defaults.for.version.skip - false - - Set to true to skip the 'hbase.defaults.for.version' check. - Setting this to true can be useful in contexts other than - the other side of a maven generation; i.e. running in an - ide. You'll want to set this boolean to true to avoid - seeing the RuntimException complaint: "hbase-default.xml file - seems to be for and old version of HBase (@@@VERSION@@@), this - version is X.X.X-SNAPSHOT" - - - - hbase.coprocessor.abortonerror - false - - Set to true to cause the hosting server (master or regionserver) to - abort if a coprocessor throws a Throwable object that is not IOException or - a subclass of IOException. Setting it to true might be useful in development - environments where one wants to terminate the server as soon as possible to - simplify coprocessor failure analysis. - - - - hbase.instant.schema.alter.enabled - false - Whether or not to handle alter schema changes instantly or not. - If enabled, all schema change alter operations will be instant, as the master will not - explicitly unassign/assign the impacted regions and instead will rely on Region servers to - refresh their schema changes. If enabled, the schema alter requests will survive - master or RS failures. - - - - hbase.instant.schema.janitor.period - 120000 - The Schema Janitor process wakes up every millis and sweeps all - expired/failed schema change requests. - - - - hbase.instant.schema.alter.timeout - 60000 - Timeout in millis after which any pending schema alter request will be - considered as failed. - - - - hbase.online.schema.update.enable - false - - Set true to enable online schema changes. This is an experimental feature. - There are known issues modifying table schemas at the same time a region - split is happening so your table needs to be quiescent or else you have to - be running with splits disabled. - - - - dfs.support.append - true - Does HDFS allow appends to files? - This is an hdfs config. set in here so the hdfs client will do append support. - You must ensure that this config. is true serverside too when running hbase - (You will have to restart your cluster after setting it). - - - - hbase.thrift.minWorkerThreads - 16 - - The "core size" of the thread pool. New threads are created on every - connection until this many threads are created. - - - - hbase.thrift.maxWorkerThreads - 1000 - - The maximum size of the thread pool. When the pending request queue - overflows, new threads are created until their number reaches this number. - After that, the server starts dropping connections. - - - - hbase.thrift.maxQueuedRequests - 1000 - - The maximum number of pending Thrift connections waiting in the queue. If - there are no idle threads in the pool, the server queues requests. Only - when the queue overflows, new threads are added, up to - hbase.thrift.maxQueuedRequests threads. - - - - hbase.offheapcache.percentage - 0 - - The amount of off heap space to be allocated towards the experimental - off heap cache. If you desire the cache to be disabled, simply set this - value to 0. - - + + + hbase.zookeeper.property.initLimit + 10 + Property from ZooKeeper's config zoo.cfg. + The number of ticks that the initial synchronization phase can take. + + + + hbase.zookeeper.property.syncLimit + 5 + Property from ZooKeeper's config zoo.cfg. + The number of ticks that can pass between sending a request and getting + an + acknowledgment. + + + + hbase.zookeeper.property.dataDir + ${hbase.tmp.dir}/zookeeper + Property from ZooKeeper's config zoo.cfg. + The directory where the snapshot is stored. + + + + hbase.zookeeper.property.clientPort + 2181 + Property from ZooKeeper's config zoo.cfg. + The port at which the clients will connect. + + + + hbase.zookeeper.property.maxClientCnxns + 300 + Property from ZooKeeper's config zoo.cfg. + Limit on number of concurrent connections (at the socket level) that a + single client, identified by IP address, may make to a single member + of + the ZooKeeper ensemble. Set high to avoid zk connection issues running + standalone and pseudo-distributed. + + + + + hbase.rest.port + 8080 + The port for the HBase REST server. + + + hbase.rest.readonly + false + + Defines the mode the REST server will be started in. Possible values are: + false: All HTTP methods are permitted - GET/PUT/POST/DELETE. + true: Only the GET method is permitted. + + + + + hbase.defaults.for.version + @@@VERSION@@@ + + This defaults file was compiled for version @@@VERSION@@@. This variable + is used + to make sure that a user doesn't have an old version of + hbase-default.xml on the + classpath. + + + + hbase.defaults.for.version.skip + false + + Set to true to skip the 'hbase.defaults.for.version' check. + Setting this to true can be useful in contexts other than + the other side of a maven generation; i.e. running in an + ide. You'll want to set this boolean to true to avoid + seeing the RuntimException complaint: "hbase-default.xml file + seems to be for and old version of HBase (@@@VERSION@@@), this + version is X.X.X-SNAPSHOT" + + + + hbase.coprocessor.abortonerror + false + + Set to true to cause the hosting server (master or regionserver) to + abort if a coprocessor throws a Throwable object that is not + IOException or + a subclass of IOException. Setting it to true might be useful in + development + environments where one wants to terminate the server as soon as possible to + simplify coprocessor failure analysis. + + + + hbase.instant.schema.alter.enabled + false + Whether or not to handle alter schema changes instantly + or not. + If enabled, all schema change alter operations will be instant, as the + master will not + explicitly unassign/assign the impacted regions and instead will rely on Region + servers to + refresh their schema changes. If enabled, the schema alter requests will + survive + master or RS failures. + + + + hbase.instant.schema.janitor.period + 120000 + The Schema Janitor process wakes up every millis and + sweeps all + expired/failed schema change requests. + + + + hbase.instant.schema.alter.timeout + 60000 + Timeout in millis after which any pending schema alter + request will be + considered as failed. + + + + hbase.online.schema.update.enable + false + + Set true to enable online schema changes. This is an experimental + feature. + There are known issues modifying table schemas at the same time a region + split is happening so your table needs to be quiescent or else you + have to + be running with splits disabled. + + + + dfs.support.append + true + Does HDFS allow appends to files? + This is an hdfs config. set in here so the hdfs client will do append + support. + You must ensure that this config. is true serverside too when running + hbase + (You will have to restart your cluster after setting it). + + + + hbase.thrift.minWorkerThreads + 16 + + The "core size" of the thread pool. New threads are created on every + connection until this many threads are created. + + + + hbase.thrift.maxWorkerThreads + 1000 + + The maximum size of the thread pool. When the pending request queue + overflows, new threads are created until their number reaches this + number. + After that, the server starts dropping connections. + + + + hbase.thrift.maxQueuedRequests + 1000 + + The maximum number of pending Thrift connections waiting in the queue. + If + there are no idle threads in the pool, the server queues requests. Only + when the queue overflows, new threads are added, up to + hbase.thrift.maxQueuedRequests threads. + + + + hbase.offheapcache.percentage + 0 + + The amount of off heap space to be allocated towards the experimental + off heap cache. If you desire the cache to be disabled, simply set + this + value to 0. + + + + hbase.file.permissions.enable + false + Enable, if true, that file permissions should be assigned + to the files written by the regionserver + + + + hbase.hfile.store.permissions + 777 + File permissions that should be used to write store + files when hbase.file.permissions.enable is true + + + + hbase.hregion.info.permissions + 777 + File permissions that should be used to write hregion info + files when hbase.file.permissions.enable is true + +