Merge pull request #117 from caskdata/fix/cdh5.7.0
TEPHRA-174 Added support for HBase version 1.2.0-cdh5.7.0
diff --git a/README.rst b/README.rst
index 6c041d5..076cc3b 100644
--- a/README.rst
+++ b/README.rst
@@ -103,19 +103,19 @@
+===============+===================+=========================================================+
| **HDFS** | Apache Hadoop | 2.0.2-alpha through 2.6.0 |
+ +-------------------+---------------------------------------------------------+
-| | CDH or HDP | (CDH) 5.0.0 through 5.4.4 or (HDP) 2.0, 2.1, 2.2 or 2.3 |
+| | CDH or HDP | (CDH) 5.0.0 through 5.7.0 or (HDP) 2.0, 2.1, 2.2 or 2.3 |
+ +-------------------+---------------------------------------------------------+
| | MapR | 4.1 (with MapR-FS) |
+---------------+-------------------+---------------------------------------------------------+
| **HBase** | Apache | 0.96.x, 0.98.x, 1.0.x, and 1.1.x |
+ +-------------------+---------------------------------------------------------+
-| | CDH or HDP | (CDH) 5.0.0 through 5.4.4 or (HDP) 2.0, 2.1, 2.2 or 2.3 |
+| | CDH or HDP | (CDH) 5.0.0 through 5.7.0 or (HDP) 2.0, 2.1, 2.2 or 2.3 |
+ +-------------------+---------------------------------------------------------+
| | MapR | 4.1 (with Apache HBase) |
+---------------+-------------------+---------------------------------------------------------+
| **Zookeeper** | Apache | Version 3.4.3 through 3.4.5 |
+ +-------------------+---------------------------------------------------------+
-| | CDH or HDP | (CDH) 5.0.0 through 5.4.4 or (HDP) 2.0, 2.1, 2.2 or 2.3 |
+| | CDH or HDP | (CDH) 5.0.0 through 5.7.0 or (HDP) 2.0, 2.1, 2.2 or 2.3 |
+ +-------------------+---------------------------------------------------------+
| | MapR | 4.1 |
+---------------+-------------------+---------------------------------------------------------+
@@ -144,12 +144,12 @@
<dependency>
<groupId>co.cask.tephra</groupId>
<artifactId>tephra-api</artifactId>
- <version>0.6.2</version>
+ <version>0.7.1</version>
</dependency>
<dependency>
<groupId>co.cask.tephra</groupId>
<artifactId>tephra-core</artifactId>
- <version>0.6.2</version>
+ <version>0.7.1</version>
</dependency>
Since the HBase APIs have changed between versions, you will need to select the
@@ -160,7 +160,7 @@
<dependency>
<groupId>co.cask.tephra</groupId>
<artifactId>tephra-hbase-compat-0.96</artifactId>
- <version>0.6.2</version>
+ <version>0.7.1</version>
</dependency>
For HBase 0.98.x::
@@ -168,7 +168,7 @@
<dependency>
<groupId>co.cask.tephra</groupId>
<artifactId>tephra-hbase-compat-0.98</artifactId>
- <version>0.6.2</version>
+ <version>0.7.1</version>
</dependency>
For HBase 1.0.x::
@@ -176,24 +176,24 @@
<dependency>
<groupId>co.cask.tephra</groupId>
<artifactId>tephra-hbase-compat-1.0</artifactId>
- <version>0.6.2</version>
+ <version>0.7.1</version>
</dependency>
-If you are running the CDH 5.4 version of HBase 1.0.x (this version contains API incompatibilities
+If you are running the CDH 5.4, 5.5, or 5.6 version of HBase 1.0.x (this version contains API incompatibilities
with Apache HBase 1.0.x)::
<dependency>
<groupId>co.cask.tephra</groupId>
<artifactId>tephra-hbase-compat-1.0-cdh</artifactId>
- <version>0.6.2</version>
+ <version>0.7.1</version>
</dependency>
-For HBase 1.1.x::
+For HBase 1.1.x or CDH 5.7 version of HBase 1.2.x::
<dependency>
<groupId>co.cask.tephra</groupId>
<artifactId>tephra-hbase-compat-1.1</artifactId>
- <version>0.6.2</version>
+ <version>0.7.1</version>
</dependency>
Deployment and Configuration
@@ -298,35 +298,35 @@
To configure the coprocessor on all HBase tables, add the following to ``hbase-site.xml``.
-For HBase 0.96::
+For HBase 0.96.x::
<property>
<name>hbase.coprocessor.region.classes</name>
<value>co.cask.tephra.hbase96.coprocessor.TransactionProcessor</value>
</property>
-For HBase 0.98::
+For HBase 0.98.x::
<property>
<name>hbase.coprocessor.region.classes</name>
<value>co.cask.tephra.hbase98.coprocessor.TransactionProcessor</value>
</property>
-For HBase 1.0::
+For HBase 1.0.x::
<property>
<name>hbase.coprocessor.region.classes</name>
<value>co.cask.tephra.hbase10.coprocessor.TransactionProcessor</value>
</property>
-For the CDH 5.4 version of HBase 1.0::
+For the CDH 5.4, 5.5, or 5.6 version of HBase 1.0.x::
<property>
<name>hbase.coprocessor.region.classes</name>
<value>co.cask.tephra.hbase10cdh.coprocessor.TransactionProcessor</value>
</property>
-For HBase 1.1::
+For HBase 1.1.x or CDH 5.7 version of HBase 1.2.x::
<property>
<name>hbase.coprocessor.region.classes</name>
diff --git a/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersion.java b/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersion.java
index 6db7c2a..44946e5 100644
--- a/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersion.java
+++ b/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersion.java
@@ -1,5 +1,5 @@
/*
- * Copyright © 2015 Cask Data, Inc.
+ * Copyright © 2015-2016 Cask Data, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
@@ -34,6 +34,7 @@
private static final String HBASE_98_VERSION = "0.98";
private static final String HBASE_10_VERSION = "1.0";
private static final String HBASE_11_VERSION = "1.1";
+ private static final String HBASE_12_VERSION = "1.2";
private static final String CDH_CLASSIFIER = "cdh";
private static final Logger LOG = LoggerFactory.getLogger(HBaseVersion.class);
@@ -48,6 +49,7 @@
HBASE_10("1.0"),
HBASE_10_CDH("1.0-cdh"),
HBASE_11("1.1"),
+ HBASE_12_CDH("1.2-cdh"),
UNKNOWN("unknown");
final String majorVersion;
@@ -83,6 +85,15 @@
}
} else if (versionString.startsWith(HBASE_11_VERSION)) {
currentVersion = Version.HBASE_11;
+ } else if (versionString.startsWith(HBASE_12_VERSION)) {
+ VersionNumber ver = VersionNumber.create(versionString);
+ if (ver.getClassifier() != null && ver.getClassifier().startsWith(CDH_CLASSIFIER)) {
+ currentVersion = Version.HBASE_12_CDH;
+ } else {
+ // CDH 5.7 comes with HBase version 1.2.0-CDH5.7.0. However currently there is no
+ // other hadoop distribution that uses HBase 1.2, so the version is set here to UNKNOWN.
+ currentVersion = Version.UNKNOWN;
+ }
} else {
currentVersion = Version.UNKNOWN;
}
diff --git a/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersionSpecificFactory.java b/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersionSpecificFactory.java
index c50c8cb..0079d4f 100644
--- a/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersionSpecificFactory.java
+++ b/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersionSpecificFactory.java
@@ -1,5 +1,5 @@
/*
- * Copyright © 2015 Cask Data, Inc.
+ * Copyright © 2015-2016 Cask Data, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
@@ -47,6 +47,7 @@
instance = createInstance(getHBase10CDHClassname());
break;
case HBASE_11:
+ case HBASE_12_CDH:
instance = createInstance(getHBase11Classname());
break;
case UNKNOWN:
diff --git a/tephra-core/src/test/java/co/cask/tephra/util/HBaseVersionTest.java b/tephra-core/src/test/java/co/cask/tephra/util/HBaseVersionTest.java
index d6969a8..6a4a1c6 100644
--- a/tephra-core/src/test/java/co/cask/tephra/util/HBaseVersionTest.java
+++ b/tephra-core/src/test/java/co/cask/tephra/util/HBaseVersionTest.java
@@ -76,6 +76,9 @@
} catch (ParseException pe) {
// expected
}
+
+ ver = HBaseVersion.VersionNumber.create("1.2.0-CDH5.7.0");
+ assertVersionNumber(ver, 1, 2, 0, "CDH5.7.0", false);
}
private void assertVersionNumber(HBaseVersion.VersionNumber version, Integer expectedMajor, Integer expectedMinor,