Skip to content

Conversation

@pan3793
Copy link
Member

@pan3793 pan3793 commented Sep 1, 2025

Description of PR

I saw that some contributors have started adding riscv64 support. Currently, Hadoop neither has riscv64 CI pipeline nor a dev container, the reviewers are not easy to verify the patch on x86_64 or aarch64 platforms.

This PR proposes to leverage Docker's cross-platform capability to allow running standard dev containers on x86_64 or aarch64 platforms.

Note: this requires upgrading protobuf to 3.25.5 first, see HADOOP-19605.

How was this patch tested?

I'm using a MacBook Pro with an M1 Max chip.

$ uname -a
Darwin H27212-MAC-01.local 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:29 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6000 arm64
$ docker --version
Docker version 28.3.3, build 980b856

Launch Hadoop dev container

$ docker run --rm --privileged tonistiigi/binfmt --install riscv64
$ CPU_ARCH=riscv64 ./start-build-env.sh ubuntu_24
...
 => => naming to docker.io/library/hadoop-build_ubuntu_24-501                                                                                                                                                    0.0s

 _   _           _                    ______
| | | |         | |                   |  _  \
| |_| | __ _  __| | ___   ___  _ __   | | | |_____   __
|  _  |/ _` |/ _` |/ _ \ / _ \| '_ \  | | | / _ \ \ / /
| | | | (_| | (_| | (_) | (_) | |_) | | |/ /  __/\ V /
\_| |_/\__,_|\__,_|\___/ \___/| .__/  |___/ \___| \_(_)
                              | |
                              |_|

This is the standard Hadoop Developer build environment.
This has all the right tools installed required to build
Hadoop from source.


You must install 'com.google.protobuf:protoc:exe:linux-riscv64:3.25.5'
into maven local repository (~/.m2) manually on riscv64 platform.

  mvn install:install-file \
    -DgroupId=com.google.protobuf \
    -DartifactId=protoc \
    -Dversion=3.25.5 \
    -Dclassifier=linux-riscv64 \
    -Dpackaging=exe \
    -Dfile=/opt/protobuf/bin/protoc

chengpan@65fadd843df5:~/hadoop$

Successfully building hadoop common modules, there are some issues that need to be fixed independently

$ mvn clean install -DskipTests -Pnative -pl :hadoop-common -am

For code changes:

  • Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
  • Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

@pan3793 pan3793 changed the title WIP. Provide hadoop dev contianer image for riscv64 WIP. Provide hadoop dev contianer Dockerfile for riscv64 Sep 1, 2025
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 20s #7924 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #7924
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7924/1/console
versions git=2.34.1
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 20s #7924 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #7924
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7924/2/console
versions git=2.34.1
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 23m 51s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 hadolint 0m 1s hadolint was not available.
+0 🆗 shellcheck 0m 1s Shellcheck was not available.
+0 🆗 shelldocs 0m 1s Shelldocs was not available.
+0 🆗 jsonlint 0m 1s jsonlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-1 ❌ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
+0 🆗 mvndep 8m 59s Maven dependency ordering for branch
+1 💚 mvninstall 34m 15s trunk passed
+1 💚 compile 15m 1s trunk passed
+1 💚 mvnsite 23m 1s trunk passed
+1 💚 javadoc 8m 40s trunk passed
+1 💚 shadedclient 43m 40s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 44s Maven dependency ordering for patch
+1 💚 mvninstall 33m 47s the patch passed
+1 💚 compile 15m 15s the patch passed
+1 💚 javac 15m 15s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 mvnsite 20m 54s the patch passed
+1 💚 xmllint 0m 0s No new issues.
+1 💚 javadoc 8m 39s the patch passed
+1 💚 shadedclient 45m 32s patch has no errors when building and testing our client artifacts.
_ Other Tests _
-1 ❌ unit 281m 56s /patch-unit-root.txt root in the patch failed.
+1 💚 asflicense 2m 7s The patch does not generate ASF License warnings.
552m 43s
Subsystem Report/Notes
Docker ClientAPI=1.51 ServerAPI=1.51 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7924/3/artifact/out/Dockerfile
GITHUB PR #7924
Optional Tests dupname asflicense codespell detsecrets hadolint shellcheck shelldocs mvnsite unit jsonlint compile javac javadoc mvninstall shadedclient xmllint
uname Linux 9fe6ab1adc90 5.15.0-152-generic #162-Ubuntu SMP Wed Jul 23 09:48:42 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 2a46d9c
Default Java Red Hat, Inc.-1.8.0_462-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7924/3/testReport/
Max. process+thread count 3054 (vs. ulimit of 5500)
modules C: hadoop-common-project/hadoop-common . U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7924/3/console
versions git=2.43.7 maven=3.6.3 xmllint=20907
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 6m 28s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 hadolint 0m 0s hadolint was not available.
+0 🆗 shellcheck 0m 0s Shellcheck was not available.
+0 🆗 shelldocs 0m 0s Shelldocs was not available.
+0 🆗 jsonlint 0m 0s jsonlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-1 ❌ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
+0 🆗 mvndep 9m 2s Maven dependency ordering for branch
+1 💚 mvninstall 33m 2s trunk passed
+1 💚 compile 15m 26s trunk passed
+1 💚 mvnsite 23m 52s trunk passed
+1 💚 javadoc 8m 41s trunk passed
+1 💚 shadedclient 43m 46s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 44s Maven dependency ordering for patch
+1 💚 mvninstall 33m 54s the patch passed
+1 💚 compile 14m 52s the patch passed
+1 💚 javac 14m 52s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 mvnsite 20m 50s the patch passed
+1 💚 xmllint 0m 0s No new issues.
+1 💚 javadoc 8m 43s the patch passed
+1 💚 shadedclient 45m 41s patch has no errors when building and testing our client artifacts.
_ Other Tests _
-1 ❌ unit 283m 35s /patch-unit-root.txt root in the patch failed.
+1 💚 asflicense 1m 59s The patch does not generate ASF License warnings.
536m 50s
Subsystem Report/Notes
Docker ClientAPI=1.51 ServerAPI=1.51 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7924/4/artifact/out/Dockerfile
GITHUB PR #7924
Optional Tests dupname asflicense codespell detsecrets hadolint shellcheck shelldocs mvnsite unit jsonlint compile javac javadoc mvninstall shadedclient xmllint
uname Linux ade2e85f94f5 5.15.0-152-generic #162-Ubuntu SMP Wed Jul 23 09:48:42 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 2a46d9c
Default Java Red Hat, Inc.-1.8.0_462-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7924/4/testReport/
Max. process+thread count 3816 (vs. ulimit of 5500)
modules C: hadoop-common-project/hadoop-common . U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7924/4/console
versions git=2.43.7 maven=3.6.3 xmllint=20907
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@slfan1989
Copy link
Contributor

@pan3793 From my personal -1, please do not add such mirrors as there is no dedicated personnel for maintenance, and this has already been discussed.

cc: @ayushtkn @steveloughran

@steveloughran
Copy link
Contributor

can we at least do the protobuf move; I will start a thirdparty release

@slfan1989
Copy link
Contributor

can we at least do the protobuf move; I will start a thirdparty release

I respect Steve’s opinion on this PR. If he gives a +1, I’ll also add my +1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants