Skip to content

HDFS-11161. Incorporate Baidu BOS file system implementation.#8347

Open
yangdong2398 wants to merge 1 commit intoapache:trunkfrom
yangdong2398:HDFS-11161-hadoop-bos-clean
Open

HDFS-11161. Incorporate Baidu BOS file system implementation.#8347
yangdong2398 wants to merge 1 commit intoapache:trunkfrom
yangdong2398:HDFS-11161-hadoop-bos-clean

Conversation

@yangdong2398
Copy link

Description of PR

JIRA: https://issues.apache.org/jira/browse/HDFS-11161

Add hadoop-bos module to hadoop-cloud-storage-project providing Baidu Object Storage (BOS) FileSystem implementation using the bos:// URI scheme.

Key features:

  • BaiduBosFileSystem: core Hadoop FileSystem implementation for BOS
  • Support for both flat and hierarchical namespace modes
  • Multipart upload for large files
  • CRC32C checksum compatible with HDFS for DistCp
  • Pluggable credential providers (configuration-based and environment-variable-based)
  • Hadoop FileSystem contract tests
  • Shaded BOS SDK and transitive dependencies (jackson, httpcomponents, guava, commons-logging, commons-lang, commons-codec) under bfs.* prefix to avoid classpath conflicts

Build integration:

  • Integrated into hadoop-project/pom.xml (dependency management), hadoop-cloud-storage-project/pom.xml (module), hadoop-cloud-storage/pom.xml (umbrella dependency), hadoop-cloud-storage-dist/pom.xml (dist packaging)
  • Standard core-site.xml + XInclude auth-keys.xml test credential pattern
  • tests-off/tests-on profiles to auto-skip tests when credentials are absent

How was this patch tested?

  • Unit test: TestConfigurationCredentialsProvider validates credential provider loading from Hadoop configuration
  • Contract tests: Full set of Hadoop FileSystem contract tests (TestBosContractCreate, TestBosContractDelete, TestBosContractRename, TestBosContractSeek, etc.) — require valid BOS credentials in auth-keys.xml
  • CI: Apache Yetus pre-commit checks pass (compile, javadoc JDK 17/21, SpotBugs, checkstyle, ASF license, whitespace)

Dependencies and Licensing

All new dependencies (Baidu BOS SDK) and transitive dependencies are properly shaded under bfs.* prefix. BOS SDK is under Apache License 2.0, compatible with ASF 2.0 license requirements. No changes required to LICENSE, LICENSE-binary, or NOTICE-binary files as dependencies are shaded and not exposed in distribution.

Add hadoop-bos module to hadoop-cloud-storage-project providing Baidu
Object Storage (BOS) FileSystem implementation using the bos:// URI
scheme.

The module includes:
- BaiduBosFileSystem: core FileSystem implementation for BOS
- Support for both flat and hierarchical namespace modes
- Multipart upload for large files
- CRC32C checksum compatible with HDFS for DistCp
- Pluggable credential providers (configuration-based and env-variable-based)
- Hadoop FileSystem contract tests
- Shaded BOS SDK and transitive dependencies (jackson, httpcomponents,
  guava, commons-logging, commons-lang, commons-codec) under bfs.* prefix
  to avoid classpath conflicts
- Integration into hadoop-project, hadoop-cloud-storage, and
  hadoop-cloud-storage-dist parent POMs
- Standard core-site.xml + XInclude auth-keys.xml test credential pattern
- tests-off/tests-on profiles to auto-skip tests when credentials absent

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 13m 29s 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 🆗 xmllint 0m 1s xmllint was not available.
+0 🆗 markdownlint 0m 0s markdownlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 21 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 2m 26s Maven dependency ordering for branch
+1 💚 mvninstall 43m 19s trunk passed
+1 💚 compile 17m 7s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 compile 17m 9s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 checkstyle 5m 26s trunk passed
+1 💚 mvnsite 3m 37s trunk passed
+1 💚 javadoc 3m 28s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 3m 31s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+0 🆗 spotbugs 0m 51s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+0 🆗 spotbugs 0m 50s branch/hadoop-cloud-storage-project/hadoop-cloud-storage no spotbugs output file (spotbugsXml.xml)
+0 🆗 spotbugs 0m 50s branch/hadoop-cloud-storage-project/hadoop-cloud-storage-dist no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 28m 14s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 32s Maven dependency ordering for patch
+1 💚 mvninstall 6m 26s the patch passed
+1 💚 compile 15m 6s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javac 15m 6s the patch passed
+1 💚 compile 16m 27s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 javac 16m 27s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 5m 20s /results-checkstyle-root.txt root: The patch generated 42 new + 0 unchanged - 0 fixed = 42 total (was 0)
+1 💚 mvnsite 4m 35s the patch passed
+1 💚 javadoc 4m 30s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 4m 33s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+0 🆗 spotbugs 0m 47s hadoop-project has no data from spotbugs
+0 🆗 spotbugs 0m 50s hadoop-cloud-storage-project/hadoop-cloud-storage has no data from spotbugs
+0 🆗 spotbugs 0m 50s hadoop-cloud-storage-project/hadoop-cloud-storage-dist has no data from spotbugs
+1 💚 shadedclient 28m 23s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 48s hadoop-project in the patch passed.
+1 💚 unit 0m 53s hadoop-bos in the patch passed.
+1 💚 unit 2m 20s hadoop-cloud-storage-project in the patch passed.
+1 💚 unit 0m 48s hadoop-cloud-storage in the patch passed.
+1 💚 unit 0m 47s hadoop-cloud-storage-dist in the patch passed.
+1 💚 asflicense 1m 14s The patch does not generate ASF License warnings.
250m 25s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8347/1/artifact/out/Dockerfile
GITHUB PR #8347
Optional Tests dupname asflicense codespell detsecrets xmllint compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle markdownlint
uname Linux 2766637407e5 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / afb04c0
Default Java Ubuntu-17.0.18+8-Ubuntu-124.04.1
Multi-JDK versions /usr/lib/jvm/java-21-openjdk-amd64:Ubuntu-21.0.10+7-Ubuntu-124.04 /usr/lib/jvm/java-17-openjdk-amd64:Ubuntu-17.0.18+8-Ubuntu-124.04.1
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8347/1/testReport/
Max. process+thread count 638 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-cloud-storage-project/hadoop-bos hadoop-cloud-storage-project hadoop-cloud-storage-project/hadoop-cloud-storage hadoop-cloud-storage-project/hadoop-cloud-storage-dist U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8347/1/console
versions git=2.43.0 maven=3.9.11 spotbugs=4.9.7
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

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.

2 participants