Skip to content

HADOOP-19778. [ABFS] Removing Deprecated Wasb Code#8207

Open
anujmodi2021 wants to merge 7 commits intoapache:trunkfrom
ABFSDriver:HADOOP-19778
Open

HADOOP-19778. [ABFS] Removing Deprecated Wasb Code#8207
anujmodi2021 wants to merge 7 commits intoapache:trunkfrom
ABFSDriver:HADOOP-19778

Conversation

@anujmodi2021
Copy link
Contributor

@anujmodi2021 anujmodi2021 commented Jan 23, 2026

JIRA: https://issues.apache.org/jira/browse/HADOOP-19778

Description of PR

WASB Driver has been deprecated.
Correspondinf support for FNS accounts using Blob Endpoint APIs is added to ABFS Driver itself.

ABFS driver for FNS account is more robust, performant and TPS Optimized as compared to WASB.
Moving ahead ABFS Driver will be the only supported hadoop connector for ADLS Gen 2 accounts (HNS and FNS).

To reduce maintainance overhead, we propose to remove WASB Driver code completely.

How was this patch tested

New tests added to make sure any attempt to use WASB fails with relevant message.

@anujmodi2021 anujmodi2021 marked this pull request as ready for review January 23, 2026 15:30
Copy link
Contributor

@cnauroth cnauroth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm in favor of removal for 3.5.0. I'd like at least one other committer to chime in though, as I'm no longer actively using any of the Azure FileSystems.

Will the strategy here be to remove the module entirely, or leave behind an empty placeholder module like in hadoop-openstack/pom.xml? Either way, I think the PR likely needs some additional pom.xml changes.

Pre-submit infrastructure appears to be very unhealthy at the moment. The automatic run failed, and when I retried, it failed for the same reason:

hudson.remoting.ProxyException: java.nio.file.FileSystemException: /home/jenkins/jenkins-agent/workspace/hadoop-multibranch_PR-8207: Read-only file system

Copy link
Contributor

@cnauroth cnauroth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two more thoughts:

  1. You probably want to remove the documentation too (and clean up links to that documentation).
  2. Can you please edit the release note field in HADOOP-19778 to mention the removal, as it will be a backward-incompatible change?

@github-actions github-actions bot added the build label Jan 27, 2026
@anujmodi2021
Copy link
Contributor Author

Hi @cnauroth
Thanks for your valuable review and suggestions.

Regarding the strategy here, we are going to keep a placeholder implementation of WASB File System for any user using "wasb(s)://" schema. There is no separate pom for wasb alone, it is shared with ABFS So pom will continue to live but with settings only relevant to ABFS.

As per your suggestion I have updated the documentation and sites to refelct this change.
Also updated the release note in JIRA.

@anujmodi2021
Copy link
Contributor Author

Hi @steveloughran
I would request your kind review on this patch.

Thanks for all the efforts

createPermissionStatus(FsPermission.getDefault()));
}
public static final String ERROR_MESSAGE =
"WASB Driver using wasb(s) schema is No longer Supported. "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upper Case fix: is no longer supported

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taken

}
}
public NativeAzureFileSystem() {
// set store in initialize()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this comment is redundant, we can remove this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taken

workingDir = makeAbsolute(newDir);
public void initialize(URI uri, Configuration conf)
throws IOException, IllegalArgumentException {
throw new IllegalArgumentException(ERROR_MESSAGE);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of IllegalArgumentException, should we use UnsupportedOperationException?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taken

} else {
store.changePermissionStatus(key, newPermissionStatus);
}
return null;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we throw an error instead of just returning null at all places? With null we are suppressing the exception.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taken


org.apache.hadoop.fs.azurebfs.security.AbfsDelegationTokenIdentifier
org.apache.hadoop.fs.azure.security.WasbDelegationTokenIdentifier No newline at end of file
org.apache.hadoop.fs.azurebfs.security.AbfsDelegationTokenIdentifier No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EOL

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taken


org.apache.hadoop.fs.azurebfs.security.AbfsTokenRenewer
org.apache.hadoop.fs.azure.security.WasbTokenRenewer No newline at end of file
org.apache.hadoop.fs.azurebfs.security.AbfsTokenRenewer No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EOL

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taken

@@ -107,69 +107,6 @@ public void testBasicRead() throws Exception {
}
}

