From 026c9ba4efeb3484a05537e552a6565895d700e1 Mon Sep 17 00:00:00 2001 From: Steve Loughran Date: Wed, 19 Nov 2025 11:06:28 +0000 Subject: [PATCH 1/3] HADOOP-19696. hadoop binary distribution to move cloud connectors to hadoop common/lib (#7980) This moves all the cloud connector libraries to common/lib There are specific build options to control which libraries to include The hadoop-* JARs of the modules are includes, but dependencies are only included when the build-time options specify it. Available package profiles: hadoop-aliyun-package hadoop-aws-package hadoop-azure-datalake-package hadoop-cos-package hadoop-huaweicloud-package This means that by default AWS bundle.jar is no longer included in the distribution: to add it users must drop their chosen version of the SDK into share/hadoop/common/lib Anyone building their own release now has a choice of which connectors to bundle. The ASF ones will stay fairly lean to reduce the CVE attack surface as well as keep package size under control. Contributed by Steve Loughran --- BUILDING.txt | 43 +++ LICENSE-binary | 22 +- dev-support/bin/dist-layout-stitching | 4 + .../assemblies/hadoop-cloud-storage.xml | 59 ++++ .../main/resources/assemblies/hadoop-src.xml | 1 + .../hadoop-cloud-storage-dist/pom.xml | 281 ++++++++++++++++++ .../hadoop-huaweicloud/pom.xml | 4 + .../services/org.apache.hadoop.fs.FileSystem | 16 - hadoop-cloud-storage-project/pom.xml | 16 +- .../src/main/resources/core-default.xml | 6 + .../conf/TestCommonConfigurationFields.java | 2 + hadoop-project/pom.xml | 24 ++ .../services/org.apache.hadoop.fs.FileSystem | 16 - hadoop-tools/hadoop-tools-dist/pom.xml | 24 -- 14 files changed, 458 insertions(+), 60 deletions(-) create mode 100644 hadoop-assemblies/src/main/resources/assemblies/hadoop-cloud-storage.xml create mode 100644 hadoop-cloud-storage-project/hadoop-cloud-storage-dist/pom.xml delete mode 100644 hadoop-cloud-storage-project/hadoop-huaweicloud/src/main/resources/META-INF/services/org.apache.hadoop.fs.FileSystem delete mode 100644 hadoop-tools/hadoop-aws/src/main/resources/META-INF/services/org.apache.hadoop.fs.FileSystem diff --git a/BUILDING.txt b/BUILDING.txt index 1e2a1fef1a098e..2aca399feef6ec 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -385,6 +385,49 @@ Create a local staging version of the website (in /tmp/hadoop-site) Note that the site needs to be built in a second pass after other artifacts. +---------------------------------------------------------------------------------- +Including Cloud Connector Dependencies in Distributions: + +Hadoop distributions include the hadoop modules needed to work with data and services +on cloud infrastructure + +However, dependencies are omitted for all cloud connectors except hadoop-azure +(abfs:// and wasb://) and possibly hadoop-gcp (gs://) and hadoop-tos (tos://). +For the latter two modules, it depends on shading options. + +For hadoop-aws the AWS SDK bundle.jar is omitted, but everything else is included. + +Excluding the extra binaries: +* Keeps release artifact size below the limit of the ASF distribution network. +* Reduces download and size overhead in docker usage. +* Reduces the CVE attack surface and audit-related complaints about those same CVEs. +* Reduces the risk of classpath conflict. + +To produce a build with the specific desired dependencies, the build must be executed +with the relevant profile of ${module}-package alongside the -Pdist profile. + +For example, a build with the hadoop-aws and hadoop-azure-datalake dependencies, +run with + + mvn package -Pdist -DskipTests -Dhadoop-aws-package -Dhadoop-azure-datalake-package + +Available package profiles: + hadoop-aws-package + hadoop-azure-datalake-package + hadoop-cos-package + hadoop-huaweicloud-package + +To build a complete distribution then with all cloud dependencies included: + +mvn package -Pdist -DskipTests -Dtar -Dmaven.javadoc.skip=true \ + -Dhadoop-aliyun-package \ + -Dhadoop-aws-package \ + -Dhadoop-azure-datalake-package \ + -Dhadoop-cos-package \ + -Dhadoop-huaweicloud-package + +The resulting tar file will be too large to be distributable through ASF infrastructure. + ---------------------------------------------------------------------------------- Installing Hadoop diff --git a/LICENSE-binary b/LICENSE-binary index 5c09abd9c76a94..385515fd1f112f 100644 --- a/LICENSE-binary +++ b/LICENSE-binary @@ -203,7 +203,10 @@ -------------------------------------------------------------------------------- This project bundles some components that are also licensed under the Apache -License Version 2.0: +License Version 2.0. +Note: some of the listed artifacts may not be included in a given build of the binary +distribution; it depends on the build options. This list intends +to be inclusive of all which may be included: hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/nvd3-1.8.5.* (css and js files) @@ -211,10 +214,12 @@ hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/data hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/checker/TimeoutFuture.java ch.qos.reload4j:reload4j:1.2.22 +com.aliyun:aliyun-java-core:0.2.11-beta com.aliyun:aliyun-java-sdk-core:4.5.10 com.aliyun:aliyun-java-sdk-kms:2.11.0 com.aliyun:aliyun-java-sdk-ram:3.1.0 com.aliyun:aliyun-java-sdk-sts:3.0.0 +com.aliyun:java-trace-api:0.2.11-beta com.aliyun.oss:aliyun-sdk-oss:3.13.2 com.cedarsoftware:java-util:1.9.0 com.cedarsoftware:json-io:2.5.1 @@ -241,6 +246,8 @@ com.google.guava:guava:33.4.8-jre com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava com.microsoft.azure:azure-storage:7.0.0 com.nimbusds:nimbus-jose-jwt:10.4 +com.squareup.okhttp3:okhttp:jar:3.14.2 +com.squareup.okio:okio:jar:1.17.2 com.zaxxer:HikariCP:4.0.3 commons-beanutils:commons-beanutils:1.9.4 commons-cli:commons-cli:1.9.0 @@ -289,6 +296,9 @@ io.netty:netty-transport-native-kqueue:4.1.127.Final io.netty:netty-resolver-dns-native-macos:4.1.127.Final io.opencensus:opencensus-api:0.12.3 io.opencensus:opencensus-contrib-grpc-metrics:0.12.3 +io.opentracing:opentracing-api:0.33.0.jar +io.opentracing:opentracing-noop:0.33.0.jar +io.opentracing:opentracing-util:0.33.0.jar io.reactivex:rxjava:1.3.8 io.reactivex:rxjava-string:1.1.1 io.reactivex:rxnetty:0.4.20 @@ -316,6 +326,8 @@ org.apache.htrace:htrace-core:3.1.0-incubating org.apache.htrace:htrace-core4:4.1.0-incubating org.apache.httpcomponents:httpclient:4.5.13 org.apache.httpcomponents:httpcore:4.4.13 +org.apache.httpcomponents.client5:httpclient5:5.5 +org.apache.httpcomponents.core5:httpcore5:5.5 org.apache.kafka:kafka-clients:3.9.0 org.apache.kerby:kerb-admin:2.0.3 org.apache.kerby:kerb-client:2.0.3 @@ -432,6 +444,7 @@ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanage bootstrap v3.3.6 broccoli-asset-rev v2.4.2 broccoli-funnel v1.0.1 +cos_api-bundle-5.6.19.jar datatables v1.11.5 em-helpers v0.5.13 em-table v0.1.6 @@ -477,7 +490,7 @@ com.microsoft.azure:azure-cosmosdb:2.4.5 com.microsoft.azure:azure-cosmosdb-commons:2.4.5 com.microsoft.azure:azure-cosmosdb-direct:2.4.5 com.microsoft.azure:azure-cosmosdb-gateway:2.4.5 -com.microsoft.azure:azure-data-lake-store-sdk:2.3.3 +com.microsoft.azure:azure-data-lake-store-sdk:2.3.9 com.microsoft.azure:azure-keyvault-core:1.0.0 com.microsoft.sqlserver:mssql-jdbc:6.2.1.jre7 org.bouncycastle:bcpkix-jdk18on:1.82 @@ -536,3 +549,8 @@ Public Domain ------------- aopalliance:aopalliance:1.0 + +Dom4J license +------------- + +org.dom4j:dom4j:2.1.4.jar \ No newline at end of file diff --git a/dev-support/bin/dist-layout-stitching b/dev-support/bin/dist-layout-stitching index d4bfd8aaada3be..e19b2e4f1d6213 100755 --- a/dev-support/bin/dist-layout-stitching +++ b/dev-support/bin/dist-layout-stitching @@ -130,6 +130,10 @@ run cp -p "${ROOT}/README.txt" . run copy "${ROOT}/hadoop-common-project/hadoop-common/target/hadoop-common-${VERSION}" . run copy "${ROOT}/hadoop-common-project/hadoop-nfs/target/hadoop-nfs-${VERSION}" . run copy "${ROOT}/hadoop-common-project/hadoop-registry/target/hadoop-registry-${VERSION}" . + +# cloud connectors go into common +run copy "${ROOT}/hadoop-cloud-storage-project/hadoop-cloud-storage-dist/target/hadoop-cloud-storage-dist-${VERSION}" . + run copy "${ROOT}/hadoop-hdfs-project/hadoop-hdfs/target/hadoop-hdfs-${VERSION}" . run copy "${ROOT}/hadoop-hdfs-project/hadoop-hdfs-nfs/target/hadoop-hdfs-nfs-${VERSION}" . run copy "${ROOT}/hadoop-hdfs-project/hadoop-hdfs-client/target/hadoop-hdfs-client-${VERSION}" . diff --git a/hadoop-assemblies/src/main/resources/assemblies/hadoop-cloud-storage.xml b/hadoop-assemblies/src/main/resources/assemblies/hadoop-cloud-storage.xml new file mode 100644 index 00000000000000..3482edd3c8bc76 --- /dev/null +++ b/hadoop-assemblies/src/main/resources/assemblies/hadoop-cloud-storage.xml @@ -0,0 +1,59 @@ + + + hadoop-cloud-storage + + dir + + false + + + + + ../../hadoop-tools/hadoop-aws/src/main/bin + /bin + 0755 + + + ./../hadoop-tools/hadoop-aws/src/main/shellprofile.d + + * + + /libexec/shellprofile.d + 0755 + + + + + + /share/hadoop/common/lib + false + runtime + false + + + org.apache.hadoop:hadoop-annotations + org.apache.hadoop.thirdparty:hadoop-shaded-guava + + + + diff --git a/hadoop-assemblies/src/main/resources/assemblies/hadoop-src.xml b/hadoop-assemblies/src/main/resources/assemblies/hadoop-src.xml index 871694209393f9..7895f4e57142fd 100644 --- a/hadoop-assemblies/src/main/resources/assemblies/hadoop-src.xml +++ b/hadoop-assemblies/src/main/resources/assemblies/hadoop-src.xml @@ -57,6 +57,7 @@ **/file:/** **/SecurityAuth.audit* patchprocess/** + **/auth-keys.xml diff --git a/hadoop-cloud-storage-project/hadoop-cloud-storage-dist/pom.xml b/hadoop-cloud-storage-project/hadoop-cloud-storage-dist/pom.xml new file mode 100644 index 00000000000000..d28996ea68ed75 --- /dev/null +++ b/hadoop-cloud-storage-project/hadoop-cloud-storage-dist/pom.xml @@ -0,0 +1,281 @@ + + + + 4.0.0 + + org.apache.hadoop + hadoop-project + 3.4.3-SNAPSHOT + ../../hadoop-project + + hadoop-cloud-storage-dist + 3.4.3-SNAPSHOT + jar + + Apache Hadoop Cloud Storage Distribution + Apache Hadoop Cloud Storage Distribution + + + + cloud-storage + + + + + org.apache.hadoop + hadoop-annotations + provided + + + org.apache.hadoop + hadoop-common + provided + + + + + org.apache.hadoop + hadoop-aws + compile + + + software.amazon.awssdk + * + + + + + + org.apache.hadoop + hadoop-azure + compile + + + org.apache.hadoop + hadoop-azure-datalake + compile + + + * + * + + + + + org.apache.hadoop + hadoop-cos + compile + + + * + * + + + + + org.apache.hadoop + hadoop-huaweicloud + compile + + + * + * + + + + + + + + + maven-deploy-plugin + + true + + + + org.apache.rat + apache-rat-plugin + + + + + + + + + + + dist + + false + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + org.apache.hadoop + hadoop-assemblies + ${project.version} + + + + + dist + prepare-package + + single + + + false + false + ${project.artifactId}-${project.version} + + hadoop-cloud-storage + + + + + + + + + + + + hadoop-aliyun-package + + hadoop-aliyun-package + + + + org.apache.hadoop + hadoop-aliyun + compile + + + + + + + hadoop-aws-package + + hadoop-aws-package + + + + org.apache.hadoop + hadoop-aws + compile + + + + + + + hadoop-azure-datalake-package + + hadoop-azure-datalake-package + + + + org.apache.hadoop + hadoop-azure-datalake + compile + + + + + + + hadoop-cos-package + + hadoop-cos-package + + + + org.apache.hadoop + hadoop-cos + compile + + + + + + + hadoop-huaweicloud-package + + hadoop-huaweicloud-package + + + + org.apache.hadoop + hadoop-huaweicloud + compile + + + com.fasterxml.jackson + * + + + + + + + + diff --git a/hadoop-cloud-storage-project/hadoop-huaweicloud/pom.xml b/hadoop-cloud-storage-project/hadoop-huaweicloud/pom.xml index 3b7c81404a3f12..f7b648ae453317 100755 --- a/hadoop-cloud-storage-project/hadoop-huaweicloud/pom.xml +++ b/hadoop-cloud-storage-project/hadoop-huaweicloud/pom.xml @@ -169,6 +169,10 @@ log4j-api org.apache.logging.log4j + + com.fasterxml.jackson.core + * + diff --git a/hadoop-cloud-storage-project/hadoop-huaweicloud/src/main/resources/META-INF/services/org.apache.hadoop.fs.FileSystem b/hadoop-cloud-storage-project/hadoop-huaweicloud/src/main/resources/META-INF/services/org.apache.hadoop.fs.FileSystem deleted file mode 100644 index e77425ab52989b..00000000000000 --- a/hadoop-cloud-storage-project/hadoop-huaweicloud/src/main/resources/META-INF/services/org.apache.hadoop.fs.FileSystem +++ /dev/null @@ -1,16 +0,0 @@ -# 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. - -org.apache.hadoop.fs.obs.OBSFileSystem diff --git a/hadoop-cloud-storage-project/pom.xml b/hadoop-cloud-storage-project/pom.xml index 6e32bc22188ece..70904617036e10 100644 --- a/hadoop-cloud-storage-project/pom.xml +++ b/hadoop-cloud-storage-project/pom.xml @@ -34,7 +34,6 @@ hadoop-cos hadoop-huaweicloud - @@ -51,5 +50,18 @@ - + + + dist + + false + + tar + + + + hadoop-cloud-storage-dist + + + diff --git a/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml b/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml index 3e1351c3c88e5d..db548e1e692f1e 100644 --- a/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml +++ b/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml @@ -4438,4 +4438,10 @@ The switch to turn S3A auditing on or off. The AbstractFileSystem for Ozone FileSystem o3fs uri + + fs.obs.impl + org.apache.hadoop.fs.obs.OBSFileSystem + The FileSystem for obs: uris. + + diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestCommonConfigurationFields.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestCommonConfigurationFields.java index 210b36f2dbd1fc..c0e8b4690cb409 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestCommonConfigurationFields.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestCommonConfigurationFields.java @@ -250,5 +250,7 @@ public void initializeMemberVariables() { xmlPropsToSkipCompare.add("io.seqfile.local.dir"); xmlPropsToSkipCompare.add("hadoop.http.sni.host.check.enabled"); + + xmlPrefixToSkipCompare.add("fs.obs."); } } diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml index 65211d64daebcd..1850ca12219137 100644 --- a/hadoop-project/pom.xml +++ b/hadoop-project/pom.xml @@ -75,6 +75,8 @@ 4.5.13 4.4.13 + 5.5 + 5.3.6 1.7.36 @@ -840,6 +842,28 @@ httpcore ${httpcore.version} + + org.apache.httpcomponents.client5 + httpclient5 + ${httpclient5.version} + + + org.slf4j + * + + + + + org.apache.httpcomponents.core5 + httpcore5 + ${httpcore5.version} + + + org.apache.logging.log4j + * + + + commons-codec commons-codec diff --git a/hadoop-tools/hadoop-aws/src/main/resources/META-INF/services/org.apache.hadoop.fs.FileSystem b/hadoop-tools/hadoop-aws/src/main/resources/META-INF/services/org.apache.hadoop.fs.FileSystem deleted file mode 100644 index 1938bdefa4107e..00000000000000 --- a/hadoop-tools/hadoop-aws/src/main/resources/META-INF/services/org.apache.hadoop.fs.FileSystem +++ /dev/null @@ -1,16 +0,0 @@ -# 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. - -org.apache.hadoop.fs.s3native.NativeS3FileSystem diff --git a/hadoop-tools/hadoop-tools-dist/pom.xml b/hadoop-tools/hadoop-tools-dist/pom.xml index 2f064d82401dc5..1da0df465cac6c 100644 --- a/hadoop-tools/hadoop-tools-dist/pom.xml +++ b/hadoop-tools/hadoop-tools-dist/pom.xml @@ -92,30 +92,12 @@ pom ${project.version} - - org.apache.hadoop - hadoop-aws - compile - ${project.version} - org.apache.hadoop hadoop-kafka compile ${project.version} - - org.apache.hadoop - hadoop-azure - compile - ${project.version} - - - org.apache.hadoop - hadoop-aliyun - compile - ${project.version} - org.apache.hadoop hadoop-sls @@ -127,12 +109,6 @@ ${project.version} compile - - org.apache.hadoop - hadoop-azure-datalake - compile - ${project.version} - org.apache.hadoop hadoop-fs2img From 72eabfdf742e78b43128dc7ffa866d6a74d6bd02 Mon Sep 17 00:00:00 2001 From: Steve Loughran Date: Thu, 20 Nov 2025 19:46:11 +0000 Subject: [PATCH 2/3] HADOOP-19696. restore hadoop-aliyun-package to docs --- BUILDING.txt | 1 + hadoop-cloud-storage-project/hadoop-cloud-storage-dist/pom.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/BUILDING.txt b/BUILDING.txt index 2aca399feef6ec..173cc0bcad49eb 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -412,6 +412,7 @@ run with mvn package -Pdist -DskipTests -Dhadoop-aws-package -Dhadoop-azure-datalake-package Available package profiles: + hadoop-aliyun-package hadoop-aws-package hadoop-azure-datalake-package hadoop-cos-package diff --git a/hadoop-cloud-storage-project/hadoop-cloud-storage-dist/pom.xml b/hadoop-cloud-storage-project/hadoop-cloud-storage-dist/pom.xml index d28996ea68ed75..10bfdeb6f0b424 100644 --- a/hadoop-cloud-storage-project/hadoop-cloud-storage-dist/pom.xml +++ b/hadoop-cloud-storage-project/hadoop-cloud-storage-dist/pom.xml @@ -53,6 +53,7 @@ build with -Dhadoop-aws-package -Dhadoop-azure-datalake-package Available package profiles: + hadoop-aliyun-package hadoop-aws-package hadoop-azure-datalake-package hadoop-cos-package From a91a846c9ef8f273773250793bedab7502c1c8c4 Mon Sep 17 00:00:00 2001 From: Steve Loughran Date: Fri, 21 Nov 2025 10:11:25 +0000 Subject: [PATCH 3/3] HADOOP-19696. Followup: Li2cense spelling in assembly xml files Replace all uses of the word "Li2cense" with "License" in hadoop-assemblies --- .../src/main/resources/assemblies/hadoop-cloud-storage.xml | 2 +- .../src/main/resources/assemblies/hadoop-dynamometer.xml | 2 +- .../src/main/resources/assemblies/hadoop-tools.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hadoop-assemblies/src/main/resources/assemblies/hadoop-cloud-storage.xml b/hadoop-assemblies/src/main/resources/assemblies/hadoop-cloud-storage.xml index 3482edd3c8bc76..03f62dcb4b8ab5 100644 --- a/hadoop-assemblies/src/main/resources/assemblies/hadoop-cloud-storage.xml +++ b/hadoop-assemblies/src/main/resources/assemblies/hadoop-cloud-storage.xml @@ -9,7 +9,7 @@ https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the Li2cense is distributed on an "AS IS" BASIS, + 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. diff --git a/hadoop-assemblies/src/main/resources/assemblies/hadoop-dynamometer.xml b/hadoop-assemblies/src/main/resources/assemblies/hadoop-dynamometer.xml index b2ce562231c5ad..508faa9c85ec22 100644 --- a/hadoop-assemblies/src/main/resources/assemblies/hadoop-dynamometer.xml +++ b/hadoop-assemblies/src/main/resources/assemblies/hadoop-dynamometer.xml @@ -9,7 +9,7 @@ http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the Li2cense is distributed on an "AS IS" BASIS, + 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. diff --git a/hadoop-assemblies/src/main/resources/assemblies/hadoop-tools.xml b/hadoop-assemblies/src/main/resources/assemblies/hadoop-tools.xml index c01d9c4282089e..4276820a7b8228 100644 --- a/hadoop-assemblies/src/main/resources/assemblies/hadoop-tools.xml +++ b/hadoop-assemblies/src/main/resources/assemblies/hadoop-tools.xml @@ -9,7 +9,7 @@ http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the Li2cense is distributed on an "AS IS" BASIS, + 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.