Maybe we could try to see if we could make Async WAL work with both hadoop
2 and hadoop 3.

But please do not rely on me, I'm not sure if I can make this done soon.

Thanks.

Andrew Purtell <[email protected]> 于2021年3月7日周日 上午1:36写道:

> 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/>
> >>>> ------------------------------
>

Reply via email to