Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-14960

Fallback to using default RPCControllerFactory if class cannot be loaded

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.2.0, 1.3.0, 0.98.17, 2.0.0
    • None
    • None
    • Reviewed
    • If the configured RPC controller factory (via hbase.rpc.controllerfactory.class) cannot be found in the classpath or loaded, we fall back to using the default RPC controller factory in HBase.

    Description

      In Phoenix + HBase clusters, the hbase-site.xml configuration will point to a custom rpc controller factory which is a Phoenix-specific one to configure the priorities for index and system catalog table.

      However, sometimes these Phoenix-enabled clusters are used from pure-HBase client applications resulting in ClassNotFoundExceptions in application code or MapReduce jobs. Since hbase configuration is shared between Phoenix-clients and HBase clients, having different configurations at the client side is hard.

      We can instead try to load up the RPCControllerFactory from conf, and if not found, fallback to the default one (in case this is a pure HBase client). In case Phoenix is already in the classpath, it will work as usual.

      This does not affect the rpc scheduler factory since it is only used at the server side.

      Attachments

        1. hbase-14960_v1.patch
          4 kB
          Enis Soztutar
        2. hbase-14960_v2.patch
          4 kB
          Enis Soztutar
        3. hbase-14960_v3.patch
          4 kB
          Enis Soztutar
        4. hbase-14960_v4.patch
          5 kB
          Enis Soztutar
        5. HBASE-14960-0.98.patch
          5 kB
          Andrew Kyle Purtell

        Activity

          People

            enis Enis Soztutar
            enis Enis Soztutar
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: