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