> To further complicate matters, we may have similar incompatibilities
> between Hadoop 3.0 and 3.1, as I have seen similar errors when building
> Phoenix with Hadoop 3.1

This is unfortunate. Anyone know of Hadoop releasing plans for 3.0.x?
Perhaps you can ignore it and go straight to 3.1.x. And propose on dev@hbase
that future releases attempt publishing Hadoop 3 artifacts, with
appropriate Maven classifier or some other way to discriminate, built
against 3.1.



On Sun, Mar 7, 2021 at 11:37 PM Istvan Toth <[email protected]>
wrote:

> The Phoenix server JARs should not have any HBase or Hadoop classes shaded
> into them, and should rely on the ones on the HBase classpath.
> We've fixed that before the 5.1 release, and if any have crept back, then
> it's a bug that should be fixed.
>
> So it's possible that a phoenix-server JAR compiled for Hadoop3 will work
> on a Hadoop2 deployment and vice versa.
> (Anyone who deploys HBase2 on a Hadoop 3 cluster will still need to
> recompile HBase, but that's outside Phoenix's scope)
>
> Phoenix-client is self-contained, and will clash with any standalone
> HBase/Hadoop libraries anyway, so it's not really an issue there.
>
> However, without Hadoop3 specific official binaries, both deploying HBase
> on Hadoop3, and running the Phoenix test suite will require recompiling
> HBase from source.
>
> To further complicate matters, we may have similar incompatibilities
> between Hadoop 3.0 and 3.1, as I have seen similar errors when building
> Phoenix with Hadoop 3.1
> against an HBase built for Hadoop 3.0 (I did not save the error, or opened
> an HBase ticket for it at the time, unfortunately, only noted it in
> PHOENIX-6333)
>
> Istvan
>
>
> On Sat, Mar 6, 2021 at 6:36 PM Andrew Purtell <[email protected]>
> wrote:
>
> > Because the Async WAL module will not link with Hadoop 3 jars if it has
> > been compiled for Hadoop 2, Phoenix builds that download the Hadoop 3 and
> > HBase 2 jars from public repositories will not work. Tests cannot run
> > during the Maven verify phase because the minicluster will terminate with
> > linkage errors. To work around this Phoenix build instructions tell the
> > user to recompile HBase for Hadoop 3 and install it into the local Maven
> > cache first.
> >
> > To the extent Hadoop and HBase classes expecting to link with Hadoop 3
> are
> > incorporated unshaded into the Phoenix server jar there is also risk of
> > real runtime problems in a deployment into a server classpath expecting
> and
> > including Hadoop 2.
> >
> > Publishing artifacts built against Hadoop 3 would be a solution but there
> > are a couple of risks. The first is the time and complexity of the
> release
> > candidate build and publish process will double. The second is Maven
> > classifiers somehow are not up to the task of distinguishing between
> > default and Hadoop 3 profile artifacts. The latter would be something we
> > can determine right away. The former would be potentially be a problem
> > every time an RM attempts a release. A nightly build for Hadoop 3 with
> > people actually paying attention and fixing failures there would
> mitigate.
> >
> >
> > > On Mar 5, 2021, at 5:37 AM, 张铎 <[email protected]> wrote:
> > >
> > > The reason why we only publish artifacts compiled with hadoop 2 for
> > HBase
> > > is that, you can use these artifacts to run HBase against a 3.x HDFS
> > > cluster, no problem, you do not need to replace the hadoop jars in
> HBase
> > to
> > > hadoop 3, as we will not make use any new features at client side...
> > >
> > > I'm not sure the usage of phoenix, if it is necessary, I think we could
> > try
> > > to publish extra artifacts which are compiled against hadoop 3.x.
> > >
> > > Thanks.
> > >
> > > Istvan Toth <[email protected]> 于2021年3月5日周五 上午1:40写道:
> > >
> > >> Hi!
> > >> Opened https://issues.apache.org/jira/browse/PHOENIX-6404 to track
> > this.
> > >> Istvan
> > >>> On Wed, Mar 3, 2021 at 11:34 PM Geoffrey Jacoby <[email protected]>
> > >>> wrote:
> > >>> If the effort to support Hadoop 2 in Phoenix 5 isn't prohibitive, it
> > >> would
> > >>> be a huge help if we could do that. A couple different reasons:
> > >>> 1. Ease of development. The workaround described in BUILDING.md adds
> > >> extra
> > >>> friction to getting an environment setup, and it has to be redone for
> > >> each
> > >>> patch release of HBase an engineer needs to work with. It's confusing
> > for
> > >>> both new contributors and experienced ones who don't usually work
> with
> > >> 5.x
> > >>> or haven't lately.
> > >>> 2. Ease of upgrade. At my dayjob, we try to avoid upgrading
> > combinations
> > >> of
> > >>> Hadoop, HBase, and/or Phoenix at the same time to make upgrade
> testing
> > >> and
> > >>> debugging simpler. HBase 2.x and Phoenix 5.x have to be done in
> > lockstep,
> > >>> and there's no avoiding that. But since HBase 1.x doesn't support
> > Hadoop
> > >> 3,
> > >>> and Phoenix 5 doesn't support HBase 1.x or Hadoop 2, that means that
> an
> > >>> upgrade from any Phoenix 4 to any Phoenix 5 requires upgrading
> Hadoop,
> > >>> HBase and Phoenix to new major versions simultaneously. It would be
> > >> really
> > >>> nice to do HBase / Phoenix first, and then Hadoop later.
> > >>> Geoffrey
> > >>> On Wed, Mar 3, 2021 at 12:55 AM Istvan Toth
> <[email protected]
> > >
> > >>> wrote:
> > >>>> Hi!
> > >>>> For the first part of your question: Yes, you are correct.
> > >>>> I think that there is no inherent technical issue that would make it
> > >>>> impossible to support Hbase 2 on Hadoop 2 for Phoenix.
> > >>>> While this happened before my time, I guess that supporting Hadoop 3
> > >> only
> > >>>> was a decision that partly stemmed from the then current Phoenix
> maven
> > >>>> setup,
> > >>>> which wasn't equipped to support multiple profiles (see the multiple
> > >>>> branches for the HBase 1.x versions), and partly because this was
> the
> > >>>> configuration that
> > >>>> the implementers (Ankit, Josh, Rajeshbabu, Sergey) were interested
> in.
> > >>>> I don't know how much work and additional complexity it would take
> to
> > >> add
> > >>>> Hadoop2 support for master.
> > >>>> My guess is that it would need some major changes on the maven side
> > for
> > >>>> building, packaging, testing, and docs,
> > >>>> but probably little in the way of Java code changes.
> > >>>> It would also make providing binaries for Phoenix, connectors and
> PQS
> > >>> even
> > >>>> more hairy than now.
> > >>>> If anyone has more historical context, or a better idea of what it
> > >> would
> > >>>> take to do this, please let us know!
> > >>>> Istvan
> > >>>> On Tue, Mar 2, 2021 at 7:00 PM Viraj Jasani <[email protected]>
> > >> wrote:
> > >>>>> Hi,
> > >>>>>> However, up to now, we could use these artifacts with Hadoop 3.0
> > >> and
> > >>>> they
> > >>>>>> worked. (Or we just didn't hit the incompatibilities in our test
> > >>>> suite.)
> > >>>>> I have a question reg Phoenix 5.x supporting Hadoop 3 only.
> > >>>>> I believe this means Phoenix 5.x cannot work with HBase 2.x that
> > >>>>> is compiled with Hadoop 2.x (HBase 2.x will have Hadoop 2
> > >>>>> jars in classpath whereas Phoenix 5.x requires Hadoop 3 jars).
> > >>>>> Is this correct?
> > >>>>> If this is correct, shall we not support Hadoop 2 because HBase 2
> > >>>>> still has default Hadoop profile: 2.0? Moreover, what is the root
> > >>>>> cause behind Phoenix 5.x only supporting Hadoop 3.x?
> > >>>>> As per the compatibility guidelines [1], HBase 2.3 is fully
> > >> compatible
> > >>>>> with Hadoop 2.10.x.
> > >>>>> Apologies for these questions might be repeated ones but
> > >>>>> somehow I still could not trace back the root cause.
> > >>>>> 1. https://hbase.apache.org/book.html#basic.prerequisites
> > >>>>> On 2020/07/07 08:39:23, Istvan Toth <[email protected]> wrote:
> > >>>>>> Hi!
> > >>>>>> (https://issues.apache.org/jira/browse/PHOENIX-5993 is open for
> > >>> this,
> > >>>>> but I
> > >>>>>> am repeating it here for greater visibility)
> > >>>>>> The HBase artifacts downloadable from maven central are built with
> > >>>> Hadoop
> > >>>>>> 2.x
> > >>>>>> However, up to now, we could use these artifacts with Hadoop 3.0
> > >> and
> > >>>> they
> > >>>>>> worked. (Or we just didn't hit the incompatibilities in our test
> > >>>> suite.)
> > >>>>>> This seems to have changed with 2.2.5, as the public maven
> artifact
> > >>>>> doesn't
> > >>>>>> work with Hadoop 3.0.3 or 3.1.2 .
> > >>>>>> This is a known issue in HBase, and documented, but this means
> that
> > >>>>>> Any client JAR we'd build with Hbase 2.2.5 would have the same
> > >>> problem.
> > >>>>>> We cannot run our tests with Hbase 2.2.5
> > >>>>>> HBase's suggested solution is to rebuild HBase with the Hadoop
> > >>> version
> > >>>>> used
> > >>>>>> in the cluster, and use that. This, however, doesn't fit into our
> > >>> test
> > >>>> or
> > >>>>>> distribution process.
> > >>>>>> I'm looking for your input on how to fix this.
> > >>>>>> The options I could think of are:
> > >>>>>> - Ask HBase to fix it for us (it doesn't seem to be a priority)
> > >>>>>> - HBase could publish artifacts for Hadoop3
> > >>>>>> - Or could try to stick the common subset of Hadoop APIs
> > >>>>>> - Re-publish the official HBase releases built with Hadoop 3 under
> > >>> the
> > >>>>>> org.apache.phoenix groupId
> > >>>>>> - Hack up our build system to rebuild HBase from source, and use
> > >> that
> > >>>> for
> > >>>>>> Phoenix
> > >>>>>> None of these are particularly compelling, but I expect that this
> > >>> will
> > >>>>> have
> > >>>>>> to be solved somehow if we want to keep up with future Hadoop
> > >>> releases.
> > >>>>>> Looking forward to hearing your ideas and opinion on this
> > >>>>>> Istvan
> > >>>> --
> > >>>> *István Tóth* | Staff Software Engineer
> > >>>> [email protected] <https://www.cloudera.com>
> > >>>> [image: Cloudera] <https://www.cloudera.com/>
> > >>>> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
> > >>>> Cloudera on Facebook] <https://www.facebook.com/cloudera> [image:
> > >>> Cloudera
> > >>>> on LinkedIn] <https://www.linkedin.com/company/cloudera>
> > >>>> <https://www.cloudera.com/>
> > >>>> ------------------------------
> >
>
>
> --
> *István Tóth* | Staff Software Engineer
> [email protected] <https://www.cloudera.com>
> [image: Cloudera] <https://www.cloudera.com/>
> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
> Cloudera on Facebook] <https://www.facebook.com/cloudera> [image: Cloudera
> on LinkedIn] <https://www.linkedin.com/company/cloudera>
> <https://www.cloudera.com/>
> ------------------------------
>


-- 
Best regards,
Andrew

Words like orphans lost among the crosstalk, meaning torn from truth's
decrepit hands
   - A23, Crosstalk

Reply via email to