You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ve...@apache.org on 2013/08/13 20:18:30 UTC

git commit: SQOOP-1172: Make Sqoop compatible with HBase 0.95+

Updated Branches:
  refs/heads/trunk e65d9c798 -> a9089430e


SQOOP-1172: Make Sqoop compatible with HBase 0.95+

(Jarek Jarcec Cecho via Venkat Ranganathan)


Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/a9089430
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/a9089430
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/a9089430

Branch: refs/heads/trunk
Commit: a9089430e41abafdbd460009ad695f29613787fd
Parents: e65d9c7
Author: Venkat Ranganathan <ve...@hortonworks.com>
Authored: Tue Aug 13 10:51:00 2013 -0700
Committer: Venkat Ranganathan <ve...@hortonworks.com>
Committed: Tue Aug 13 10:51:00 2013 -0700

----------------------------------------------------------------------
 build.xml | 47 +++++++++++++++++++++++++++++----
 ivy.xml   | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 118 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/a9089430/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 1a21288..39c6337 100644
--- a/build.xml
+++ b/build.xml
@@ -43,25 +43,57 @@
     </else>
   </if>
 
-	<!-- Set variables per target hadoop version -->
+  <!--
+    Set default HBase profile if not set
+
+    HBase 0.95 has broken one big monolithic archive into smaller pieces, so
+    that the build dependencies are different between HBase 0.94 and 0.95.
+    In addition, HBase since 0.95 is providing artifacts compatible with Hadoop 2.0.
+
+    For HBase 0.95 on Hadoop 2.0.0:
+    ant -Dhadoopversion=200 -Dhbaseprofile=95
+
+    For HBase 0.95 on Hadoop 1.0.0:
+    ant -Dhadoopversion=100 -Dhbaseprofile=95
+
+    For HBase 0.94 on Hadoop 1.0.0:
+    ant -Dhadoopversion=100
+
+    For HBase 0.94 on Hadoop 2.0.0:
+    - upstream HBase did not published Hadoop 2 compatible artifacts
+  -->
+  <if>
+    <isset property="hbaseprofile" />
+    <then>
+      <echo message="Use HBase profile ${hbaseprofile}" />
+    </then>
+    <else>
+      <echo message="Use HBase profile 0.94 by default" />
+      <property name="hbaseprofile" value="94" />
+    </else>
+  </if>
+
+	<!-- Set dependency versions per target Hadoop version -->
   <if>
     <equals arg1="${hadoopversion}" arg2="20" />
     <then>
       <property name="hadoop.version" value="0.20.2-cdh3u1" />
-      <property name="hbase.version" value="0.90.3-cdh3u1" />
+      <property name="hbase94.version" value="0.90.3-cdh3u1" />
       <property name="zookeeper.version" value="3.3.3-cdh3u1" />
       <property name="hadoop.version.full" value="0.20" />
       <property name="hcatalog.version" value="0.11.0" />
+      <property name="hbasecompatprofile" value="1" />
     </then>
 
     <elseif>
       <equals arg1="${hadoopversion}" arg2="23" />
       <then>
         <property name="hadoop.version" value="0.23.1" />
-        <property name="hbase.version" value="0.92.0" />
+        <property name="hbase94.version" value="0.92.0" />
         <property name="zookeeper.version" value="3.4.2" />
         <property name="hadoop.version.full" value="0.23" />
         <property name="hcatalog.version" value="0.11.0" />
+        <property name="hbasecompatprofile" value="2" />
       </then>
     </elseif>
 
@@ -69,10 +101,11 @@
       <equals arg1="${hadoopversion}" arg2="100" />
       <then>
         <property name="hadoop.version" value="1.0.0" />
-        <property name="hbase.version" value="0.92.0" />
+        <property name="hbase94.version" value="0.92.0" />
         <property name="zookeeper.version" value="3.4.2" />
         <property name="hadoop.version.full" value="1.0.0" />
         <property name="hcatalog.version" value="0.11.0" />
+        <property name="hbasecompatprofile" value="1" />
       </then>
     </elseif>
 
