HBase: HBCK2 misses dependencies
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 52/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- azure, docker
- Domain
- devops
Research direction
Start from the hbck2 filesystem command in an HBase master terminal and inspect how the product image supplies runtime dependencies for ABFS. Use the listed HBASE_CLASSPATH workaround as a reference, then verify that hbck2 filesystem "my_table" completes against Azure Blob File System without manually exporting those jars.
Written by the indexing model from the issue text.
Description
Symptom
Currently reproduced in 26.3.0, 25.11.0 HBase 2.6.4, 2.6.3 and 2.6.2 and possibly in previous versions (unknown) if you have HBase backed by ABFS (Azure Blob File System) and you try in the HBase master to
hbck2 filesystem "my_table"
you end up with
stackable@hbase-master-default-0 /stackable/hbase-2.6.3-stackable25.11.0 $ hbck2 filesystem "my_table"
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/stackable/hbase-2.6.3-stackable25.11.0/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/stackable/hbase-operator-tools-1.3.0-fd5a5fb-hbase2.6.3-stackable25.11.0/hbase-hbck2/hbase-hbck2-1.3.0-fd5a5fb-stackable25.11.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
2026-07-09T12:53:34,853 WARN [main {}] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2026-07-09T12:53:35,636 WARN [main {}] client.ZKConnectionRegistry: ZKConnectionRegistry is deprecated. See https://hbase.apache.org/book.html#client.rpcconnectionregistry
Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2737)
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:3569)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3612)
at org.apache.hadoop.fs.FileSystem.access$300(FileSystem.java:172)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3716)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3667)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:557)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:289)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:541)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:366)
at org.apache.hadoop.hbase.util.CommonFSUtils.getRootDir(CommonFSUtils.java:293)
at org.apache.hbase.FileSystemFsck.<init>(FileSystemFsck.java:44)
at org.apache.hbase.HBCK2.doCommandLine(HBCK2.java:1230)
at org.apache.hbase.HBCK2.run(HBCK2.java:1136)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:82)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:97)
at org.apache.hbase.HBCK2.main(HBCK2.java:1533)
Caused by: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem not found
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2641)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2735)
... 16 more
Expectation
hbck2 should be able to perform operations from the terminal out of the box.
Workaround
It was necessary to
export HBASE_CLASSPATH=\
/stackable/hbase/lib/commons-lang3-3.18.0.jar:\
/stackable/hbase/lib/hadoop-azure-3.4.2-stackable26.3.0.jar:\
/stackable/hbase/lib/httpclient-4.5.14.jar:\
/stackable/hbase/lib/httpcore-4.4.16.jar:\
/stackable/hbase/lib/jackson-annotations-2.19.2.jar:\
/stackable/hbase/lib/jackson-core-2.19.2.jar:\
/stackable/hbase/lib/jackson-databind-2.19.2.jar:\
/stackable/hbase/lib/zookeeper-3.8.4.jar:\
/stackable/hbase/lib/hadoop-hdfs-client-3.4.2-stackable26.3.0.jar
in HBase master terminal. After this hbck2 completed operations without further errors.
- Dominant language
- Dockerfile
- Stars
- 22
- Forks
- 6
- Avg merge
- 2d 47m
- Merged PRs (30d)
- 27
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from stackabletech/docker-images
-
customer-request
Difficulty 1/5 Under an hour Newbie friendliness 90/100
stackabletech/docker-images#1608 · 3 comments · 1 assignee ·
-
scheduled-for/26.11.0
Difficulty 4/5 3-5 days Newbie friendliness 35/100
stackabletech/docker-images#1657 ·
-
scheduled-for/26.11.0
Difficulty 4/5 3-5 days Newbie friendliness 48/100
stackabletech/docker-images#1655 ·
-
scheduled-for/26.11.0
Difficulty 4/5 3-5 days Newbie friendliness 45/100
stackabletech/docker-images#1654 · 1 assignee ·
-
scheduled-for/26.11.0
Difficulty 4/5 3-5 days Newbie friendliness 52/100
stackabletech/docker-images#1653 · 1 assignee ·
All issues in stackabletech/docker-images
Similar issues
-
agent-ready documentation needs-triage
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
-
area-deployment area-integrations triage:bot-seen
Difficulty 2/5 Half a day Newbie friendliness 86/100
-
agentic-workflows
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
refactor
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug build
Difficulty 1/5 Under an hour Newbie friendliness 91/100
facebookincubator/velox#19194 ·