Skip to content

Commit 9849afb

Browse files
authored
Merge branch 'trunk' into HADOOP-19415-PART7
2 parents 6378ad6 + a21927a commit 9849afb

File tree

320 files changed

+7007
-5524
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

320 files changed

+7007
-5524
lines changed

BUILDING.txt

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@ This requires a recent version of docker (1.4.1 and higher are known to work).
2929
On Linux / Mac:
3030
Install Docker and run this command:
3131

32-
$ ./start-build-env.sh
32+
$ ./start-build-env.sh [OS platform]
33+
34+
- [OS Platform] One of [centos_7, centos_8, debian_10, ubuntu_20, ubuntu_24, windows_10].
35+
Default is 'ubuntu_20'.
36+
Note: Currently only default ('ubuntu_20') is supported on arm machine
3337

3438
The prompt which is then presented is located at a mounted version of the source tree
3539
and all required tools for testing and building have been installed and configured.
@@ -593,18 +597,16 @@ configure the bit-ness of the build, and set several optional components.
593597
Several tests require that the user must have the Create Symbolic Links
594598
privilege.
595599

596-
To simplify the installation of Boost, Protocol buffers, OpenSSL and Zlib dependencies we can use
597-
vcpkg (https://github.com/Microsoft/vcpkg.git). Upon cloning the vcpkg repo, checkout the commit
598-
7ffa425e1db8b0c3edf9c50f2f3a0f25a324541d to get the required versions of the dependencies
599-
mentioned above.
600-
> git clone https://github.com/Microsoft/vcpkg.git
600+
We use vcpkg (https://github.com/microsoft/vcpkg.git) for installing Boost, Protocol buffers,
601+
OpenSSL and Zlib dependencies. Run the following commands to setup these dependencies.
602+
> git clone https://github.com/microsoft/vcpkg.git
601603
> cd vcpkg
602-
> git checkout 7ffa425e1db8b0c3edf9c50f2f3a0f25a324541d
604+
> git fetch --all
605+
> git checkout 2025.03.19
603606
> .\bootstrap-vcpkg.bat
604-
> .\vcpkg.exe install boost:x64-windows
605-
> .\vcpkg.exe install protobuf:x64-windows
606-
> .\vcpkg.exe install openssl:x64-windows
607-
> .\vcpkg.exe install zlib:x64-windows
607+
(Assuming that vcpkg was checked out at C:\vcpkg and Hadoop at C:\hadoop)
608+
> copy C:\hadoop\dev-support\docker\vcpkg\vcpkg.json C:\vcpkg
609+
> .\vcpkg.exe install --x-install-root .\installed
608610

609611
Set the following environment variables -
610612
(Assuming that vcpkg was checked out at C:\vcpkg)

LICENSE-binary

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,7 @@ org.glassfish.jersey.core:jersey-server:2.46
536536
org.glassfish.jersey.inject:jersey-hk2:2.46
537537
org.glassfish.jersey.core:jersey-client:2.46
538538
org.glassfish.jersey.test-framework:jersey-test-framework-core:2.46
539-
org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:2.46
539+
org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jetty:2.46
540540
org.glassfish.jersey.containers:jersey-container-servlet:2.46
541541
org.glassfish.jersey.containers:jersey-container-servlet-core:2.46
542542
org.glassfish.jersey.media:jersey-media-json-jettison:2.46

dev-support/docker/Dockerfile_aarch64

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ RUN chmod a+x pkg-resolver/*.sh pkg-resolver/*.py \
4646
RUN apt-get -q update \
4747
&& apt-get -q install -y --no-install-recommends wget apt-transport-https gpg gpg-agent gawk ca-certificates \
4848
&& apt-get -q install -y --no-install-recommends python3 \
49+
&& apt-get -q install -y --no-install-recommends phantomjs \
4950
&& echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" > /etc/apt/sources.list.d/adoptium.list \
5051
&& wget -q -O - https://packages.adoptium.net/artifactory/api/gpg/key/public > /etc/apt/trusted.gpg.d/adoptium.asc \
5152
&& apt-get -q update \
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
# Dockerfile for installing the necessary dependencies for building Hadoop.
18+
# See BUILDING.txt.
19+
20+
FROM ubuntu:noble
21+
22+
WORKDIR /root
23+
24+
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
25+
26+
#####
27+
# Disable suggests/recommends
28+
#####
29+
RUN echo APT::Install-Recommends "0"\; > /etc/apt/apt.conf.d/10disableextras
30+
RUN echo APT::Install-Suggests "0"\; >> /etc/apt/apt.conf.d/10disableextras
31+
32+
ENV DEBIAN_FRONTEND noninteractive
33+
ENV DEBCONF_TERSE true
34+
35+
######
36+
# Platform package dependency resolver
37+
######
38+
COPY pkg-resolver pkg-resolver
39+
RUN chmod a+x pkg-resolver/*.sh pkg-resolver/*.py \
40+
&& chmod a+r pkg-resolver/*.json
41+
42+
######
43+
# Install packages from apt
44+
######
45+
# hadolint ignore=DL3008,SC2046
46+
RUN apt-get -q update \
47+
&& apt-get -q install -y --no-install-recommends wget apt-transport-https gpg gpg-agent gawk ca-certificates \
48+
&& apt-get -q install -y --no-install-recommends python3 \
49+
&& echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" > /etc/apt/sources.list.d/adoptium.list \
50+
&& wget -q -O - https://packages.adoptium.net/artifactory/api/gpg/key/public > /etc/apt/trusted.gpg.d/adoptium.asc \
51+
&& apt-get -q update \
52+
&& apt-get -q install -y --no-install-recommends $(pkg-resolver/resolve.py ubuntu:noble) \
53+
&& apt-get clean \
54+
&& update-java-alternatives -s java-1.17.0-openjdk-amd64 \
55+
&& rm -rf /var/lib/apt/lists/*
56+
57+
RUN locale-gen en_US.UTF-8
58+
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
59+
ENV PYTHONIOENCODING=utf-8
60+
61+
######
62+
# Set env vars required to build Hadoop
63+
######
64+
ENV MAVEN_HOME /usr
65+
# JAVA_HOME must be set in Maven >= 3.5.0 (MNG-6003)
66+
ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64
67+
68+
#######
69+
# Set env vars for SpotBugs 4.2.2
70+
#######
71+
ENV SPOTBUGS_HOME /opt/spotbugs
72+
73+
#######
74+
# Set env vars for Google Protobuf 3.21.12
75+
#######
76+
ENV PROTOBUF_HOME /opt/protobuf
77+
ENV PATH "${PATH}:/opt/protobuf/bin"
78+
79+
###
80+
# Avoid out of memory errors in builds
81+
###
82+
ENV MAVEN_OPTS -Xms256m -Xmx3072m
83+
84+
# Skip gpg verification when downloading Yetus via yetus-wrapper
85+
ENV HADOOP_SKIP_YETUS_VERIFICATION true
86+
87+
####
88+
# Install packages
89+
####
90+
RUN pkg-resolver/install-spotbugs.sh ubuntu:noble
91+
RUN pkg-resolver/install-boost.sh ubuntu:noble
92+
RUN pkg-resolver/install-protobuf.sh ubuntu:noble
93+
RUN pkg-resolver/install-hadolint.sh ubuntu:noble
94+
RUN pkg-resolver/install-intel-isa-l.sh ubuntu:noble
95+
96+
###
97+
# Everything past this point is either not needed for testing or breaks Yetus.
98+
# So tell Yetus not to read the rest of the file:
99+
# YETUS CUT HERE
100+
###
101+
102+
# Add a welcome message and environment checks.
103+
COPY hadoop_env_checks.sh /root/hadoop_env_checks.sh
104+
RUN chmod 755 /root/hadoop_env_checks.sh
105+
# hadolint ignore=SC2016
106+
RUN echo '${HOME}/hadoop_env_checks.sh' >> /root/.bashrc

dev-support/docker/Dockerfile_windows_10

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,16 +75,16 @@ RUN powershell Expand-Archive -Path $Env:TEMP\zstd-v1.5.4-win64.zip -Destination
7575
RUN setx PATH "%PATH%;C:\ZStd"
7676

7777
# Install libopenssl 3.1.1 needed for rsync 3.2.7.
78-
RUN powershell Invoke-WebRequest -Uri https://repo.msys2.org/msys/x86_64/libopenssl-3.1.1-1-x86_64.pkg.tar.zst -OutFile $Env:TEMP\libopenssl-3.1.1-1-x86_64.pkg.tar.zst
79-
RUN powershell zstd -d $Env:TEMP\libopenssl-3.1.1-1-x86_64.pkg.tar.zst -o $Env:TEMP\libopenssl-3.1.1-1-x86_64.pkg.tar
78+
RUN powershell Invoke-WebRequest -Uri https://repo.msys2.org/msys/x86_64/libopenssl-3.1.2-1-x86_64.pkg.tar.zst -OutFile $Env:TEMP\libopenssl-3.1.2-1-x86_64.pkg.tar.zst
79+
RUN powershell zstd -d $Env:TEMP\libopenssl-3.1.2-1-x86_64.pkg.tar.zst -o $Env:TEMP\libopenssl-3.1.1-1-x86_64.pkg.tar
8080
RUN powershell mkdir "C:\LibOpenSSL"
8181
RUN powershell tar -xvf $Env:TEMP\libopenssl-3.1.1-1-x86_64.pkg.tar -C "C:\LibOpenSSL"
8282

83-
# Install libxxhash 0.8.1 needed for rsync 3.2.7.
84-
RUN powershell Invoke-WebRequest -Uri https://repo.msys2.org/msys/x86_64/libxxhash-0.8.1-1-x86_64.pkg.tar.zst -OutFile $Env:TEMP\libxxhash-0.8.1-1-x86_64.pkg.tar.zst
85-
RUN powershell zstd -d $Env:TEMP\libxxhash-0.8.1-1-x86_64.pkg.tar.zst -o $Env:TEMP\libxxhash-0.8.1-1-x86_64.pkg.tar
83+
# Install libxxhash 0.8.3 needed for rsync 3.2.7.
84+
RUN powershell Invoke-WebRequest -Uri https://repo.msys2.org/msys/x86_64/libxxhash-0.8.3-1-x86_64.pkg.tar.zst -OutFile $Env:TEMP\libxxhash-0.8.3-1-x86_64.pkg.tar.zst
85+
RUN powershell zstd -d $Env:TEMP\libxxhash-0.8.3-1-x86_64.pkg.tar.zst -o $Env:TEMP\libxxhash-0.8.3-1-x86_64.pkg.tar
8686
RUN powershell mkdir "C:\LibXXHash"
87-
RUN powershell tar -xvf $Env:TEMP\libxxhash-0.8.1-1-x86_64.pkg.tar -C "C:\LibXXHash"
87+
RUN powershell tar -xvf $Env:TEMP\libxxhash-0.8.3-1-x86_64.pkg.tar -C "C:\LibXXHash"
8888

8989
# Install libzstd 1.5.4 needed for rsync 3.2.7.
9090
RUN powershell Invoke-WebRequest -Uri https://repo.msys2.org/msys/x86_64/libzstd-1.5.5-1-x86_64.pkg.tar.zst -OutFile $Env:TEMP\libzstd-1.5.5-1-x86_64.pkg.tar.zst

0 commit comments

Comments
 (0)