Commit Graph

54 Commits

Author SHA1 Message Date
zhangduo 3283bc7c91 HBASE-16835 Revisit the zookeeper usage at client side 2016-10-28 13:27:41 +08:00
stack 95c1dc93fb HBASE-15638 Shade protobuf
Which includes

    HBASE-16742 Add chapter for devs on how we do protobufs going forward

    HBASE-16741 Amend the generate protobufs out-of-band build step
    to include shade, pulling in protobuf source and a hook for patching protobuf

    Removed ByteStringer from hbase-protocol-shaded. Use the protobuf-3.1.0
    trick directly instead. Makes stuff cleaner. All under 'shaded' dir is
    now generated.

    HBASE-16567 Upgrade to protobuf-3.1.x
    Regenerate all protos in this module with protoc3.
    Redo ByteStringer to use new pb3.1.0 unsafebytesutil
    instead of HBaseZeroCopyByteString

    HBASE-16264 Figure how to deal with endpoints and shaded pb Shade our protobufs.
    Do it in a manner that makes it so we can still have in our API references to
    com.google.protobuf (and in REST). The c.g.p in API is for Coprocessor Endpoints (CPEP)

            This patch is Tactic #4 from Shading Doc attached to the referenced issue.
            Figuring an appoach took a while because we have Coprocessor Endpoints
            mixed in with the core of HBase that are tough to untangle (FIX).

            Tactic #4 (the fourth attempt at addressing this issue) is COPY all but
            the CPEP .proto files currently in hbase-protocol to a new module named
            hbase-protocol-shaded. Generate .protos again in the new location and
            then relocate/shade the generated files. Let CPEPs keep on with the
            old references at com.google.protobuf.* and
            org.apache.hadoop.hbase.protobuf.* but change the hbase core so all
            instead refer to the relocated files in their new location at
            org.apache.hadoop.hbase.shaded.com.google.protobuf.*.

            Let the new module also shade protobufs themselves and change hbase
            core to pick up this shaded protobuf rather than directly reference
            com.google.protobuf.

            This approach allows us to explicitly refer to either the shaded or
            non-shaded version of a protobuf class in any particular context (though
            usually context dictates one or the other). Core runs on shaded protobuf.
            CPEPs continue to use whatever is on the classpath with
            com.google.protobuf.* which is pb2.5.0 for the near future at least.

            See above cited doc for follow-ons and downsides. In short, IDEs will complain
            about not being able to find the shaded protobufs since shading happens at package
            time; will fix by checking in all generated classes and relocated protobuf in
            a follow-on. Also, CPEPs currently suffer an extra-copy as marshalled from
            non-shaded to shaded. To fix. Finally, our .protos are duplicated; once
            shaded, and once not. Pain, but how else to reveal our protos to CPEPs or
            C++ client that wants to talk with HBase AND shade protobuf.

            Details:

            Add a new hbase-protocol-shaded module. It is a copy of hbase-protocol
    i       with all relocated offset from o.a.h.h. to o.a.h.h.shaded. The new module
            also includes the relocated pb. It does not include CPEPs. They stay in
            their old location.

            Add another module hbase-endpoint which has in it all the endpoints
            that ship as part of hbase -- at least the ones that are not
            entangled with core such as AccessControl and Auth. Move all protos
            for these CPEPs here as well as their unit tests (mostly moving a
            bunch of stuff out of hbase-server module)

            Much of the change looks like this:

                 -import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
                 -import org.apache.hadoop.hbase.protobuf.generated.ClusterIdProtos;
                 +import org.apache.hadoop.hbase.protobuf.shaded.ProtobufUtil;
                 +import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterIdProtos;

            In HTable and in HBaseAdmin, regularize the way Callables are used and also hide
            protobuf usage as much as possible moving it up into Callable super classes or out
            to utility classes. Still TODO is adding in of retries, etc., but can wait on
            procedure which will redo all this.

            Also in HTable and HBaseAdmin as well as in HRegionServer and Server, be explicit
            when using non-shaded protobuf. Do the full-path so it is clear. This is around
            endpoint coprocessors registration of services and execution of CPEP methods.

            Shrunk ProtobufUtil by moving methods used by one CPEP only back to the CPEP either
            into Client class or as new Util class; e.g. AccessControlUtil.

            There are actually two versions of ProtobufUtil now; a shaded one and a subset
            that is used by CPEPs doing non-shaded work.

            Made it so hbase-common no longer depends on hbase-protocol (with Matteo's help)

            R*Converter classes got moved down under shaded package -- they are for internal
            use only. There are no non-shaded versions of these classes.

            D hbase-client/src/main/java/org/apache/hadoop/hbase/client/AbstractRegionServerCallable
            D RetryingCallableBase
             Not used anymore and we have too many tiers of Callables so removed/cleaned-up.

            A ClientServicecallable
             Had to add this one. RegionServerCallable was made generic so it could be used
             for a few Interfaces (Client and Admin). Then added ClientServiceCallable to
             implement RegionServerCallable with the Client Interface.
2016-10-03 21:37:32 -07:00
Jonathan M Hsieh c9d0d11e18 HBASE-12088 Addendum - fix spacing 2016-09-21 20:59:42 -07:00
Jonathan M Hsieh a90d433a2c HBASE-12088 Remove unused hadoop-1.0, hadoop-1.1 profiles from non-root poms 2016-09-21 20:45:03 -07:00
Sean Busbey 60b79e2daa HBASE-16321 ensure no findbugs-jsr305
Signed-off-by: Esteban Gutierrez <esteban@apache.org>
2016-08-05 10:16:29 -05:00
Stevo Slavić 544dc1e558 HBASE-16355 Invalid hbase-common test-jar dependency scope
hbase-client has hbase-common test-jar as dependency in compile scope, while it should be test scope instead.
This patch fixes the bug.

closes #12

Signed-off-by: Sean Busbey <busbey@apache.org>
2016-08-04 01:17:51 -05:00
Josh Elser dfd8a31a13 HBASE-15221 Reload the cache on re-tried puts in HTableMultiplexer and adds a close() method to HTableMultiplexer
When a Put fails due to a NotServingRegionException, the cached location
of that Region is never cleared. Thus, subsequent calls to resubmit
the Put will fail in the same way as the original, never determining
the new location of the Region.

If the Connection is not closed by the user before the Multiplexer
is discarded, it will leak resources and could cause resource
issues.

Signed-off-by: Sean Busbey <busbey@cloudera.com>
2016-02-08 00:04:28 -06:00
Mikhail Antonov abe30b52a8 HBASE-14534 Bump yammer/coda/dropwizard metrics dependency version 2015-12-15 12:11:27 -08:00
Nick Dimiduk 7e30436e3f HBASE-12911 Client-side metrics 2015-10-07 17:01:56 -07:00
Elliott Clark 38b94709ee HBASE-14208 Remove yarn dependencies on -common and -client 2015-08-11 13:00:13 -07:00
Nick Dimiduk e4106b4c4a Revert "HBASE-12911 Client-side metrics"
This reverts commit 06989fd1f9.
2015-08-10 17:13:09 -07:00
Nick Dimiduk 06989fd1f9 HBASE-12911 Client-side metrics
First pass. Plumbs up metrics for each connection instance. Exposes
static information about those connections (zk quorum and root node,
cluster id, user). Exposes basic thread pool utilization gauges for
"meta lookup" and "batch" pools.
2015-08-10 16:48:48 -07:00
Sean Busbey 1b0b67fb7c HBASE-14085 Update LICENSE and NOTICE files.
* corrects license/notice for source distribution
* adds inception year to correct copyright in generated NOTICE files for jars
* updates project names in poms to use "Apache HBase" instead of "HBase" so jar NOTICE files will be correct
* uses append-resources to include supplemental info on jars with 3rd party works in source
* adds an hbase specific resource bundle for jars that include 3rd party works for binaries
** uses supplemental-model to fill in license gaps
** uses the above and a shade plugin transformation to build proper files for shaded jars.
** uses the above and the assembly plugin to build the proper files for bin assembly
* adds a NOTICE item for things copied out of Hadoop (TODO legal-discuss)
2015-08-04 17:16:56 -05:00
Gábor Lipták 5826bf2a7c HBASE-13963 Do not leak jdk.tools dependency from hbase-annotations
Signed-off-by: Sean Busbey <busbey@apache.org>
2015-06-26 08:48:02 -05:00
Elliott Clark 55a5a3be33 HBASE-13364 Make error prone off by default 2015-03-30 16:03:53 -07:00
Josh Elser 72855c584e HBASE-13236 Add addt'l lifecycle-mapping executions.
Adds a number of lifecycle-mapping entries which
prevent errors from showing up in Eclipse on a fresh
import of HBase. For plugins defined in the top-level
pom, the mapping is added there; otherwise, the mapping
is pushed down to the child pom.

Signed-off-by: Sean Busbey <busbey@apache.org>
2015-03-13 22:35:52 -05:00
Nick Dimiduk 9824eb7840 HBASE-12810 Update to htrace-incubating 2015-01-22 14:28:20 -08:00
Sean Busbey 418ea93774 HBASE-12898 ensure direct dependencies are declared. 2015-01-22 14:33:25 -06:00
Esteban Gutierrez b2eea8cac6 HBASE-12695 JDK 1.8 compilation broken
Signed-off-by: stack <stack@apache.org>
2014-12-29 11:02:04 -08:00
stack b004e4ff5b HBASE-11412 Minimize a number of hbase-client transitive dependencies (Sergey Beryozkin) 2014-12-19 07:55:53 -08:00
Enis Soztutar 83e4bfaf73 HBASE-11412 Minimize a number of hbase-client transitive dependencies (Sergey Beryozkin) 2014-12-17 21:53:18 -08:00
Andrew Purtell 6a042c381a Revert "HBASE-5162 Basic client pushback mechanism (Jesse Yates); ADDENDUM"
This reverts commit f7154e1ac9.
2014-12-16 22:14:50 -08:00
stack f7154e1ac9 HBASE-5162 Basic client pushback mechanism (Jesse Yates); ADDENDUM 2014-12-16 21:09:52 -08:00
Andrew Purtell 70a312e53f HBASE-11912 Catch some bad practices at compile time with error-prone 2014-10-27 09:29:23 -07:00
Andrew Purtell ff5bc351b2 Revert "HBASE-11912 Catch some bad practices at compile time with error-prone"
This reverts commit 7ed0260eff.
2014-10-25 08:33:43 -07:00
Andrew Purtell 7ed0260eff HBASE-11912 Catch some bad practices at compile time with error-prone 2014-10-24 18:15:12 -07:00
Andrew Purtell 3557a32352 HBASE-12106 Move test annotations to test artifact (Enis Soztutar) 2014-10-06 23:16:22 -07:00
Andrew Purtell d8a7b67d79 HBASE-11907 Use the joni byte[] regex engine in place of j.u.regex 2014-10-02 23:06:32 -07:00
Elliott Clark a5bd931682 HBASE-12059 Create hbase-annotations module 2014-09-23 16:44:14 -07:00
Enis Soztutar 92c52a727a Updated version in master to 2.0.0-SNAPSHOT after 'branch-1' is created for 1.x line of releases 2014-06-30 20:26:47 -07:00
nkeywal b6646596c6 HBASE-10573 Use Netty 4
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1596192 13f79535-47bb-0310-9956-ffa450edef68
2014-05-20 10:57:11 +00:00
Michael Stack b2ef1ce01c HBASE-10886 add htrace-zipkin to the runtime dependencies again -- REVERT
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1584935 13f79535-47bb-0310-9956-ffa450edef68
2014-04-04 23:19:35 +00:00
Michael Stack 62908378bc HBASE-10886 add htrace-zipkin to the runtime dependencies again (Masatake Iwasaki)
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1584455 13f79535-47bb-0310-9956-ffa450edef68
2014-04-03 23:04:10 +00:00
Michael Stack c4610ecab2 HBASE-10746 Bump the version of HTrace to 3.0
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1580076 13f79535-47bb-0310-9956-ffa450edef68
2014-03-21 22:46:03 +00:00
Andrew Kyle Purtell 5748f08ea0 HBASE-10073. Revert HBASE-9718 (Add a test scope dependency on org.slf4j:slf4j-api to hbase-client)
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1548390 13f79535-47bb-0310-9956-ffa450edef68
2013-12-06 07:40:59 +00:00
Michael Stack 57b8613688 HBASE_9955 Make hadoop2 the default and deprecate hadoop1; RETRY
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1548374 13f79535-47bb-0310-9956-ffa450edef68
2013-12-06 02:42:20 +00:00
Andrew Kyle Purtell f8139d1bf5 Update version in POMs to 0.99.0-SNAPSHOT after branching for release 0.98.0
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1547743 13f79535-47bb-0310-9956-ffa450edef68
2013-12-04 09:31:02 +00:00
Andrew Kyle Purtell a20b79f278 HBASE-9718. Add a test scope dependency on org.slf4j:slf4j-api to hbase-client
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1546892 13f79535-47bb-0310-9956-ffa450edef68
2013-12-02 04:30:32 +00:00
jyates 22b660dda4 HBASE-9221: Provide interface for getting a User in the client: ADDENDUM
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1536944 13f79535-47bb-0310-9956-ffa450edef68
2013-10-30 00:20:29 +00:00
jyates e5e5dac9a7 HBASE-9221: Provide interface for getting a User in the client
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1536937 13f79535-47bb-0310-9956-ffa450edef68
2013-10-30 00:02:52 +00:00
nkeywal 21796347aa HBASE-9633 Partial reverse of HBASE-9533
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1525648 13f79535-47bb-0310-9956-ffa450edef68
2013-09-23 16:55:09 +00:00
Michael Stack 4e600b8e0e HBASE-9533 List of dependency jars for MR jobs is hard-coded and does not include netty, breaking MRv1 jobs
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1524894 13f79535-47bb-0310-9956-ffa450edef68
2013-09-20 03:39:56 +00:00
nkeywal 63a3155fbb HBASE-9557 strange dependencies for hbase-client
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1524095 13f79535-47bb-0310-9956-ffa450edef68
2013-09-17 15:41:04 +00:00
eclark 5c2a90aa28 HBASE-9121 Update HTrace to 2.00 and add new example usage.
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1514091 13f79535-47bb-0310-9956-ffa450edef68
2013-08-14 23:20:51 +00:00
Michael Stack 34c8e0ab16 HBASE-8224 Publish hbase build against h1 and h2 adding '-hadoop1' or '-hadoop2' to version string
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1509813 13f79535-47bb-0310-9956-ffa450edef68
2013-08-02 19:01:34 +00:00
Michael Stack da3e3046ad HBASE-8917 Minor cleanup and fixes for POM
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1501883 13f79535-47bb-0310-9956-ffa450edef68
2013-07-10 17:59:55 +00:00
Michael Stack 00f7bb46c5 HBASE-8187 trunk/0.95 tarball packaging
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1462606 13f79535-47bb-0310-9956-ffa450edef68
2013-03-29 18:49:42 +00:00
nkeywal 17e604efbf HBASE-7590 Add a costless notifications mechanism from master to regionservers & clients
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1458184 13f79535-47bb-0310-9956-ffa450edef68
2013-03-19 09:24:01 +00:00
nkeywal 62d1ad5fde HBASE-7968 Packaging of Trunk and 0.95 does not create the dependent jars in the lib folder
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1452261 13f79535-47bb-0310-9956-ffa450edef68
2013-03-04 11:30:49 +00:00
Zhihong Yu ff0bc7c5ea HBASE-7936 Undo prefix-tree module as dependency for mapreduce and for DataBlockEncoding, addendum (Ted Yu)
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1451759 13f79535-47bb-0310-9956-ffa450edef68
2013-03-01 23:03:32 +00:00