2022-05-01 10:52:40 -04:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2019-05-21 15:34:25 -04:00
|
|
|
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
2022-05-01 10:52:40 -04:00
|
|
|
<!--
|
2020-12-05 17:21:52 -05:00
|
|
|
/*
|
2012-05-26 01:56:04 -04:00
|
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
|
|
* or more contributor license agreements. See the NOTICE file
|
|
|
|
* distributed with this work for additional information
|
|
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
|
|
* to you under the Apache License, Version 2.0 (the
|
|
|
|
* "License"); you may not use this file except in compliance
|
|
|
|
* with the License. You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
2012-06-03 17:59:50 -04:00
|
|
|
-->
|
2012-05-26 01:56:04 -04:00
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
2022-05-01 10:52:40 -04:00
|
|
|
<artifactId>hbase-build-configuration</artifactId>
|
2022-10-13 12:11:37 -04:00
|
|
|
<version>2.5.2-SNAPSHOT</version>
|
2017-08-19 04:23:52 -04:00
|
|
|
<relativePath>../hbase-build-configuration</relativePath>
|
2012-05-26 01:56:04 -04:00
|
|
|
</parent>
|
|
|
|
<artifactId>hbase-server</artifactId>
|
2015-07-15 06:12:36 -04:00
|
|
|
<name>Apache HBase - Server</name>
|
2017-03-27 10:43:22 -04:00
|
|
|
<description>Server functionality for HBase</description>
|
2014-06-11 16:55:15 -04:00
|
|
|
<properties>
|
|
|
|
<test.build.webapps>target/test-classes/webapps</test.build.webapps>
|
2015-07-15 06:12:36 -04:00
|
|
|
<license.bundles.logo>true</license.bundles.logo>
|
|
|
|
<license.bundles.bootstrap>true</license.bundles.bootstrap>
|
|
|
|
<license.bundles.jquery>true</license.bundles.jquery>
|
HBASE-25896 Implement a Region Visualization on Master WebUI (#4228)
This is a demonstration of visualization of regions on the cluster. The visualization is a stacked
bar chart showing total storefile size per table per region server, with the x-axis being server
names, the y-axis being storfile size, and the bars stacked per table. The visualization is
generated entirely on the fly from within the browser, implemented using Vega Lite. So far, Vega
appears to handle rendering this visualization for a cluster of over 700 region servers with
approximately 300,000 regions.
Per [0], include an update to the top-level LICENSE.txt. Also update LICENSE files in all binary
distributions (i.e., jars), by way of LICENSE.vm. Vega uses a BSD 3-clause variant without
advertising clause, and as such is a "Category A" license, per [1].
No changes are made to the NOTICE files, as per the existing example of bundling the minified
JQuery, which is also a Category A license.
[0]: https://infra.apache.org/licensing-howto.html
[1]: https://www.apache.org/legal/resolved.html#category-a
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2022-03-15 16:01:57 -04:00
|
|
|
<license.bundles.vega>true</license.bundles.vega>
|
2014-06-11 16:55:15 -04:00
|
|
|
</properties>
|
2012-05-26 01:56:04 -04:00
|
|
|
<dependencies>
|
2017-07-05 15:06:29 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase.thirdparty</groupId>
|
|
|
|
<artifactId>hbase-shaded-protobuf</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase.thirdparty</groupId>
|
|
|
|
<artifactId>hbase-shaded-netty</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase.thirdparty</groupId>
|
|
|
|
<artifactId>hbase-shaded-miscellaneous</artifactId>
|
|
|
|
</dependency>
|
2012-05-30 19:51:44 -04:00
|
|
|
<!-- Intra-project dependencies -->
|
2020-05-13 05:59:21 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-logging</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2012-05-30 19:51:44 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-common</artifactId>
|
|
|
|
</dependency>
|
2022-02-09 09:22:31 -05:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-client</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2017-10-21 21:12:07 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-http</artifactId>
|
2019-08-21 10:06:05 -04:00
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>org.codehaus.jackson</groupId>
|
|
|
|
<artifactId>jackson-core-asl</artifactId>
|
|
|
|
</exclusion>
|
|
|
|
</exclusions>
|
2017-10-21 21:12:07 -04:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-http</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2017-08-31 11:03:22 -04:00
|
|
|
<dependency>
|
|
|
|
<!--Needed by the visiblity tags and acl CPEP things
|
|
|
|
in here in hbase-server (that should be out in hbase-endpoints
|
|
|
|
or integrated). -->
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-protocol</artifactId>
|
|
|
|
</dependency>
|
2012-11-20 18:26:00 -05:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
HBASE-14614 Procedure v2 - Core Assignment Manager (Matteo Bertozzi) Move to a new AssignmentManager, one that describes Assignment using a State Machine built on top of ProcedureV2 facility.
This doc. keeps state on where we are at w/ the new AM:
https://docs.google.com/document/d/1eVKa7FHdeoJ1-9o8yZcOTAQbv0u0bblBlCCzVSIn69g/edit#heading=h.vfdoxqut9lqn
Includes list of tests disabled by this patch with reasons why.
Based on patches from Matteos' repository and then fix up to get it all to pass cluster
tests, filling in some missing functionality, fix of findbugs, fixing bugs, etc..
including:
1. HBASE-14616 Procedure v2 - Replace the old AM with the new AM.
The basis comes from Matteo's repo here:
https://github.com/matteobertozzi/hbase/commit/689227fcbfe8e6588433dbcdabf4526e3d478b2e
Patch replaces old AM with the new under subpackage master.assignment.
Mostly just updating classes to use new AM -- import changes -- rather
than the old. It also removes old AM and supporting classes.
See below for more detail.
2. HBASE-14614 Procedure v2 - Core Assignment Manager (Matteo Bertozzi)
https://github.com/matteobertozzi/hbase/commit/3622cba4e331d2fc7bfc1932abb4c9cbf5802efa
Adds running of remote procedure. Adds batching of remote calls.
Adds support for assign/unassign in procedures. Adds version info
reporting in rpc. Adds start of an AMv2.
3. Reporting of remote RS version is from here:
https://github.com/matteobertozzi/hbase/commit/ddb4df3964e8298c88c0210e83493aa91ac0942d.patch
4. And remote dispatch of procedures is from:
https://github.com/matteobertozzi/hbase/commit/186b9e7c4dae61a79509a6c3aad7f80ec61345e5
5. The split merge patches from here are also melded in:
https://github.com/matteobertozzi/hbase/commit/9a3a95a2c2974842a4849d1ad867e70764e7f707
and https://github.com/matteobertozzi/hbase/commit/d6289307a02a777299f65238238a2a8af3253067
We add testing util for new AM and new sets of tests.
Does a bunch of fixup on logging so its possible to follow a procedures' narrative by grepping
procedure id. We spewed loads of log too on big transitions such as master fail; fixed.
Fix CatalogTracker. Make it use Procedures doing clean up of Region data on split/merge.
Without these changes, ITBLL was failing at larger scale (3-4hours 5B rows) because we were
splitting split Regions among other things (CJ would run but wasn't
taking lock on Regions so havoc).
Added a bunch of doc. on Procedure primitives.
Added new region-based state machine base class. Moved region-based
state machines on to it.
Found bugs in the way procedure locking was doing in a few of the
region-based Procedures. Having them all have same subclass helps here.
Added isSplittable and isMergeable to the Region Interface.
Master would split/merge even though the Regions still had
references. Fixed it so Master asks RegionServer if Region
is splittable.
Messing more w/ logging. Made all procedures log the same and report
the state the same; helps when logging is regular.
Rewrote TestCatalogTracker. Enabled TestMergeTableRegionProcedure.
Added more functionality to MockMasterServices so can use it doing
standalone testing of Procedures (made TestCatalogTracker use it
instead of its own version).
Add to MasterServices ability to wait on Master being up -- makes
it so can Mock Master and start to implement standalone split testing.
Start in on a Split region standalone test in TestAM.
Fix bug where a Split can fail because it comes in in the middle of
a Move (by holding lock for duration of a Move).
Breaks CPs that were watching merge/split. These are run by Master now
so you need to observe on Master, not on RegionServer.
Details:
M hbase-client/src/main/java/org/apache/hadoop/hbase/ClusterStatus.java
Takes List of regionstates on construction rather than a Set.
NOTE!!!!! This is a change in a public class.
M hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
Add utility getShortNameToLog
M hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java
M hbase-client/src/main/java/org/apache/hadoop/hbase/client/ShortCircuitMasterConnection.java
Add support for dispatching assign, split and merge processes.
M hbase-client/src/main/java/org/apache/hadoop/hbase/master/RegionState.java
Purge old overlapping states: PENDING_OPEN, PENDING_CLOSE, etc.
M hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
Lots of doc on its inner workings. Bug fixes.
M hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
Log and doc on workings. Bug fixes.
A hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureDispatcher.java
Dispatch remote procedures every 150ms or 32 items -- which ever
happens first (configurable). Runs a timeout thread. This facility is
not on yet; will come in as part of a later fix. Currently works a
region at a time. This class carries notion of a remote procedure and of a buffer full of these.
"hbase.procedure.remote.dispatcher.threadpool.size" with default = 128
"hbase.procedure.remote.dispatcher.delay.msec" with default = 150ms
"hbase.procedure.remote.dispatcher.max.queue.size" with default = 32
M hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
Add in support for merge. Remove no-longer used methods.
M hbase-protocol-shaded/src/main/protobuf/Admin.proto b/hbase-protocol-shaded/src/main/protobuf/Admin.proto
Add execute procedures call ExecuteProcedures.
M hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto
Add assign and unassign state support for procedures.
M hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java
Adds getting RS version out of RPC
Examples: (1.3.4 is 0x0103004, 2.1.0 is 0x0201000)
M hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
Remove periodic metrics chore. This is done over in new AM now.
Replace AM with the new. Host the procedures executor.
M hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterMetaBootstrap.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterMetaBootstrap.java
Have AMv2 handle assigning meta.
M hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
Extract version number of the server making rpc.
A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
Add new assign procedure. Runs assign via Procedure Dispatch.
There can only be one RegionTransitionProcedure per region running at the time,
since each procedure takes a lock on the region.
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignCallable.java
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/BulkAssigner.java
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/GeneralBulkAssigner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/GeneralBulkAssigner.java
Remove these hacky classes that were never supposed to live longer than
a month or so to be replaced with real assigners.
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStateStore.java
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java
D hbase-server/src/main/java/org/apache/hadoop/hbase/master/UnAssignCallable.java
A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
A procedure-based AM (AMv2).
TODO
- handle region migration
- handle meta assignment first
- handle sys table assignment first (e.g. acl, namespace)
- handle table priorities
"hbase.assignment.bootstrap.thread.pool.size"; default size is 16.
"hbase.assignment.dispatch.wait.msec"; default wait is 150
"hbase.assignment.dispatch.wait.queue.max.size"; wait max default is 100
"hbase.assignment.rit.chore.interval.msec"; default is 5 * 1000;
"hbase.assignment.maximum.attempts"; default is 10;
A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.java
Procedure that runs subprocedure to unassign and then assign to new location
A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
Manage store of region state (in hbase:meta by default).
A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStates.java
In-memory state of all regions. Used by AMv2.
A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.java
Base RIT procedure for Assign and Unassign.
A hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java
Unassign procedure.
A hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java
Run region assignement in a manner that pays attention to target server version.
Adds "hbase.regionserver.rpc.startup.waittime"; defaults 60 seconds.
2017-05-31 20:49:11 -04:00
|
|
|
<artifactId>hbase-protocol-shaded</artifactId>
|
2012-11-20 18:26:00 -05:00
|
|
|
</dependency>
|
2015-04-09 15:47:46 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-procedure</artifactId>
|
|
|
|
</dependency>
|
2012-12-03 16:30:19 -05:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-client</artifactId>
|
|
|
|
</dependency>
|
2017-11-13 14:42:33 -05:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-zookeeper</artifactId>
|
|
|
|
</dependency>
|
2017-08-17 23:59:35 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-replication</artifactId>
|
|
|
|
</dependency>
|
2012-09-26 08:23:43 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-common</artifactId>
|
|
|
|
<type>test-jar</type>
|
2014-01-28 20:19:28 -05:00
|
|
|
<scope>test</scope>
|
2012-09-26 08:23:43 -04:00
|
|
|
</dependency>
|
2014-10-07 02:16:22 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-annotations</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2015-04-09 15:47:46 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-procedure</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2017-12-06 03:38:34 -05:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-zookeeper</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2017-01-25 14:47:35 -05:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-metrics-api</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-metrics</artifactId>
|
|
|
|
</dependency>
|
2015-07-15 06:12:36 -04:00
|
|
|
<dependency>
|
2017-08-31 11:03:22 -04:00
|
|
|
<groupId>commons-codec</groupId>
|
|
|
|
<artifactId>commons-codec</artifactId>
|
2013-08-02 15:01:34 -04:00
|
|
|
</dependency>
|
2012-07-17 18:02:06 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-hadoop-compat</artifactId>
|
|
|
|
</dependency>
|
2012-09-07 01:28:31 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-hadoop-compat</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>${compat.module}</artifactId>
|
2012-09-18 15:10:03 -04:00
|
|
|
<version>${project.version}</version>
|
2012-09-07 01:28:31 -04:00
|
|
|
</dependency>
|
2012-07-17 18:02:06 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>${compat.module}</artifactId>
|
2012-09-18 15:10:03 -04:00
|
|
|
<version>${project.version}</version>
|
2012-09-07 01:28:31 -04:00
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
2012-07-17 18:02:06 -04:00
|
|
|
</dependency>
|
2020-05-09 00:00:45 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-asyncfs</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-asyncfs</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2017-09-04 16:10:20 -04:00
|
|
|
<dependency>
|
2018-04-09 14:37:44 -04:00
|
|
|
<!-- For JspC used in ant task, then needed at compile /runtime
|
|
|
|
because the source code made from the JSP refers to its runtime
|
|
|
|
-->
|
2017-09-04 16:10:20 -04:00
|
|
|
<groupId>org.glassfish.web</groupId>
|
|
|
|
<artifactId>javax.servlet.jsp</artifactId>
|
|
|
|
</dependency>
|
2022-05-01 10:52:40 -04:00
|
|
|
<!-- Also used by generated sources from our JSP -->
|
2017-08-31 11:03:22 -04:00
|
|
|
<dependency>
|
2018-04-09 14:37:44 -04:00
|
|
|
<groupId>javax.servlet.jsp</groupId>
|
|
|
|
<artifactId>javax.servlet.jsp-api</artifactId>
|
2017-08-31 11:03:22 -04:00
|
|
|
</dependency>
|
2012-05-26 01:56:04 -04:00
|
|
|
<!-- General dependencies -->
|
2015-01-21 16:12:57 -05:00
|
|
|
<dependency>
|
2020-03-11 22:18:09 -04:00
|
|
|
<groupId>com.github.stephenc.findbugs</groupId>
|
|
|
|
<artifactId>findbugs-annotations</artifactId>
|
|
|
|
<scope>compile</scope>
|
|
|
|
<optional>true</optional>
|
2015-01-21 16:12:57 -05:00
|
|
|
</dependency>
|
2019-04-16 16:22:01 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.github.ben-manes.caffeine</groupId>
|
|
|
|
<artifactId>caffeine</artifactId>
|
|
|
|
</dependency>
|
2012-05-30 11:09:36 -04:00
|
|
|
<dependency>
|
2015-12-15 15:11:27 -05:00
|
|
|
<groupId>io.dropwizard.metrics</groupId>
|
2012-05-30 11:09:36 -04:00
|
|
|
<artifactId>metrics-core</artifactId>
|
|
|
|
</dependency>
|
2015-01-21 16:12:57 -05:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.google.protobuf</groupId>
|
|
|
|
<artifactId>protobuf-java</artifactId>
|
|
|
|
</dependency>
|
2012-05-26 01:56:04 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>commons-io</groupId>
|
|
|
|
<artifactId>commons-io</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
2017-08-24 14:10:17 -04:00
|
|
|
<groupId>org.apache.commons</groupId>
|
|
|
|
<artifactId>commons-lang3</artifactId>
|
2012-05-26 01:56:04 -04:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
2017-12-18 05:14:30 -05:00
|
|
|
<groupId>org.slf4j</groupId>
|
|
|
|
<artifactId>slf4j-api</artifactId>
|
2012-05-26 01:56:04 -04:00
|
|
|
</dependency>
|
2021-09-25 08:02:28 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.agrona</groupId>
|
|
|
|
<artifactId>agrona</artifactId>
|
|
|
|
<version>1.12.0</version>
|
|
|
|
</dependency>
|
2012-05-30 16:53:15 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.commons</groupId>
|
2017-08-25 07:34:03 -04:00
|
|
|
<artifactId>commons-math3</artifactId>
|
2012-05-30 16:53:15 -04:00
|
|
|
</dependency>
|
2012-05-26 01:56:04 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.zookeeper</groupId>
|
|
|
|
<artifactId>zookeeper</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.jamon</groupId>
|
|
|
|
<artifactId>jamon-runtime</artifactId>
|
|
|
|
</dependency>
|
2017-08-31 11:03:22 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>javax.servlet</groupId>
|
|
|
|
<artifactId>javax.servlet-api</artifactId>
|
|
|
|
</dependency>
|
2013-10-02 17:01:37 -04:00
|
|
|
<!-- tracing Dependencies -->
|
2017-10-26 17:23:42 -04:00
|
|
|
<dependency>
|
2021-07-29 12:15:10 -04:00
|
|
|
<groupId>io.opentelemetry</groupId>
|
|
|
|
<artifactId>opentelemetry-api</artifactId>
|
2017-10-26 17:23:42 -04:00
|
|
|
</dependency>
|
2014-01-25 23:41:39 -05:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.lmax</groupId>
|
|
|
|
<artifactId>disruptor</artifactId>
|
|
|
|
</dependency>
|
2015-01-21 16:12:57 -05:00
|
|
|
<!-- Test dependencies -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.hamcrest</groupId>
|
|
|
|
<artifactId>hamcrest-core</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2021-08-02 14:33:19 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>io.opentelemetry</groupId>
|
|
|
|
<artifactId>opentelemetry-sdk</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>io.opentelemetry</groupId>
|
|
|
|
<artifactId>opentelemetry-sdk-testing</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2020-01-16 11:47:00 -05:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.hamcrest</groupId>
|
|
|
|
<artifactId>hamcrest-library</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2022-10-17 16:14:34 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.bouncycastle</groupId>
|
|
|
|
<artifactId>bcprov-jdk15on</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2016-06-15 12:26:44 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.kerby</groupId>
|
|
|
|
<artifactId>kerb-client</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.kerby</groupId>
|
|
|
|
<artifactId>kerb-simplekdc</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
|
|
<artifactId>httpclient</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
|
|
<artifactId>httpcore</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2017-07-07 01:43:46 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.commons</groupId>
|
|
|
|
<artifactId>commons-crypto</artifactId>
|
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>net.java.dev.jna</groupId>
|
|
|
|
<artifactId>jna</artifactId>
|
|
|
|
</exclusion>
|
|
|
|
</exclusions>
|
|
|
|
</dependency>
|
2017-08-31 11:03:22 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>junit</groupId>
|
|
|
|
<artifactId>junit</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.mockito</groupId>
|
2017-10-03 01:53:34 -04:00
|
|
|
<artifactId>mockito-core</artifactId>
|
2017-08-31 11:03:22 -04:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2020-05-13 05:59:21 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.slf4j</groupId>
|
|
|
|
<artifactId>jcl-over-slf4j</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.slf4j</groupId>
|
|
|
|
<artifactId>jul-to-slf4j</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
2022-03-11 14:17:43 -05:00
|
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
|
|
<artifactId>log4j-api</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
|
|
<artifactId>log4j-core</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
|
|
<artifactId>log4j-slf4j-impl</artifactId>
|
2020-05-13 05:59:21 -04:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
2022-03-11 14:17:43 -05:00
|
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
|
|
<artifactId>log4j-1.2-api</artifactId>
|
2020-05-13 05:59:21 -04:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2012-05-26 01:56:04 -04:00
|
|
|
</dependencies>
|
2022-05-01 10:52:40 -04:00
|
|
|
<build>
|
|
|
|
<!-- Make sure resources get added before they are processed by placing this first
|
|
|
|
-->
|
|
|
|
<resources>
|
|
|
|
<!-- Add the build webabpps to the classpth -->
|
|
|
|
<resource>
|
|
|
|
<directory>${project.build.directory}</directory>
|
|
|
|
<includes>
|
|
|
|
<include>hbase-webapps/**</include>
|
|
|
|
</includes>
|
|
|
|
</resource>
|
|
|
|
<resource>
|
|
|
|
<directory>src/main/resources</directory>
|
|
|
|
<includes>
|
|
|
|
<include>**/**</include>
|
|
|
|
</includes>
|
|
|
|
</resource>
|
|
|
|
</resources>
|
|
|
|
<testResources>
|
|
|
|
<!-- Our test artifact has different license info than our source/bin ones -->
|
|
|
|
<testResource>
|
|
|
|
<targetPath>META-INF/</targetPath>
|
|
|
|
<filtering>true</filtering>
|
|
|
|
<directory>src/test/resources/META-INF/</directory>
|
|
|
|
<includes>
|
|
|
|
<include>NOTICE</include>
|
|
|
|
</includes>
|
|
|
|
</testResource>
|
|
|
|
<testResource>
|
|
|
|
<directory>src/test/resources</directory>
|
|
|
|
<includes>
|
|
|
|
<include>**/**</include>
|
|
|
|
</includes>
|
|
|
|
</testResource>
|
|
|
|
</testResources>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<groupId>com.github.spotbugs</groupId>
|
|
|
|
<artifactId>spotbugs-maven-plugin</artifactId>
|
|
|
|
<configuration>
|
|
|
|
<maxHeap>2048</maxHeap>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
|
|
|
<!-- licensing info from our bundled works -->
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-remote-resources-plugin</artifactId>
|
|
|
|
<dependencies>
|
|
|
|
<!-- resource bundle only needed at build time -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-resource-bundle</artifactId>
|
|
|
|
<version>${project.version}</version>
|
|
|
|
</dependency>
|
|
|
|
</dependencies>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>default</id>
|
|
|
|
<configuration>
|
|
|
|
<attachToTest>false</attachToTest>
|
|
|
|
<properties>
|
|
|
|
<copyright-end-year>${build.year}</copyright-end-year>
|
|
|
|
<debug-print-included-work-info>${license.debug.print.included}</debug-print-included-work-info>
|
|
|
|
<bundled-dependencies>${license.bundles.dependencies}</bundled-dependencies>
|
|
|
|
<bundled-jquery>${license.bundles.jquery}</bundled-jquery>
|
|
|
|
<bundled-vega>${license.bundles.vega}</bundled-vega>
|
|
|
|
<bundled-logo>${license.bundles.logo}</bundled-logo>
|
|
|
|
<bundled-bootstrap>${license.bundles.bootstrap}</bundled-bootstrap>
|
|
|
|
</properties>
|
|
|
|
<resourceBundles>
|
|
|
|
<resourceBundle>${project.groupId}:hbase-resource-bundle:${project.version}</resourceBundle>
|
|
|
|
</resourceBundles>
|
|
|
|
<supplementalModelArtifacts>
|
|
|
|
<supplementalModelArtifact>${project.groupId}:hbase-resource-bundle:${project.version}</supplementalModelArtifact>
|
|
|
|
</supplementalModelArtifacts>
|
|
|
|
<supplementalModels>
|
|
|
|
<supplementalModel>supplemental-models.xml</supplementalModel>
|
|
|
|
</supplementalModels>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
<!-- Run with -Dmaven.test.skip.exec=true to build -tests.jar without running
|
|
|
|
tests (this is needed for upstream projects whose tests need this jar simply for
|
|
|
|
compilation) -->
|
|
|
|
<plugin>
|
|
|
|
<!--Make it so assembly:single does nothing in here-->
|
|
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
|
|
<configuration>
|
|
|
|
<skipAssembly>true</skipAssembly>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
|
|
<configuration>
|
|
|
|
<!-- Exclude these 2 packages, because their dependency _binary_ files
|
|
|
|
include the sources, and Maven 2.2 appears to add them to the sources to compile,
|
|
|
|
weird -->
|
|
|
|
<excludes>
|
|
|
|
<exclude>org/apache/jute/**</exclude>
|
|
|
|
<exclude>org/apache/zookeeper/**</exclude>
|
|
|
|
<exclude>**/*.jsp</exclude>
|
|
|
|
<exclude>hbase-site.xml</exclude>
|
|
|
|
<exclude>hdfs-site.xml</exclude>
|
|
|
|
<exclude>log4j.properties</exclude>
|
|
|
|
<exclude>mapred-queues.xml</exclude>
|
|
|
|
<exclude>mapred-site.xml</exclude>
|
|
|
|
</excludes>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
|
|
|
<!-- General ant tasks, bound to different build phases -->
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<!-- Generate web app sources -->
|
|
|
|
<execution>
|
|
|
|
<id>generate</id>
|
|
|
|
<goals>
|
|
|
|
<goal>run</goal>
|
|
|
|
</goals>
|
|
|
|
<phase>generate-sources</phase>
|
|
|
|
<configuration>
|
|
|
|
<target>
|
|
|
|
<property location="${project.build.directory}/hbase-webapps" name="build.webapps"/>
|
|
|
|
<property location="${basedir}/src/main/resources/hbase-webapps" name="src.webapps"/>
|
|
|
|
<property location="${project.build.directory}/generated-sources" name="generated.sources"/>
|
|
|
|
<mkdir dir="${build.webapps}"/>
|
|
|
|
<copy todir="${build.webapps}">
|
|
|
|
<fileset dir="${src.webapps}">
|
|
|
|
<exclude name="**/*.jsp"/>
|
|
|
|
<exclude name="**/.*"/>
|
|
|
|
<exclude name="**/*~"/>
|
|
|
|
</fileset>
|
|
|
|
</copy>
|
|
|
|
<!--The compile.classpath is passed in by maven -->
|
|
|
|
<taskdef classname="org.apache.jasper.JspC" classpathref="maven.compile.classpath" name="jspcompiler"/>
|
|
|
|
<mkdir dir="${build.webapps}/master/WEB-INF"/>
|
|
|
|
<jspcompiler outputdir="${generated.sources}/java" package="org.apache.hadoop.hbase.generated.master" uriroot="${src.webapps}/master" webxml="${build.webapps}/master/WEB-INF/web.xml"/>
|
|
|
|
<mkdir dir="${build.webapps}/regionserver/WEB-INF"/>
|
|
|
|
<jspcompiler outputdir="${generated.sources}/java" package="org.apache.hadoop.hbase.generated.regionserver" uriroot="${src.webapps}/regionserver" webxml="${build.webapps}/regionserver/WEB-INF/web.xml"/>
|
|
|
|
</target>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<!-- Add the generated sources -->
|
|
|
|
<execution>
|
|
|
|
<id>jspcSource-packageInfo-source</id>
|
|
|
|
<goals>
|
|
|
|
<goal>add-source</goal>
|
|
|
|
</goals>
|
|
|
|
<phase>generate-sources</phase>
|
|
|
|
<configuration>
|
|
|
|
<sources>
|
|
|
|
<source>${project.build.directory}/generated-jamon</source>
|
|
|
|
<source>${project.build.directory}/generated-sources/java</source>
|
|
|
|
</sources>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.jamon</groupId>
|
|
|
|
<artifactId>jamon-maven-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<goals>
|
|
|
|
<goal>translate</goal>
|
|
|
|
</goals>
|
|
|
|
<phase>generate-sources</phase>
|
|
|
|
<configuration>
|
|
|
|
<templateSourceDir>src/main/jamon</templateSourceDir>
|
|
|
|
<templateOutputDir>target/generated-jamon</templateOutputDir>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
<!-- Testing plugins -->
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
|
|
<configuration>
|
|
|
|
<systemPropertyVariables>
|
|
|
|
<test.build.webapps>target/test-classes/webapps</test.build.webapps>
|
|
|
|
</systemPropertyVariables>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<groupId>net.revelc.code</groupId>
|
|
|
|
<artifactId>warbucks-maven-plugin</artifactId>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</build>
|
2012-05-26 01:56:04 -04:00
|
|
|
<profiles>
|
2015-08-19 15:54:22 -04:00
|
|
|
<!-- Needs to make the profile in apache parent pom -->
|
|
|
|
<profile>
|
|
|
|
<id>apache-release</id>
|
|
|
|
<build>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>license-javadocs</id>
|
|
|
|
<goals>
|
|
|
|
<goal>copy-resources</goal>
|
|
|
|
</goals>
|
2022-05-01 10:52:40 -04:00
|
|
|
<phase>prepare-package</phase>
|
2015-08-19 15:54:22 -04:00
|
|
|
<configuration>
|
|
|
|
<outputDirectory>${project.build.directory}/apidocs</outputDirectory>
|
|
|
|
<resources>
|
|
|
|
<resource>
|
|
|
|
<directory>src/main/javadoc/META-INF/</directory>
|
|
|
|
<targetPath>META-INF/</targetPath>
|
|
|
|
<includes>
|
|
|
|
<include>LICENSE</include>
|
|
|
|
<include>NOTICE</include>
|
|
|
|
</includes>
|
|
|
|
<filtering>true</filtering>
|
|
|
|
</resource>
|
|
|
|
</resources>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</build>
|
|
|
|
</profile>
|
2012-05-31 00:23:20 -04:00
|
|
|
<!-- Skip the tests in this module -->
|
|
|
|
<profile>
|
2012-12-03 18:17:29 -05:00
|
|
|
<id>skipServerTests</id>
|
2012-05-31 00:23:20 -04:00
|
|
|
<activation>
|
|
|
|
<property>
|
2012-12-03 18:17:29 -05:00
|
|
|
<name>skipServerTests</name>
|
2012-05-31 00:23:20 -04:00
|
|
|
</property>
|
|
|
|
</activation>
|
|
|
|
<properties>
|
|
|
|
<surefire.skipFirstPart>true</surefire.skipFirstPart>
|
|
|
|
<surefire.skipSecondPart>true</surefire.skipSecondPart>
|
|
|
|
</properties>
|
|
|
|
</profile>
|
2012-05-26 01:56:04 -04:00
|
|
|
<!-- Special builds -->
|
2012-06-24 12:20:28 -04:00
|
|
|
<profile>
|
|
|
|
<id>native</id>
|
|
|
|
<activation>
|
|
|
|
<activeByDefault>false</activeByDefault>
|
|
|
|
</activation>
|
|
|
|
<build>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>make</id>
|
2022-05-01 10:52:40 -04:00
|
|
|
<goals>
|
|
|
|
<goal>run</goal>
|
|
|
|
</goals>
|
2012-06-24 12:20:28 -04:00
|
|
|
<phase>compile</phase>
|
|
|
|
<configuration>
|
|
|
|
<target>
|
|
|
|
<mkdir dir="${project.build.directory}/native"/>
|
2022-05-01 10:52:40 -04:00
|
|
|
<exec dir="${project.build.directory}/native" executable="cmake" failonerror="true">
|
2013-03-29 14:49:42 -04:00
|
|
|
<arg line="${basedir}/src/main/native -DJVM_ARCH_DATA_MODEL=${sun.arch.data.model}"/>
|
2012-06-24 12:20:28 -04:00
|
|
|
</exec>
|
2022-05-01 10:52:40 -04:00
|
|
|
<exec dir="${project.build.directory}/native" executable="make" failonerror="true">
|
2012-06-24 12:20:28 -04:00
|
|
|
<arg line="VERBOSE=1"/>
|
|
|
|
</exec>
|
|
|
|
</target>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</build>
|
|
|
|
</profile>
|
2012-06-03 17:59:50 -04:00
|
|
|
<!-- Profiles for building against different hadoop versions -->
|
2012-05-26 01:56:04 -04:00
|
|
|
<!-- There are a lot of common dependencies used here, should investigate
|
|
|
|
if we can combine these profiles somehow -->
|
2016-09-21 09:13:00 -04:00
|
|
|
|
|
|
|
<!-- profile for building against Hadoop 2.x. This is the default. -->
|
2012-05-26 01:56:04 -04:00
|
|
|
<profile>
|
|
|
|
<id>hadoop-2.0</id>
|
|
|
|
<activation>
|
|
|
|
<property>
|
2022-05-01 10:52:40 -04:00
|
|
|
<!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
|
|
|
|
<!--h2-->
|
|
|
|
<name>!hadoop.profile</name>
|
2012-05-26 01:56:04 -04:00
|
|
|
</property>
|
|
|
|
</activation>
|
|
|
|
<dependencies>
|
2019-03-25 09:25:15 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-distcp</artifactId>
|
|
|
|
</dependency>
|
2012-05-26 01:56:04 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
2013-08-02 15:01:34 -04:00
|
|
|
<artifactId>hadoop-common</artifactId>
|
|
|
|
</dependency>
|
2019-03-25 09:25:15 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-auth</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-annotations</artifactId>
|
|
|
|
</dependency>
|
2013-08-02 15:01:34 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-mapreduce-client-core</artifactId>
|
2017-07-07 01:43:46 -04:00
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>com.google.guava</groupId>
|
|
|
|
<artifactId>guava</artifactId>
|
|
|
|
</exclusion>
|
2020-05-05 18:27:11 -04:00
|
|
|
<exclusion>
|
|
|
|
<groupId>javax.xml.bind</groupId>
|
|
|
|
<artifactId>java-api</artifactId>
|
|
|
|
</exclusion>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>javax.xml.bind</groupId>
|
|
|
|
<artifactId>jaxb-api</artifactId>
|
|
|
|
</exclusion>
|
2017-07-07 01:43:46 -04:00
|
|
|
</exclusions>
|
2013-08-02 15:01:34 -04:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-mapreduce-client-jobclient</artifactId>
|
|
|
|
<type>test-jar</type>
|
2014-01-28 20:19:28 -05:00
|
|
|
<scope>test</scope>
|
2017-07-07 01:43:46 -04:00
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>com.google.guava</groupId>
|
|
|
|
<artifactId>guava</artifactId>
|
|
|
|
</exclusion>
|
|
|
|
</exclusions>
|
2013-08-02 15:01:34 -04:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-hdfs</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-hdfs</artifactId>
|
|
|
|
<type>test-jar</type>
|
2014-01-28 20:19:28 -05:00
|
|
|
<scope>test</scope>
|
2013-08-02 15:01:34 -04:00
|
|
|
</dependency>
|
2013-09-20 16:04:03 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-minicluster</artifactId>
|
|
|
|
<scope>test</scope>
|
2017-07-07 01:43:46 -04:00
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>com.google.guava</groupId>
|
|
|
|
<artifactId>guava</artifactId>
|
|
|
|
</exclusion>
|
2018-01-19 15:15:04 -05:00
|
|
|
<exclusion>
|
|
|
|
<groupId>org.apache.zookeeper</groupId>
|
|
|
|
<artifactId>zookeeper</artifactId>
|
|
|
|
</exclusion>
|
2017-07-07 01:43:46 -04:00
|
|
|
</exclusions>
|
2013-09-20 16:04:03 -04:00
|
|
|
</dependency>
|
2014-05-20 06:57:11 -04:00
|
|
|
<!-- Hadoop needs Netty 3.x at test scope for the minicluster -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>io.netty</groupId>
|
|
|
|
<artifactId>netty</artifactId>
|
2015-07-06 18:00:51 -04:00
|
|
|
<version>${netty.hadoop.version}</version>
|
2014-05-20 06:57:11 -04:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
HBASE-27340 Artifacts with resolved profiles (#4740)
Make it so our published poms carry the minimum needed to run
an hbase; the published pom has no profiles -- the profiles
specified at build time are resolved, their dependencies inlined,
and then they are stripped -- and no build-time, or plugins
dependencies or properties, etc. Resultant poms have explicit
hadoop lib versions baked in -- no more being able to choose
hbase with hadoop2 or haddop3 at downstream build time by setting
a '-Dhadoop.profile=X.0'.
Pattern is to add profiles when none in sub-modules when
the flatten plugin complains it can't resolve an hadoop
dependency's 'version' (e.g. hadoop-common, hadoop-hdfs).
Adding the hadoop-2.0 and hadoop-3.0 profiles in the sub-module
make it so the flatten plugin can figure 'hadoop.version'
definitively.
Another spin on the above happens when profiles already exist
in submodule but the flatten plugin is complaining it can't
figure figure version on an hadoop dependency NOT under
profiles. Below, we move the delinquent hadoop dependency under
existing profiles (minikdc was the usual dependency outside
profiles in sub-modules that flatten complained about).
Sometimes, moving an hadoop dependency under a profile, there
would be excludes on the local dependency. If the parent pom
excludes section was missing the local excludes, we added them
up to the parent module so all excluding is done up there in
the parent profile dependencyManagement section.
* hbase-asyncfs/pom.xml
* hbase-endpoint/pom.xml
* hbase-examples/pom.xml
* hbase-http/pom.xml
* hbase-rest/pom.xml
* hbase-server/pom.xml
Move the minikdc under profiles so it picks up appropriate hadoop version
when the flatten plugin runs.
* hbase-hadoop2-compat/pom.xml
Add hadoop2 and hadoop3 profiles and move hadoop-common, etc.
under them so we pick up appropriate hadoop version when flatten
plugin runs.
* hbase-mapreduce/pom.xml
Move hadoop dependencies under profiles so right version is
available when the flatten plugin runs.
* hbase-shaded/hbase-shaded-testing-util/pom.xml
Add profiles for hadoop-2.0 and hadoop-3.0 and move the
hadoop dependencies under them.
pom.xml
Add the flatten plugin with the flatten profiles enabled.
Add a few excludes on hadoop profiles picked up from sub-modules.
E.g. exclude bouncycastle bcprov-jdk15 when we include minikdc.
Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
2022-09-02 19:43:29 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-minikdc</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2012-05-26 01:56:04 -04:00
|
|
|
</dependencies>
|
|
|
|
<build>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>create-mrapp-generated-classpath</id>
|
|
|
|
<goals>
|
|
|
|
<goal>build-classpath</goal>
|
|
|
|
</goals>
|
2022-05-01 10:52:40 -04:00
|
|
|
<phase>generate-test-resources</phase>
|
2012-05-26 01:56:04 -04:00
|
|
|
<configuration>
|
|
|
|
<!-- needed to run the unit test for DS to generate
|
|
|
|
the required classpath that is required in the env
|
|
|
|
of the launch container in the mini mr/yarn cluster
|
|
|
|
-->
|
|
|
|
<outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</build>
|
|
|
|
</profile>
|
|
|
|
<!--
|
|
|
|
profile for building against Hadoop 3.0.x. Activate using:
|
|
|
|
mvn -Dhadoop.profile=3.0
|
|
|
|
-->
|
|
|
|
<profile>
|
|
|
|
<id>hadoop-3.0</id>
|
|
|
|
<activation>
|
|
|
|
<property>
|
2012-05-27 20:55:44 -04:00
|
|
|
<name>hadoop.profile</name>
|
|
|
|
<value>3.0</value>
|
2012-05-26 01:56:04 -04:00
|
|
|
</property>
|
|
|
|
</activation>
|
|
|
|
<dependencies>
|
2019-03-25 09:25:15 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-distcp</artifactId>
|
|
|
|
</dependency>
|
2017-03-18 06:04:19 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
2018-04-09 14:37:44 -04:00
|
|
|
<artifactId>hadoop-common</artifactId>
|
2017-03-18 06:04:19 -04:00
|
|
|
</dependency>
|
2012-05-26 01:56:04 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
2018-04-09 14:37:44 -04:00
|
|
|
<artifactId>hadoop-hdfs</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-hdfs-client</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-mapreduce-client-core</artifactId>
|
2020-05-05 18:27:11 -04:00
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>javax.xml.bind</groupId>
|
|
|
|
<artifactId>jaxb-api</artifactId>
|
|
|
|
</exclusion>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>javax.ws.rs</groupId>
|
|
|
|
<artifactId>jsr311-api</artifactId>
|
|
|
|
</exclusion>
|
|
|
|
</exclusions>
|
2012-05-26 01:56:04 -04:00
|
|
|
</dependency>
|
2017-12-14 10:19:34 -05:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-hdfs</artifactId>
|
2018-04-09 14:37:44 -04:00
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
2017-12-14 10:19:34 -05:00
|
|
|
</dependency>
|
2017-08-31 11:03:22 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
2018-04-09 14:37:44 -04:00
|
|
|
<artifactId>hadoop-mapreduce-client-jobclient</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
2017-08-31 11:03:22 -04:00
|
|
|
</dependency>
|
2019-03-25 09:25:15 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-annotations</artifactId>
|
|
|
|
</dependency>
|
2012-05-26 01:56:04 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-minicluster</artifactId>
|
2017-12-14 10:19:34 -05:00
|
|
|
<scope>test</scope>
|
2020-05-05 18:27:11 -04:00
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>javax.xml.bind</groupId>
|
|
|
|
<artifactId>jaxb-api</artifactId>
|
|
|
|
</exclusion>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>javax.ws.rs</groupId>
|
|
|
|
<artifactId>jsr311-api</artifactId>
|
|
|
|
</exclusion>
|
|
|
|
</exclusions>
|
2012-05-26 01:56:04 -04:00
|
|
|
</dependency>
|
2017-12-14 10:19:34 -05:00
|
|
|
<!-- Hadoop needs Netty 3.x at test scope for the minicluster>
|
2014-05-20 06:57:11 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>io.netty</groupId>
|
|
|
|
<artifactId>netty</artifactId>
|
2017-08-02 17:47:51 -04:00
|
|
|
<version>${netty.hadoop.version}</version>
|
2014-05-20 06:57:11 -04:00
|
|
|
<scope>test</scope>
|
2017-12-14 10:19:34 -05:00
|
|
|
</dependency-->
|
HBASE-27340 Artifacts with resolved profiles (#4740)
Make it so our published poms carry the minimum needed to run
an hbase; the published pom has no profiles -- the profiles
specified at build time are resolved, their dependencies inlined,
and then they are stripped -- and no build-time, or plugins
dependencies or properties, etc. Resultant poms have explicit
hadoop lib versions baked in -- no more being able to choose
hbase with hadoop2 or haddop3 at downstream build time by setting
a '-Dhadoop.profile=X.0'.
Pattern is to add profiles when none in sub-modules when
the flatten plugin complains it can't resolve an hadoop
dependency's 'version' (e.g. hadoop-common, hadoop-hdfs).
Adding the hadoop-2.0 and hadoop-3.0 profiles in the sub-module
make it so the flatten plugin can figure 'hadoop.version'
definitively.
Another spin on the above happens when profiles already exist
in submodule but the flatten plugin is complaining it can't
figure figure version on an hadoop dependency NOT under
profiles. Below, we move the delinquent hadoop dependency under
existing profiles (minikdc was the usual dependency outside
profiles in sub-modules that flatten complained about).
Sometimes, moving an hadoop dependency under a profile, there
would be excludes on the local dependency. If the parent pom
excludes section was missing the local excludes, we added them
up to the parent module so all excluding is done up there in
the parent profile dependencyManagement section.
* hbase-asyncfs/pom.xml
* hbase-endpoint/pom.xml
* hbase-examples/pom.xml
* hbase-http/pom.xml
* hbase-rest/pom.xml
* hbase-server/pom.xml
Move the minikdc under profiles so it picks up appropriate hadoop version
when the flatten plugin runs.
* hbase-hadoop2-compat/pom.xml
Add hadoop2 and hadoop3 profiles and move hadoop-common, etc.
under them so we pick up appropriate hadoop version when flatten
plugin runs.
* hbase-mapreduce/pom.xml
Move hadoop dependencies under profiles so right version is
available when the flatten plugin runs.
* hbase-shaded/hbase-shaded-testing-util/pom.xml
Add profiles for hadoop-2.0 and hadoop-3.0 and move the
hadoop dependencies under them.
pom.xml
Add the flatten plugin with the flatten profiles enabled.
Add a few excludes on hadoop profiles picked up from sub-modules.
E.g. exclude bouncycastle bcprov-jdk15 when we include minikdc.
Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
2022-09-02 19:43:29 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-minikdc</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2012-05-26 01:56:04 -04:00
|
|
|
</dependencies>
|
|
|
|
<build>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>create-mrapp-generated-classpath</id>
|
|
|
|
<goals>
|
|
|
|
<goal>build-classpath</goal>
|
|
|
|
</goals>
|
2022-05-01 10:52:40 -04:00
|
|
|
<phase>generate-test-resources</phase>
|
2012-05-26 01:56:04 -04:00
|
|
|
<configuration>
|
|
|
|
<!-- needed to run the unit test for DS to generate
|
|
|
|
the required classpath that is required in the env
|
|
|
|
of the launch container in the mini mr/yarn cluster
|
|
|
|
-->
|
|
|
|
<outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</build>
|
|
|
|
</profile>
|
2019-03-21 12:34:12 -04:00
|
|
|
<profile>
|
|
|
|
<id>eclipse-specific</id>
|
|
|
|
<activation>
|
|
|
|
<property>
|
|
|
|
<name>m2e.version</name>
|
|
|
|
</property>
|
|
|
|
</activation>
|
|
|
|
<build>
|
|
|
|
<pluginManagement>
|
2022-05-01 10:52:40 -04:00
|
|
|
<plugins>
|
|
|
|
<!--This plugin's configuration is used to store Eclipse m2e settings
|
2019-03-21 12:34:12 -04:00
|
|
|
only. It has no influence on the Maven build itself and needs to
|
|
|
|
be kept in plugin management, not in the actual plugins. -->
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.eclipse.m2e</groupId>
|
|
|
|
<artifactId>lifecycle-mapping</artifactId>
|
|
|
|
<configuration>
|
|
|
|
<lifecycleMappingMetadata>
|
|
|
|
<pluginExecutions>
|
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.jamon</groupId>
|
|
|
|
<artifactId>jamon-maven-plugin</artifactId>
|
|
|
|
<versionRange>[2.3.4,)</versionRange>
|
|
|
|
<goals>
|
|
|
|
<goal>translate</goal>
|
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
2022-05-01 10:52:40 -04:00
|
|
|
<execute>
|
|
|
|
<runOnIncremental>false</runOnIncremental>
|
|
|
|
<runOnConfiguration>true</runOnConfiguration>
|
|
|
|
</execute>
|
2019-03-21 12:34:12 -04:00
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
|
|
<versionRange>[1.6,)</versionRange>
|
|
|
|
<goals>
|
|
|
|
<goal>run</goal>
|
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
|
|
|
<execute>
|
|
|
|
<runOnIncremental>false</runOnIncremental>
|
|
|
|
<runOnConfiguration>true</runOnConfiguration>
|
|
|
|
</execute>
|
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
|
|
<versionRange>[2.8,)</versionRange>
|
|
|
|
<goals>
|
|
|
|
<goal>build-classpath</goal>
|
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
2022-05-01 10:52:40 -04:00
|
|
|
<ignore/>
|
2019-03-21 12:34:12 -04:00
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
|
|
|
</pluginExecutions>
|
|
|
|
</lifecycleMappingMetadata>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</pluginManagement>
|
2022-05-01 10:52:40 -04:00
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-eclipse-plugin</artifactId>
|
|
|
|
<configuration>
|
|
|
|
<additionalProjectnatures>
|
|
|
|
<projectnature>org.jamon.project.jamonnature</projectnature>
|
|
|
|
</additionalProjectnatures>
|
|
|
|
<buildcommands>
|
|
|
|
<buildcommand>org.jamon.project.templateBuilder</buildcommand>
|
|
|
|
<buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
|
|
|
|
<buildcommand>org.jamon.project.markerUpdater</buildcommand>
|
|
|
|
</buildcommands>
|
|
|
|
<additionalConfig>
|
|
|
|
<file>
|
|
|
|
<name>.settings/org.jamon.prefs</name>
|
|
|
|
<content># now
|
|
|
|
eclipse.preferences.version=1
|
|
|
|
templateSourceDir=src/main/jamon
|
|
|
|
templateOutputDir=target/generated-jamon</content>
|
|
|
|
</file>
|
|
|
|
</additionalConfig>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
2019-03-21 12:34:12 -04:00
|
|
|
</build>
|
|
|
|
</profile>
|
2012-05-26 01:56:04 -04:00
|
|
|
</profiles>
|
|
|
|
</project>
|