Return-Path: X-Original-To: apmail-hbase-dev-archive@www.apache.org Delivered-To: apmail-hbase-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2868F17227 for ; Wed, 11 Mar 2015 22:29:13 +0000 (UTC) Received: (qmail 72752 invoked by uid 500); 11 Mar 2015 22:29:03 -0000 Delivered-To: apmail-hbase-dev-archive@hbase.apache.org Received: (qmail 72674 invoked by uid 500); 11 Mar 2015 22:29:03 -0000 Mailing-List: contact dev-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list dev@hbase.apache.org Received: (qmail 72663 invoked by uid 99); 11 Mar 2015 22:29:02 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Mar 2015 22:29:02 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of busbey@cloudera.com designates 209.85.216.176 as permitted sender) Received: from [209.85.216.176] (HELO mail-qc0-f176.google.com) (209.85.216.176) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Mar 2015 22:28:58 +0000 Received: by qcwb13 with SMTP id b13so14180564qcw.9 for ; Wed, 11 Mar 2015 15:26:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type; bh=bghinFO7nYgXQZlbWw0mqL0tIdV5btDh66CAR20KQ44=; b=j/0nHqeM3P8ePO2kMg7sFWJ8QQhHDP5Cqxf7irlykKXAKTkBdy/3R9UInHQIyBVtj/ dHqvWllq5axSLgNKGqyEV+tVdq9ZLEIKDSxD1V4XOXSOLrtOH+3+M2cLGgBUN9Dd38DD /XFOqX7aU4iMJGMYsFGNxjc8IGghwuV9UbyjfGvLJNbwlMsgJPwLBuOXAb9GVnBSrr4r sQs7Qv1jSS9u1YOh0p5m59QUzfJpJUvvU8x5R8S4yL1aRg7BB52kQ/TC7FlpvAQzMF9r mMJxsZfO62hjukzKYDvdv6sGSZ68xuaf8g6xvfqX7LXun+WPSL9auvEu01AZQPDs429W c5Sw== X-Gm-Message-State: ALoCoQk83+zaK4w45UUx076t8McCbZncYuzT0o9QEW8SaZoLJt80h92Xctr4XAHfNtAKNaecWF7R X-Received: by 10.140.148.201 with SMTP id 192mr23415205qhu.36.1426112782701; Wed, 11 Mar 2015 15:26:22 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.179.129 with HTTP; Wed, 11 Mar 2015 15:26:02 -0700 (PDT) In-Reply-To: References: From: Sean Busbey Date: Wed, 11 Mar 2015 17:26:02 -0500 Message-ID: Subject: Re: [DISCUSS] Dependency compatibility To: dev Content-Type: multipart/alternative; boundary=001a11357630d2ab0305110ac196 X-Virus-Checked: Checked by ClamAV on apache.org --001a11357630d2ab0305110ac196 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Wed, Mar 11, 2015 at 5:19 PM, Enis S=C3=B6ztutar wr= ote: > On Wed, Mar 11, 2015 at 3:07 PM, Sean Busbey wrote: > > > On Wed, Mar 11, 2015 at 4:49 PM, Enis S=C3=B6ztutar > wrote: > > > > > > > > > > It's worth noting that if users follow our ref guide (which says to > use > > > > "hadoop jar"), then jobs don't fail. It's only when they attempt to > > > launch > > > > jobs using "hbase com.example.MyDriver" that things fail. > > > > > > > > Additionally, if we stick to telling users that only the "hadoop ja= r" > > > > version is supported, we can rely on the application classpath > support > > > > built into Hadoop 2.6+ to make it so jobs built on us get our > > dependency > > > > version and not the ones from Hadoop as it changes. > > > > > > > > > > We have learned that the users do not read or follow documentation. A= nd > > it > > > is a regression > > > if launching job using hbase command does not work. > > > > > > > > > > > They do when things break. ;) An additional troubleshooting section tha= t > > shows the error and says "remember to use hadoop jar" would nicely help > > catch searchers. > > > > Furthermore, "hadoop jar" is how you're supposed to launch YARN apps. I= f > we > > say that doing things via the hbase command is acceptable, we're openin= g > > ourselves up to an expansion of what the hbase command has to do. (i.e. > > perhaps it should detect if the passed class is a YARN driver and then > use > > the hadoop jar command? or should it always pass through to the hadoop > jar > > command?) > > > > Traditionally, and in our documentation, HBase owned MR classes (CopyTabl= e, > Import, etc) are run > with the hbase script, not the hadoop script. It is a regression in that > sense still. Yes, there is a > workaround, but why we bother where we can fix this easily. > > All of our current ref guide examples use the "hadoop jar" command: http://hbase.apache.org/book.html#hbase.mapreduce.classpath http://hbase.apache.org/book.html#_bundled_hbase_mapreduce_jobs They only rely on the hbase command to get things that need to be added to hte hadop classpath. > > > > > > > > > > > > > > > > > > > > > > > > So, my proposal is: > > > > > - Commit HBASE-13149 to master and 1.1 > > > > > - Either change the dependency compat story for minor versions t= o > > > false, > > > > > or add a footnote saying that there may be exceptions because of > the > > > > > reasons listed above. > > > > > > > > > > > > > > > > > If we decide we need to do the jackson version bump, what about the > > > > possibility of moving the code in branch-1 to be version 2.0.0 (and > > > making > > > > master 3.0.0). We could start the release process once the changes > > Andrew > > > > needs for Phoenix are in place and get it out the door. > > > > > > > > > > I don't think this requires a major version bump. As I was mentioning > in > > > the other > > > thread, HBase is not upgraded too frequently in production. Again, we > do > > > not want > > > to inconvenience the user even further. > > > > > > > > > > > How would this inconvenience users further? Barring the change in versi= on > > numbers, it's the same upgrade they would be doing to move to what we'r= e > > currently calling HBase 1.1. Since version numbers under semver signal > what > > we understand about our changeset, it's just us acknowledging that we > broke > > some kind of compatibility. A release note that calls out the Jackson > > dependency as the cause for that compatibility breakage makes the > > evaluation easy. > > > > The problem is boils down to "major versions are cheap" kind of argument, > which have > been discussed in Hadoop context. I do not buy it, because a major versio= n > upgrade implies > (though do not have to be) a big change. I don't see why ever we would wa= nt > to bump > our major version, where the said library only bumped their minor version= . > Jackson could > have went with 2.0 for those changes between 1.8 and 1.9. Why would we wa= nt > to > promise more than what our dependencies promise? It is not realistic. > > But we _know_ that 1.8 -> 1.9 in jackson is not really a minor version in the semver sense. we _know_ it's a breaking change. Their release notes even call out breaking changes, so we know it isn't just a change in internals. --=20 Sean --001a11357630d2ab0305110ac196--