Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-6333

Hbase versions older than 2.4.0 are incompatible with Hadoop 3.1.4



    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 5.1.0
    • 5.1.0
    • core
    • None


      In PHOENIX-6326 I've upgraded Hadoop to 3.1.4 to solve a test failure caused by older Jetty versions.
      It turns out that only HBase 2.4 is compatible with the new Jetty in 3.1.4, (it uses a shaded jetty), but earlier versions are not.
      Unfortunately, this happened right after we swicthed Yetus to to use Hbase 2.4, so the procommit checks didn't catch this.

      Technically, neither the Phoenix client or server runtime artifacts are affected by this, as the server doesn't include HBase, and the client doesn' use jetty.

      Considering that any pre-2.4.0 HBase version is incompatible with Hadoop 3.1.4, I think that the best option to use Hadoop 3.1.3 in those profiles.
      As any pre-2.4.0 HBase is incompatible (at least on ther server side) with the problematic Java releases,
      we are not really losing anything by not supporting building releases with this profiles in Phoenix.

      Furthermore, it turns out that even minor hadoop releases are not ABI compatible.
      Rebuilding HBase 2.1 with hadoop.profile=3.0, which uses Hadoop 3.0.3, and then building Phoenix with Hadoop 3.1.3 will result in the usual Class<->Interface errors.

      While building Hbase 2.1 with hadoop.profile=3.0 hadoop.version=3.1.3 seems to resolve this, I think that sticiking with same Hadoop minor version that HBase defaults to in each profile will be simpler, and more likely to be compatible with user environments.


        Issue Links



              stoty Istvan Toth
              stoty Istvan Toth
              0 Vote for this issue
              2 Start watching this issue