@@ -80,10 +113,11 @@
       <equals arg1="${hadoopversion}" arg2="200" />
       <then>
         <property name="hadoop.version" value="2.0.4-alpha" />
-        <property name="hbase.version" value="0.94.2" />
+        <property name="hbase94.version" value="0.94.2" />
         <property name="zookeeper.version" value="3.4.2" />
         <property name="hadoop.version.full" value="2.0.4-alpha" />
         <property name="hcatalog.version" value="0.11.0" />
+        <property name="hbasecompatprofile" value="2" />
       </then>
     </elseif>
 
@@ -92,6 +126,9 @@
     </else>
   </if>
 
+  <!-- Set dependency versions that are working with all Hadoop versions-->
+  <property name="hbase95.version" value="0.95.2-hadoop${hbasecompatprofile}-SNAPSHOT" />
+
   <!-- Load system-wide and project-wide default properties set by
        the user, to avoid needing to override with -D. -->
   <property file="${user.home}/build.properties" />

http://git-wip-us.apache.org/repos/asf/sqoop/blob/a9089430/ivy.xml
----------------------------------------------------------------------
diff --git a/ivy.xml b/ivy.xml
index 63fdc80..d7486e0 100644
--- a/ivy.xml
+++ b/ivy.xml
@@ -36,16 +36,19 @@ under the License.
     <conf name="common" visibility="private"
       extends="runtime"
       description="artifacts needed to compile/test the application"/>
-    <conf name="hbase" visibility="private" />
+    <conf name="hbase94" visibility="private" />
+    <conf name="hbase95" visibility="private" extends="hbasecompat${hbasecompatprofile}" />
+    <conf name="hbasecompat1" visibility="private" />
+    <conf name="hbasecompat2" visibility="private" />
     <conf name="hcatalog" visibility="private" />
     <conf name="hadoop23" visibility="private"
-      extends="common,runtime,hbase,hcatalog" />
+      extends="common,runtime,hbase${hbaseprofile},hcatalog" />
     <conf name="hadoop20" visibility="private"
-      extends="common,runtime,hbase,hcatalog" />
+      extends="common,runtime,hbase${hbaseprofile},hcatalog" />
     <conf name="hadoop100" visibility="private"
-      extends="common,runtime,hbase,hcatalog" />
+      extends="common,runtime,hbase${hbaseprofile},hcatalog" />
     <conf name="hadoop200" visibility="private"
-      extends="common,runtime,hbase,hcatalog" />
+      extends="common,runtime,hbase${hbaseprofile},hcatalog" />
 
     <conf name="test" visibility="private" extends="common,runtime"/>
     <conf name="hadoop23test" visibility="private" extends="test,hadoop23" />
@@ -164,8 +167,8 @@ under the License.
     <dependency org="commons-collections" name="commons-collections"
       rev="${commons-collections.version}" conf="releaseaudit->default"/>
 
-    <dependency org="org.apache.hbase" name="hbase"
-      rev="${hbase.version}" conf="hbase->default">
+    <!-- HBase 0.94 -->
+    <dependency org="org.apache.hbase" name="hbase" rev="${hbase94.version}" conf="hbase94->default">
       <artifact name="hbase" type="jar"/>
       <artifact name="hbase" type="test-jar" ext="jar" m:classifier="tests"/>
       <exclude org="com.sun.jersey" module="jersey-core"/>
@@ -177,6 +180,72 @@ under the License.
       <exclude org="com.cloudera.cdh" module="zookeeper-ant" />
     </dependency>
 
