1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase;
19
20 import static org.apache.hadoop.hbase.io.hfile.BlockType.MAGIC_LENGTH;
21
22 import java.nio.ByteBuffer;
23 import java.nio.charset.Charset;
24 import java.util.Arrays;
25 import java.util.Collections;
26 import java.util.List;
27 import java.util.UUID;
28 import java.util.regex.Pattern;
29
30 import org.apache.commons.lang.ArrayUtils;
31 import org.apache.hadoop.classification.InterfaceAudience;
32 import org.apache.hadoop.classification.InterfaceStability;
33 import org.apache.hadoop.hbase.util.Bytes;
34
35
36
37
38 @InterfaceAudience.Public
39 @InterfaceStability.Stable
40 public final class HConstants {
41
42
43 public static final String UTF8_ENCODING = "UTF-8";
44
45
46
47 public static final Charset UTF8_CHARSET = Charset.forName(UTF8_ENCODING);
48
49
50
51 public final static int DEFAULT_BLOCKSIZE = 64 * 1024;
52
53
54 public final static int INDEX_KEY_MAGIC = -2;
55
56
57
58
59 public static final String RECOVERED_EDITS_DIR = "recovered.edits";
60
61
62
63 public static final ByteBuffer RPC_HEADER = ByteBuffer.wrap("HBas".getBytes());
64 public static final byte RPC_CURRENT_VERSION = 0;
65
66
67
68
69 public static final int HFILEBLOCK_HEADER_SIZE_NO_CHECKSUM = MAGIC_LENGTH + 2 * Bytes.SIZEOF_INT
70 + Bytes.SIZEOF_LONG;
71
72
73
74
75 public static final int HFILEBLOCK_HEADER_SIZE = HFILEBLOCK_HEADER_SIZE_NO_CHECKSUM +
76 Bytes.SIZEOF_BYTE + 2 * Bytes.SIZEOF_INT;
77
78 public static final byte[] HFILEBLOCK_DUMMY_HEADER = new byte[HFILEBLOCK_HEADER_SIZE];
79
80
81
82
83
84
85 public enum OperationStatusCode {
86 NOT_RUN,
87 SUCCESS,
88 BAD_FAMILY,
89 SANITY_CHECK_FAILURE,
90 FAILURE;
91 }
92
93
94 public static final Long ZERO_L = Long.valueOf(0L);
95 public static final String NINES = "99999999999999";
96 public static final String ZEROES = "00000000000000";
97
98
99
100
101 public static final String VERSION_FILE_NAME = "hbase.version";
102
103
104
105
106
107
108
109
110
111
112 public static final String FILE_SYSTEM_VERSION = "8";
113
114
115
116
117
118
119 public static final String CLUSTER_DISTRIBUTED = "hbase.cluster.distributed";
120
121
122 public static final String HBASE_MASTER_LOADBALANCER_CLASS = "hbase.master.loadbalancer.class";
123
124
125 public static final boolean CLUSTER_IS_LOCAL = false;
126
127
128 public static final boolean CLUSTER_IS_DISTRIBUTED = true;
129
130
131 public static final boolean DEFAULT_CLUSTER_DISTRIBUTED = CLUSTER_IS_LOCAL;
132
133
134 public static final String DEFAULT_HOST = "0.0.0.0";
135
136
137 public static final String MASTER_PORT = "hbase.master.port";
138
139
140 public static final int DEFAULT_MASTER_PORT = 60000;
141
142
143 public static final int DEFAULT_MASTER_INFOPORT = 60010;
144
145
146 public static final String MASTER_INFO_PORT = "hbase.master.info.port";
147
148
149 public static final String MASTER_TYPE_BACKUP = "hbase.master.backup";
150
151
152 public static final boolean DEFAULT_MASTER_TYPE_BACKUP = false;
153
154
155 public static final String ZOOKEEPER_QUORUM = "hbase.zookeeper.quorum";
156
157
158 public static final String ZOOKEEPER_CONFIG_NAME = "zoo.cfg";
159
160
161 public static final String ZK_CFG_PROPERTY_PREFIX =
162 "hbase.zookeeper.property.";
163
164 public static final int ZK_CFG_PROPERTY_PREFIX_LEN =
165 ZK_CFG_PROPERTY_PREFIX.length();
166
167
168
169
170
171 public static final String CLIENT_PORT_STR = "clientPort";
172
173
174 public static final String ZOOKEEPER_CLIENT_PORT =
175 ZK_CFG_PROPERTY_PREFIX + CLIENT_PORT_STR;
176
177
178 public static final int DEFAULT_ZOOKEPER_CLIENT_PORT = 2181;
179
180
181 public static final String ZOOKEEPER_RECOVERABLE_WAITTIME = "hbase.zookeeper.recoverable.waittime";
182
183
184 public static final long DEFAULT_ZOOKEPER_RECOVERABLE_WAITIME = 10000;
185
186
187 public static final String ZOOKEEPER_ZNODE_PARENT = "zookeeper.znode.parent";
188
189 public static final String DEFAULT_ZOOKEEPER_ZNODE_PARENT = "/hbase";
190
191
192
193
194
195 public static final String ZOOKEEPER_MAX_CLIENT_CNXNS =
196 ZK_CFG_PROPERTY_PREFIX + "maxClientCnxns";
197
198
199 public static final String ZOOKEEPER_DATA_DIR =
200 ZK_CFG_PROPERTY_PREFIX + "dataDir";
201
202
203 public static final int DEFAULT_ZOOKEPER_MAX_CLIENT_CNXNS = 300;
204
205
206 public static final String ZK_SESSION_TIMEOUT = "zookeeper.session.timeout";
207
208
209 public static final int DEFAULT_ZK_SESSION_TIMEOUT = 180 * 1000;
210
211
212 public static final String ZOOKEEPER_USEMULTI = "hbase.zookeeper.useMulti";
213
214
215 public static final String REGIONSERVER_PORT = "hbase.regionserver.port";
216
217
218 public static final int DEFAULT_REGIONSERVER_PORT = 60020;
219
220
221 public static final int DEFAULT_REGIONSERVER_INFOPORT = 60030;
222
223
224 public static final String REGIONSERVER_INFO_PORT =
225 "hbase.regionserver.info.port";
226
227
228 public static final String REGIONSERVER_INFO_PORT_AUTO =
229 REGIONSERVER_INFO_PORT + ".auto";
230
231
232 public static final String REGION_SERVER_IMPL= "hbase.regionserver.impl";
233
234
235 public static final String MASTER_IMPL= "hbase.master.impl";
236
237
238 public static final String HBASECLIENT_IMPL= "hbase.hbaseclient.impl";
239
240
241 public static final String THREAD_WAKE_FREQUENCY = "hbase.server.thread.wakefrequency";
242
243
244 public static final int DEFAULT_THREAD_WAKE_FREQUENCY = 10 * 1000;
245
246
247 public static final String VERSION_FILE_WRITE_ATTEMPTS = "hbase.server.versionfile.writeattempts";
248
249
250 public static final int DEFAULT_VERSION_FILE_WRITE_ATTEMPTS = 3;
251
252
253 public static final String MAJOR_COMPACTION_PERIOD = "hbase.hregion.majorcompaction";
254
255
256 public static final String COMPACTION_KV_MAX = "hbase.hstore.compaction.kv.max";
257
258
259 public static final String HBASE_DIR = "hbase.rootdir";
260
261
262 public static final String HBASE_CLIENT_IPC_POOL_TYPE = "hbase.client.ipc.pool.type";
263
264
265 public static final String HBASE_CLIENT_IPC_POOL_SIZE = "hbase.client.ipc.pool.size";
266
267
268 public static final String HBASE_CLIENT_OPERATION_TIMEOUT = "hbase.client.operation.timeout";
269
270
271 public static final String HBASE_CLIENT_META_OPERATION_TIMEOUT =
272 "hbase.client.meta.operation.timeout";
273
274
275 public static final int DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT = Integer.MAX_VALUE;
276
277
278 public static final String HREGION_LOGDIR_NAME = "WALs";
279
280
281 public static final String SPLIT_LOGDIR_NAME = "splitWAL";
282
283
284 public static final String HREGION_OLDLOGDIR_NAME = "oldWALs";
285
286 public static final String CORRUPT_DIR_NAME = "corrupt";
287
288
289 public static final String HBCK_SIDELINEDIR_NAME = ".hbck";
290
291
292 public static final String MIGRATION_NAME = ".migration";
293
294
295 public static final String HREGION_COMPACTIONDIR_NAME = "compaction.dir";
296
297
298 public static final String HREGION_MAX_FILESIZE =
299 "hbase.hregion.max.filesize";
300
301
302 public static final long DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024 * 1024L;
303
304
305
306
307
308 public static final String HSTORE_OPEN_AND_CLOSE_THREADS_MAX =
309 "hbase.hstore.open.and.close.threads.max";
310
311
312
313
314
315 public static final int DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX = 1;
316
317
318
319 public static final String HREGION_MEMSTORE_FLUSH_SIZE =
320 "hbase.hregion.memstore.flush.size";
321
322 public static final String HREGION_EDITS_REPLAY_SKIP_ERRORS =
323 "hbase.hregion.edits.replay.skip.errors";
324
325 public static final boolean DEFAULT_HREGION_EDITS_REPLAY_SKIP_ERRORS =
326 false;
327
328
329 public static final int MAXIMUM_VALUE_LENGTH = Integer.MAX_VALUE - 1;
330
331
332 public static final String CLUSTER_ID_FILE_NAME = "hbase.id";
333
334
335 public static final String CLUSTER_ID_DEFAULT = "default-cluster";
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357 public static final String BASE_NAMESPACE_DIR = "data";
358
359
360 public static final int META_ROW_DELIMITER = ',';
361
362
363 public static final String CATALOG_FAMILY_STR = "info";
364
365
366 public static final byte [] CATALOG_FAMILY = Bytes.toBytes(CATALOG_FAMILY_STR);
367
368
369 public static final String REGIONINFO_QUALIFIER_STR = "regioninfo";
370
371
372 public static final byte [] REGIONINFO_QUALIFIER = Bytes.toBytes(REGIONINFO_QUALIFIER_STR);
373
374
375 public static final byte [] SERVER_QUALIFIER = Bytes.toBytes("server");
376
377
378 public static final byte [] STARTCODE_QUALIFIER = Bytes.toBytes("serverstartcode");
379
380
381 public static final byte [] SEQNUM_QUALIFIER = Bytes.toBytes("seqnumDuringOpen");
382
383
384 public static final byte [] SPLITA_QUALIFIER = Bytes.toBytes("splitA");
385
386
387 public static final byte [] SPLITB_QUALIFIER = Bytes.toBytes("splitB");
388
389
390 public static final byte[] MERGEA_QUALIFIER = Bytes.toBytes("mergeA");
391
392
393 public static final byte[] MERGEB_QUALIFIER = Bytes.toBytes("mergeB");
394
395
396
397
398
399
400 public static final byte [] META_VERSION_QUALIFIER = Bytes.toBytes("v");
401
402
403
404
405
406
407
408
409
410
411
412 public static final short META_VERSION = 1;
413
414
415
416
417
418
419 public static final byte [] EMPTY_BYTE_ARRAY = new byte [0];
420
421
422
423
424 public static final byte [] EMPTY_START_ROW = EMPTY_BYTE_ARRAY;
425
426
427
428
429 public static final byte [] EMPTY_END_ROW = EMPTY_START_ROW;
430
431
432
433
434
435 public static final byte [] LAST_ROW = EMPTY_BYTE_ARRAY;
436
437
438
439
440 public static final int MAX_ROW_LENGTH = Short.MAX_VALUE;
441
442
443
444
445
446
447 public static final long LATEST_TIMESTAMP = Long.MAX_VALUE;
448
449
450
451
452 public static final long OLDEST_TIMESTAMP = Long.MIN_VALUE;
453
454
455
456
457 public static final byte [] LATEST_TIMESTAMP_BYTES = {
458
459 (byte) (LATEST_TIMESTAMP >>> 56),
460 (byte) (LATEST_TIMESTAMP >>> 48),
461 (byte) (LATEST_TIMESTAMP >>> 40),
462 (byte) (LATEST_TIMESTAMP >>> 32),
463 (byte) (LATEST_TIMESTAMP >>> 24),
464 (byte) (LATEST_TIMESTAMP >>> 16),
465 (byte) (LATEST_TIMESTAMP >>> 8),
466 (byte) LATEST_TIMESTAMP,
467 };
468
469
470
471
472 public static final int ALL_VERSIONS = Integer.MAX_VALUE;
473
474
475
476
477
478 public static final int FOREVER = Integer.MAX_VALUE;
479
480
481
482
483 public static final int WEEK_IN_SECONDS = 7 * 24 * 3600;
484
485
486
487
488
489 public static final String NAME = "NAME";
490 public static final String VERSIONS = "VERSIONS";
491 public static final String IN_MEMORY = "IN_MEMORY";
492 public static final String METADATA = "METADATA";
493 public static final String CONFIGURATION = "CONFIGURATION";
494
495
496
497
498
499
500
501
502 public static int RETRY_BACKOFF[] = { 1, 2, 3, 5, 10, 100 };
503
504 public static final String REGION_IMPL = "hbase.hregion.impl";
505
506
507 public static enum Modify {
508 CLOSE_REGION,
509 TABLE_COMPACT,
510 TABLE_FLUSH,
511 TABLE_MAJOR_COMPACT,
512 TABLE_SET_HTD,
513 TABLE_SPLIT
514 }
515
516
517
518
519
520 public static final int REPLICATION_SCOPE_LOCAL = 0;
521
522
523
524
525
526 public static final int REPLICATION_SCOPE_GLOBAL = 1;
527
528
529
530
531
532 public static final UUID DEFAULT_CLUSTER_ID = new UUID(0L,0L);
533
534
535
536
537
538 public static String HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE_KEY = "hbase.client.scanner.max.result.size";
539
540
541
542
543
544
545
546
547 public static long DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE = Long.MAX_VALUE;
548
549
550
551
552
553 public static String HBASE_CLIENT_PAUSE = "hbase.client.pause";
554
555
556
557
558 public static long DEFAULT_HBASE_CLIENT_PAUSE = 1000;
559
560
561
562
563
564 public static String HBASE_SERVER_PAUSE = "hbase.server.pause";
565
566
567
568
569 public static int DEFAULT_HBASE_SERVER_PAUSE = 1000;
570
571
572
573
574
575
576 public static String HBASE_CLIENT_RETRIES_NUMBER = "hbase.client.retries.number";
577
578
579
580
581 public static int DEFAULT_HBASE_CLIENT_RETRIES_NUMBER = 31;
582
583
584
585
586
587 public static String HBASE_CLIENT_PREFETCH_LIMIT = "hbase.client.prefetch.limit";
588
589
590
591
592 public static int DEFAULT_HBASE_CLIENT_PREFETCH_LIMIT = 10;
593
594
595
596
597 public static String HBASE_CLIENT_SCANNER_CACHING = "hbase.client.scanner.caching";
598
599
600
601
602 public static int DEFAULT_HBASE_CLIENT_SCANNER_CACHING = 100;
603
604
605
606
607
608
609
610 public static String HBASE_META_SCANNER_CACHING = "hbase.meta.scanner.caching";
611
612
613
614
615 public static int DEFAULT_HBASE_META_SCANNER_CACHING = 100;
616
617
618
619
620
621
622
623
624
625
626 public static String HBASE_CLIENT_INSTANCE_ID = "hbase.client.instance.id";
627
628
629
630
631 public static String HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD = "hbase.client.scanner.timeout.period";
632
633
634
635
636
637 @Deprecated
638 public static String HBASE_REGIONSERVER_LEASE_PERIOD_KEY =
639 "hbase.regionserver.lease.period";
640
641
642
643
644 public static int DEFAULT_HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD = 60000;
645
646
647
648
649 public static String HBASE_RPC_TIMEOUT_KEY = "hbase.rpc.timeout";
650
651
652
653
654 public static int DEFAULT_HBASE_RPC_TIMEOUT = 60000;
655
656
657
658
659 public static String HBASE_RPC_SHORTOPERATION_TIMEOUT_KEY = "hbase.rpc.shortoperation.timeout";
660
661
662
663
664 public static int DEFAULT_HBASE_RPC_SHORTOPERATION_TIMEOUT = 10000;
665
666
667
668
669 public static final long NO_SEQNUM = -1;
670
671
672
673
674
675 public static final String
676 REPLICATION_ENABLE_KEY = "hbase.replication";
677 public static final String
678 REPLICATION_SOURCE_SERVICE_CLASSNAME = "hbase.replication.source.service";
679 public static final String
680 REPLICATION_SINK_SERVICE_CLASSNAME = "hbase.replication.sink.service";
681 public static final String REPLICATION_SERVICE_CLASSNAME_DEFAULT =
682 "org.apache.hadoop.hbase.replication.regionserver.Replication";
683
684
685 public static final String HBCK_CODE_NAME = "HBCKServerName";
686
687 public static final String KEY_FOR_HOSTNAME_SEEN_BY_MASTER =
688 "hbase.regionserver.hostname.seen.by.master";
689
690 public static final String HBASE_MASTER_LOGCLEANER_PLUGINS =
691 "hbase.master.logcleaner.plugins";
692
693 public static final String HBASE_REGION_SPLIT_POLICY_KEY =
694 "hbase.regionserver.region.split.policy";
695
696
697
698
699 public static final String HFILE_BLOCK_CACHE_SIZE_KEY =
700 "hfile.block.cache.size";
701
702 public static final float HFILE_BLOCK_CACHE_SIZE_DEFAULT = 0.25f;
703
704
705
706
707 public static final float HBASE_CLUSTER_MINIMUM_MEMORY_THRESHOLD = 0.2f;
708
709 public static final Pattern CP_HTD_ATTR_KEY_PATTERN = Pattern.compile
710 ("^coprocessor\\$([0-9]+)$", Pattern.CASE_INSENSITIVE);
711 public static final Pattern CP_HTD_ATTR_VALUE_PATTERN =
712 Pattern.compile("(^[^\\|]*)\\|([^\\|]+)\\|[\\s]*([\\d]*)[\\s]*(\\|.*)?$");
713
714 public static final String CP_HTD_ATTR_VALUE_PARAM_KEY_PATTERN = "[^=,]+";
715 public static final String CP_HTD_ATTR_VALUE_PARAM_VALUE_PATTERN = "[^,]+";
716 public static final Pattern CP_HTD_ATTR_VALUE_PARAM_PATTERN = Pattern.compile(
717 "(" + CP_HTD_ATTR_VALUE_PARAM_KEY_PATTERN + ")=(" +
718 CP_HTD_ATTR_VALUE_PARAM_VALUE_PATTERN + "),?");
719
720
721 public static final int SOCKET_RETRY_WAIT_MS = 200;
722
723
724 public static final String LOCALHOST = "localhost";
725
726
727
728
729
730
731
732
733
734
735
736
737 public static final String HBASE_CHECKSUM_VERIFICATION =
738 "hbase.regionserver.checksum.verify";
739
740 public static final String LOCALHOST_IP = "127.0.0.1";
741
742
743 public static final String DISTRIBUTED_LOG_REPLAY_KEY = "hbase.master.distributed.log.replay";
744 public static final boolean DEFAULT_DISTRIBUTED_LOG_REPLAY_CONFIG = false;
745 public static final String DISALLOW_WRITES_IN_RECOVERING =
746 "hbase.regionserver.disallow.writes.when.recovering";
747 public static final boolean DEFAULT_DISALLOW_WRITES_IN_RECOVERING_CONFIG = false;
748
749
750 public static final String LOG_REPLAY_WAIT_REGION_TIMEOUT =
751 "hbase.master.log.replay.wait.region.timeout";
752
753
754
755
756
757 public static final String BYTES_PER_CHECKSUM =
758 "hbase.hstore.bytes.per.checksum";
759
760
761
762
763
764
765 public static final String CHECKSUM_TYPE_NAME =
766 "hbase.hstore.checksum.algorithm";
767
768
769 public static final String ENABLE_DATA_FILE_UMASK = "hbase.data.umask.enable";
770
771 public static final String DATA_FILE_UMASK_KEY = "hbase.data.umask";
772
773
774 public static final String ENABLE_WAL_COMPRESSION =
775 "hbase.regionserver.wal.enablecompression";
776
777
778 public static final String METRICS_RIT_STUCK_WARNING_THRESHOLD="hbase.metrics.rit.stuck.warning.threshold";
779
780 public static final String LOAD_BALANCER_SLOP_KEY = "hbase.regions.slop";
781
782
783
784
785
786 public static final byte [] NO_NEXT_INDEXED_KEY = Bytes.toBytes("NO_NEXT_INDEXED_KEY");
787
788 public static final int DELIMITER = ',';
789 public static final String HBASE_CONFIG_READ_ZOOKEEPER_CONFIG =
790 "hbase.config.read.zookeeper.config";
791 public static final boolean DEFAULT_HBASE_CONFIG_READ_ZOOKEEPER_CONFIG =
792 false;
793
794
795
796
797
798
799 public static final int NORMAL_QOS = 0;
800 public static final int QOS_THRESHOLD = 10;
801 public static final int HIGH_QOS = 100;
802 public static final int REPLICATION_QOS = 5;
803 public static final int REPLAY_QOS = 6;
804
805
806 public static final String HFILE_ARCHIVE_DIRECTORY = "archive";
807
808
809
810
811
812
813 public static final String SNAPSHOT_DIR_NAME = ".hbase-snapshot";
814
815
816 public static final String OLD_SNAPSHOT_DIR_NAME = ".snapshot";
817
818
819 public static final String HBASE_TEMP_DIRECTORY = ".tmp";
820
821
822 public static final List<String> HBASE_NON_TABLE_DIRS =
823 Collections.unmodifiableList(Arrays.asList(new String[] { HREGION_LOGDIR_NAME,
824 HREGION_OLDLOGDIR_NAME, CORRUPT_DIR_NAME, SPLIT_LOGDIR_NAME,
825 HBCK_SIDELINEDIR_NAME, HFILE_ARCHIVE_DIRECTORY, SNAPSHOT_DIR_NAME, HBASE_TEMP_DIRECTORY,
826 OLD_SNAPSHOT_DIR_NAME, BASE_NAMESPACE_DIR, MIGRATION_NAME}));
827
828
829 public static final List<String> HBASE_NON_USER_TABLE_DIRS =
830 Collections.unmodifiableList(Arrays.asList((String[])ArrayUtils.addAll(
831 new String[] { TableName.META_TABLE_NAME.getNameAsString(), TableName.ROOT_TABLE_NAME.getNameAsString() },
832 HBASE_NON_TABLE_DIRS.toArray())));
833
834
835 public static final String HEALTH_SCRIPT_LOC = "hbase.node.health.script.location";
836 public static final String HEALTH_SCRIPT_TIMEOUT = "hbase.node.health.script.timeout";
837 public static final String HEALTH_CHORE_WAKE_FREQ =
838 "hbase.node.health.script.frequency";
839 public static final long DEFAULT_HEALTH_SCRIPT_TIMEOUT = 60000;
840
841
842
843 public static final String HEALTH_FAILURE_THRESHOLD =
844 "hbase.node.health.failure.threshold";
845 public static final int DEFAULT_HEALTH_FAILURE_THRESHOLD = 3;
846
847
848
849
850
851
852
853 public static final String STATUS_MULTICAST_ADDRESS = "hbase.status.multicast.address.ip";
854 public static final String DEFAULT_STATUS_MULTICAST_ADDRESS = "226.1.1.3";
855
856
857
858
859 public static final String STATUS_MULTICAST_PORT = "hbase.status.multicast.port";
860 public static final int DEFAULT_STATUS_MULTICAST_PORT = 60100;
861
862
863
864 private HConstants() {
865
866 }
867 }