/**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why would we remove this test ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was using WASB Client. Without wasb client there is nothing left in this test to assert

+ FS_AZURE_SCALE_TEST_ENABLED,
enabled);
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EOF

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taken

public Path getWorkingDirectory() {
return workingDir;
public String getScheme() {
return "wasb";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can come from a constant

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taken


# Azure Blob Storage Support by Deprecated WASB Driver

### WASB Driver has been deprecated and removed from official hadoop releases starting from hadoop-3.5.0.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can remove this file fully.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taken

+ FS_AZURE_SCALE_TEST_ENABLED,
enabled);
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: EOL

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taken

big data analytics, built on top of Azure Blob Storage. The ABFS and ABFSS
schemes target the ADLS Gen 2 REST API now having support for both HNS and FNS Accounts.
ADLS Gen 2 with HNS Enabled using DFS Endpoint offers better performance and
scalability. ADLS Gen 2 also offers authentication and authorization compatible
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: double space

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taken

@anujmodi2021
Copy link
Contributor Author

============================================================
HNS-OAuth-DFS

[WARNING] Tests run: 228, Failures: 0, Errors: 0, Skipped: 2
[WARNING] Tests run: 859, Failures: 0, Errors: 0, Skipped: 173
[WARNING] Tests run: 158, Failures: 0, Errors: 0, Skipped: 8
[WARNING] Tests run: 271, Failures: 0, Errors: 0, Skipped: 23

============================================================
HNS-SharedKey-DFS

[WARNING] Tests run: 228, Failures: 0, Errors: 0, Skipped: 3
[WARNING] Tests run: 862, Failures: 0, Errors: 0, Skipped: 119
[WARNING] Tests run: 158, Failures: 0, Errors: 0, Skipped: 8
[WARNING] Tests run: 271, Failures: 0, Errors: 0, Skipped: 10

============================================================
AppendBlob-HNS-OAuth-DFS

[WARNING] Tests run: 228, Failures: 0, Errors: 0, Skipped: 2
[WARNING] Tests run: 859, Failures: 0, Errors: 0, Skipped: 184
[WARNING] Tests run: 135, Failures: 0, Errors: 0, Skipped: 9
[WARNING] Tests run: 271, Failures: 0, Errors: 0, Skipped: 23

============================================================
NonHNS-SharedKey-Blob

[WARNING] Tests run: 228, Failures: 0, Errors: 0, Skipped: 9
[WARNING] Tests run: 709, Failures: 0, Errors: 0, Skipped: 143
[WARNING] Tests run: 158, Failures: 0, Errors: 0, Skipped: 3
[WARNING] Tests run: 271, Failures: 0, Errors: 0, Skipped: 11

============================================================
NonHNS-OAuth-Blob

[WARNING] Tests run: 228, Failures: 0, Errors: 0, Skipped: 9
[WARNING] Tests run: 706, Failures: 0, Errors: 0, Skipped: 155
[WARNING] Tests run: 158, Failures: 0, Errors: 0, Skipped: 3
[WARNING] Tests run: 271, Failures: 0, Errors: 0, Skipped: 24

============================================================
AppendBlob-NonHNS-OAuth-Blob

[WARNING] Tests run: 228, Failures: 0, Errors: 0, Skipped: 9
[WARNING] Tests run: 701, Failures: 0, Errors: 0, Skipped: 176
[WARNING] Tests run: 135, Failures: 0, Errors: 0, Skipped: 4
[WARNING] Tests run: 271, Failures: 0, Errors: 0, Skipped: 24

============================================================
HNS-Oauth-DFS-IngressBlob

[WARNING] Tests run: 228, Failures: 0, Errors: 0, Skipped: 2
[WARNING] Tests run: 733, Failures: 0, Errors: 0, Skipped: 182
[WARNING] Tests run: 158, Failures: 0, Errors: 0, Skipped: 8
[WARNING] Tests run: 271, Failures: 0, Errors: 0, Skipped: 23

FileSystem.newInstance(uri, conf).close();
});
Assertions.assertThat(ex.getMessage())
.contains("WASB Driver using wasb(s) schema is No longer Supported.");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do these assertions pass now? There was earlier code review feedback to fix capitalization ("is no longer supported"), but it wasn't changed here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My bad. Thanks for thorough review
Our test suite do not run WASB tests hence it was not caught.

Copy link
Contributor

@cnauroth cnauroth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 pending pre-commit. Thank you!

Unfortunately, it looks like we continue to have some infrastructure problems with pre-commit:

https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8207/8/consoleText

java.nio.file.FileSystemException: /home/jenkins/jenkins-agent/workspace/hadoop-multibranch_PR-8207: Read-only file system

We might need to chase this down with ASF infra.

@anujmodi2021
Copy link
Contributor Author

+1 pending pre-commit. Thank you!

Unfortunately, it looks like we continue to have some infrastructure problems with pre-commit:

https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8207/8/consoleText

java.nio.file.FileSystemException: /home/jenkins/jenkins-agent/workspace/hadoop-multibranch_PR-8207: Read-only file system

We might need to chase this down with ASF infra.

Thanks @cnauroth

We need this to be merged before 3.5.0 release. It would be really helpful if you can guide me on how to get this resolved?
Whom and how should I contact in ASF regarding this?

@anujmodi2021
Copy link
Contributor Author

@steveloughran
Gentle reminder to review this.
Your thoughts and guidance will be really helpful

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.

5 participants