+    <!-- HBase 0.95 -->
+    <dependency org="org.apache.hbase" name="hbase-client" rev="${hbase95.version}" conf="hbase95->default">
+      <artifact name="hbase-client" type="jar"/>
+      <artifact name="hbase-client" type="test-jar" ext="jar" m:classifier="tests"/>
+      <exclude org="com.sun.jersey" module="jersey-core"/>
+      <exclude org="com.sun.jersey" module="jersey-json"/>
+      <exclude org="com.sun.jersey" module="jersey-server"/>
+      <exclude org="org.apache.thrift" module="thrift"/>
+      <exclude org="log4j" module="log4j"/>
+    </dependency>
+    <dependency org="org.apache.hbase" name="hbase-common" rev="${hbase95.version}" conf="hbase95->default">
+      <artifact name="hbase-common" type="jar"/>
+      <artifact name="hbase-common" type="test-jar" ext="jar" m:classifier="tests"/>
+      <exclude org="com.sun.jersey" module="jersey-core"/>
+      <exclude org="com.sun.jersey" module="jersey-json"/>
+      <exclude org="com.sun.jersey" module="jersey-server"/>
+      <exclude org="org.apache.thrift" module="thrift"/>
+      <exclude org="log4j" module="log4j"/>
+    </dependency>
+    <dependency org="org.apache.hbase" name="hbase-server" rev="${hbase95.version}" conf="hbase95->default">
+      <artifact name="hbase-server" type="jar"/>
+      <artifact name="hbase-server" type="test-jar" ext="jar" m:classifier="tests"/>
+      <exclude org="com.sun.jersey" module="jersey-core"/>
+      <exclude org="com.sun.jersey" module="jersey-json"/>
+      <exclude org="com.sun.jersey" module="jersey-server"/>
+      <exclude org="org.apache.thrift" module="thrift"/>
+      <exclude org="log4j" module="log4j"/>
+    </dependency>
+    <dependency org="org.apache.hbase" name="hbase-hadoop-compat" rev="${hbase95.version}" conf="hbase95->default">
+      <artifact name="hbase-hadoop-compat" type="jar"/>
+      <artifact name="hbase-hadoop-compat" type="test-jar" ext="jar" m:classifier="tests"/>
+      <exclude org="com.sun.jersey" module="jersey-core"/>
+      <exclude org="com.sun.jersey" module="jersey-json"/>
+      <exclude org="com.sun.jersey" module="jersey-server"/>
+      <exclude org="org.apache.thrift" module="thrift"/>
+      <exclude org="log4j" module="log4j"/>
+    </dependency>
+    <dependency org="org.apache.hbase" name="hbase-hadoop-compat" rev="${hbase95.version}" conf="hbase95->default">
+      <artifact name="hbase-hadoop-compat" type="jar"/>
+      <artifact name="hbase-hadoop-compat" type="test-jar" ext="jar" m:classifier="tests"/>
+      <exclude org="com.sun.jersey" module="jersey-core"/>
+      <exclude org="com.sun.jersey" module="jersey-json"/>
+      <exclude org="com.sun.jersey" module="jersey-server"/>
+      <exclude org="org.apache.thrift" module="thrift"/>
+      <exclude org="log4j" module="log4j"/>
+    </dependency>
+    <dependency org="org.apache.hbase" name="hbase-hadoop1-compat" rev="${hbase95.version}" conf="hbasecompat1->default">
+      <artifact name="hbase-hadoop1-compat" type="jar"/>
+      <artifact name="hbase-hadoop1-compat" type="test-jar" ext="jar" m:classifier="tests"/>
+      <exclude org="com.sun.jersey" module="jersey-core"/>
+      <exclude org="com.sun.jersey" module="jersey-json"/>
+      <exclude org="com.sun.jersey" module="jersey-server"/>
+      <exclude org="org.apache.thrift" module="thrift"/>
+      <exclude org="log4j" module="log4j"/>
+    </dependency>
+    <dependency org="org.apache.hbase" name="hbase-hadoop2-compat" rev="${hbase95.version}" conf="hbasecompat2->default">
+      <artifact name="hbase-hadoop2-compat" type="jar"/>
+      <artifact name="hbase-hadoop2-compat" type="test-jar" ext="jar" m:classifier="tests"/>
+      <exclude org="com.sun.jersey" module="jersey-core"/>
+      <exclude org="com.sun.jersey" module="jersey-json"/>
+      <exclude org="com.sun.jersey" module="jersey-server"/>
+      <exclude org="org.apache.thrift" module="thrift"/>
+      <exclude org="log4j" module="log4j"/>
+    </dependency>
+
+
     <dependency org="org.apache.hcatalog" name="hcatalog-core"
       rev="${hcatalog.version}" conf="hcatalog->default">
       <artifact name="hcatalog-core" type="jar"/>