- Fix for
NullPointerException
in ClientCapabilities whenget_table_req
andget_tables_req
is called from Hive3.x client. See #317
- Added
waggle-dance-extensions
module. See extensions README - Added support to enable Rate Limiting in Waggle Dance.
- Changed and added some log messages for better tracking of calls.
- Changed Integration Test WaggleDanceRunner to allow for reuse.
- Added optional
primary-meta-store.read-only-remote-meta-store-uris
config to allow traffic to be diverted based on calls made. See README.md.
- Fixed log statement that was not logging the exception correctly.
- Removed client.shutdown() call, this always throws an exception and the code ends up closing the transport directly.
- Switch to ExecutorService instead of the default
ForkJoinPool
forMetastoreMappingImpl.isAvailable()
calls. UsingForkJoinPool
may cause threads to wait on each other. - Increased default
MetastoreMappingImpl.isAvailable()
timeout to2000ms
(was500ms
) to set a bit more conservative default.
- Added timeout on
MetastoreMappingImpl.isAvailable()
calls to prevent long waits on unresponsive metastores.
- Metrics have been incorporated into Waggle Dance with the inclusion of tags, which will facilitate filtering within Datadog.
- Exclude jetty-all from core module, because it makes spring start fail and makes
WaggleDanceIntegrationTest
fail. - Upgrade maven.surefire.plugin.version to 3.1.2 (was 3.0.0-m5).
- Exclude jdk.tools clashes with > java8 JDK.
- Exclude Junit5 dependencies as they clashed with Junit4 and caused maven to stop running the tests.
- Fixed metric(graphite) integration test (was broken since 3.10.12 (spring-boot upgrade).
- Exclude Junit5 dependencies as they clashed with Junit4 and caused maven to stop running the tests.
- Fixed metric(graphite) integration test (was broken since 3.10.12 (spring-boot upgrade).
- Exclude jetty-all from core module, because it makes spring start fail and makes
WaggleDanceIntegrationTest
fail. - Upgrade maven.surefire.plugin.version to 3.1.2 (was 3.0.0-m5).
- Exclude jdk.tools clashes with > java8 JDK.
- Setting AWSGlueClientFactory log level to
WARN
because it spams this log every ~200ms. It could be creating unnecessary Glue clients.
- Clean up delegation-token set for Kerberos in thread-local.
- Support kerberos and delegation-token See #264
- Upgrade version of snakeyaml to 1.32 (was 1.26)
- Remove
waggledance.allow-bean-definition-overriding
property to configuration to favor single bean creation.
- Upgraded
springboot
version to2.7.11
(was2.0.4.RELEASE
). - Added
spring-boot-starter-validation
. - Added
waggledance.allow-bean-definition-overriding
property to configuration. - Added
joda-time
version2.9.9
.
- Functionality to get tables from a database using a Glue federation. Code pulled from original AWS master branch.
- Code
- Upgraded
aws-sdk
version to1.12.276
(was1.11.267
) inwaggledance-core
. - Enabled support to use AWS STS tokens when using Glue sync in
waggledance-core
.
- Uploaded Glue JARs with all changes from release
3.10.8
in/lib
folder. - Excluded
pentaho-aggdesigner-algorithm
dependency fromhive-exec
(provided) due to problems when building the project locally.
- Upgraded
aws-sdk
version to1.12.276
(was1.11.267
) inaws-glue-datacatalog-client-common
. - Enabled support to use AWS STS tokens when using Glue sync in
aws-glue-datacatalog-client-common
.
- Fixed get objectname null pointer for:
transformInboundHiveObjectRef
- Fixed database name translation for:
alter_partitions_with_environment_context
alter_table_with_cascade
- Added
queryFunctionsAcrossAllMetastores
configuration for optimisinggetAllFunctions
calls.
- Metrics to track metastore availability.
- More tuning of delayed
set_ugi
calls.
- Potential exception when
set_ugi
has immutable list or null-value groups argument.
- Caching
set_ugi
call in clients to prevent unnecessary calls to metastores.
- Converted
metastore.isAvailable
loops to parallel execution to mitigate slow responding metastores.
- Support for Glue catalog (read only) federation.
- converted some log statements to debug to get less chatty logs.
log4j2
updated to2.17.1
(was2.17.0
) - log4shell vulnerability fix
log4j2
updated to2.17.0
(was2.16.0
) - log4j vulnerability fix see https://logging.apache.org/log4j/2.x/security.html
log4j2
updated to2.16.0
(was2.15.0
) - log4shell vulnerability fix
log4j2
updated to2.15.0
(was2.10.0
) - log4shell vulnerability fix
commons-io
updated to2.7.
(was2.6
).org.pentaho:pentaho-aggdesigner-algorithm
dependency excluded fromwaggle-dance-core
.
- Support for '.' wildcards in database pattern calls. See #216
- Null Pointer Exception when database name was null in
get_privilege_set
call.
- Changed spring-boot-maven-plugin layout to ZIP (was JAR). This fixes classloading issues with external jars (which can be loaded by adding
-Dloader.path=my.jar
).
- Null pointer exception when creating a metastore tunnel by adding a check for null
configuration-properties
. - Fixing issue where Presto views cannot be parsed resulting in errors.
- Support for setting Hive metastore filter hooks which can be configured per federated metastore. See the README for more information.
- The
configuration-properties
fromwaggle-dance-server.yml
are set when creating the Thrift clients.
- Updated
hotels-oss-parent
to 6.1.0 (was 5.0.0).
- Upgraded version of
hive.version
to2.3.7
(was2.3.3
). Allows Waggle Dance to be used on JDK>=9.
- Implemented
get_partition_values()
method inFederatedHMSHandler
due to Hive version change. - New
database-name-mapping
feature. See the README for more information.
- Removed
IdentityMapping
as a fallback mapping in certain cases. Simplifies code paths.
- Updated
hotels-oss-parent
to 5.0.0 (was 4.0.1).
- Support for Prometheus metrics.
- Added logging to help debug connection issues.
- Remove error for empty prefix on federated metastores. See #183.
- Support for
mapped-databases
configuration for primary metastore. See #175.
- Removed com.hotels.bdp.waggledance.spring.CommonVFSResource, looks like dead code. See #178.
- Changed a prefixed primary metastore to fallback to 'empty prefix' if nothing specified. See #173.
Show Functions
now shows UDFs from all metastores. See #164.- Fixed REST API (http://localhost:18000/api/admin/federations/) which broke in 3.3.0 release.
- Prefixing of UDFs used in a view. See #165.
- Reconnection to metastores for MANUAL database resolution. With this change, the server configuration can specify a
status-polling-delay
andstatus-polling-delay-time-unit
. See the README for more information.
- Allow primary metastore to have a prefix. See #152.
- Configurable
latency
for each metastore in a Waggle Dance configuration.
- Support for regex
mapped-databases
for MANUAL database resolution. See #147. - Avoid NPE when no elements are provided for
mapped-databases
in the configuration. See #131. - Support for running metastore queries in parallel.
- Support request without DbName like BitSetCheckedAuthorizationProvider#authorizeUserPrivcannot. See #158
- Updated
hotels-oss-parent
to 4.0.1 (was 2.3.5). - Added invocation log messages for
getPartitions
calls.
- Refactored project to remove checkstyle and findbugs warnings, which does not impact functionality.
- Updated
hotels-oss-parent
to 2.3.5 (was 2.3.3).
- Fixed compatibility layer exception handling.
- Issue where setting strict-host-key-checking for metastore-tunnel causes an error. See #145.
- Refactored general metastore tunnelling code to leverage hcommon-hive-metastore libraries. See #103.
- Fixed IllegalArgumentException thrown while doing write operations on federated metastores in MANUAL database resolution. See 141.
- Compatibility issue with
get_foreign_keys()
andget_primary_keys()
methods.
- Minimum supported Java version is now 8 (was 7). See #108.
- Waggle Dance updated to use Spring-Boot-2.0.4 instead of Spring Platform BOM. See #105.
- Changed JVM Metrics, the following modifications are needed if you are tracking these metrics and want to achieve equivalency:
memory.heap.used
->sum(jvm.memory.used.area.heap.id.*)
- i.e. you now need to sum up all the heap spacesmemory.heap.max
->sum(jvm.memory.max.area.heap.id.*)
- i.e. you now need to sum up all the max used heap spacesthreads.*
->jvm.threads.*
- Added workaround when federating to a Hive 1.x Metastore. See #110.
- Removed performance hit we get from checking if a connection is alive for non-tunneled connections. See #115.
- Removed System.exit calls from the service instead it will exit with an exception if the Spring Boot exit code is not 0.
- Updated
hotels-oss-parent
to version 2.3.3 (was 2.3.2).
- Enable federated metastore's access-control-type to be configured to
READ_ONLY
andREAD_AND_WRITE_ON_DATABASE_WHITELIST
. See #87.
- Refactored general purpose Hive metastore code to leverage hcommon-hive-metastore and hcommon-ssh libraries. See #78.
- Updated versions of dependencies and plugins in waggle-dance-parent, waggle-dance, waggle-dance-core and waggle-dance-rpm modules.
- Upgraded default Hive version from 2.3.0 to 2.3.3.
- Client creation exceptions are caught (exceptions seem mostly due to tunneling) and no longer affect the whole of WD, unreachable Metastore is ignored. See #80.
- Using hcommon-ssh-1.0.1 dependency to fix issue where metastore exceptions were lost and not propagated properly over tunnelled connections.
- Issue where WD is unresponsive when a tunneled metastore connection becomes unreachable. See #73.
- View query parsing code shouldn't use JRE class. See #62.
- Issue where not all views where correctly transformed. See #62.
- Regex support in
federated-meta-stores.mapped-databases
. #59.
- Replace SSH support with hcommon-ssh library. #51.
- Tables referenced in views are now correctly transformed to the context of the Waggle Dance client. See #62.
- Configure StrictHostKeyChecking for MetastoreTunnel in YAML configuration. See #33.
- DESCRIBE FORMATTED query against federated tables now works. See #60.
- Configurable SSH session timeout for SSH tunnels. See #49.
- Regexes enabled in writable database whitelist. See #43.
- Database whitelisting capabilities on
PREFIXED
mode. See #47.
- Metastore status check now works for tunneled connections. See #34.
- Metastore status was missing from api/admin/federations rest endpoint. See #29.
DatabaseMapping
s no longer make copies of the Thrift objects, it mutates the original objects instead.- Upgrade Spring, BeeJU and other dependencies.
- Changed the default GC settings, less heap, more reserved percentage, works better with large requests.
- Upgrade Hive from 2.1.0 to 2.3.0.
- Depend on latest parent with
test.arguments
build parameter. - Fixed bug where tunnel configuration wasn't being applied.
- Hive dependency updated to 2.1.1 (Needed corresponding BeeJU dependency update as well).
- Removed SessionFactorySupplierFactory.
- Flag to prevent flushing the federation configuration out when the server stops.
- Configure Maven deploy plug-in.
- Few extra notes in README.
- Allow database name patterns in DDL.
- NOTE: Backward incompatible config change. Renamed graphite config
inter-poll-time
andinter-poll-time-unit
topoll-interval
andpoll-interval-time-unit
. - Changed default rpm user from 'hadoop' to 'waggle-dance'. If not present 'root' will be used.
- Expose metastore status in the REST endpoint.
- Support for
hive.metastore.execute.setugi=true
hive flag, UGI is now correctly sent along to federated metastores.
- Prefix is now optional, the metastore name can be used to derive it by default if needed.
- Improved metastore client connection logic.
- Adding test and improved integration tests running time.
- Improved client-side error message.
- Functionality to avoid prefixes and allow for a fixed list of federated databases to be configured.
- Externalized log4j2.xml so we can change log levels.
- Support for more flexible primary metastore configuration including database whitelist access controls.
- Metastore metrics and Graphite support.
- Bug where client exceptions were not properly propagated.
- Small bugfix where we threw the wrong thrift Exception (TException).
- Fix active connections counter.
- Support for SHH tunneling on federated metastores.
- Fix memory leak.