Table of Contents
Installation for HBase
Verified with Apache HBase 2.6.2 (standalone) on JDK 17, using seaweedfs-hadoop3-client-4.38.jar.
HBase talks to the SeaweedFS filer through the HCFS (seaweedfs://) scheme, so no S3 gateway is
needed. HBase 2.6.x ships Hadoop 2.10 jars; the hadoop3 client works against them since it only
adds the seaweed.hdfs.* classes and shades its own dependencies.
Three steps to run HBase on SeaweedFS:
-
Run HBase on JDK 8, 11, or 17. The
bin/hbaselauncher already adds the JDK 17--add-opensflags, so settingJAVA_HOMEis enough:export JAVA_HOME=/path/to/jdk-17 -
Copy
seaweedfs-hadoop3-client-4.38.jarto${HBASE_HOME}/lib. -
Set the following properties in
${HBASE_HOME}/conf/hbase-site.xml. Pointhbase.rootdirat your filer (default filer port is8888) and givehbase.tmp.dira local path:<configuration> <property> <name>hbase.cluster.distributed</name> <value>false</value> </property> <property> <name>hbase.rootdir</name> <value>seaweedfs://localhost:8888/hbase</value> </property> <property> <name>hbase.tmp.dir</name> <value>/var/lib/hbase/tmp</value> </property> <property> <name>fs.seaweedfs.impl</name> <value>seaweed.hdfs.SeaweedFileSystem</value> </property> <property> <name>fs.AbstractFileSystem.seaweedfs.impl</name> <value>seaweed.hdfs.SeaweedAbstractFileSystem</value> </property> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> </configuration>The SeaweedFS HCFS stream does not advertise
hflush/hsync, sohbase.unsafe.stream.capability.enforce=falseis required or HBase refuses to start.
Start HBase:
${HBASE_HOME}/bin/start-hbase.sh
Visit the HBase Web UI at http://<hostname>:16010 to confirm HBase is running on SeaweedFS
(the "HBase Root Directory" reads seaweedfs://...).
Verify from hbase shell:
create 'swtest', 'cf'
put 'swtest', 'row1', 'cf:name', 'seaweed'
scan 'swtest'
The store files land under the filer, e.g. weed shell / curl on
seaweedfs://localhost:8888/hbase/data/default/swtest/.... Tables and rows survive a
stop-hbase.sh / start-hbase.sh restart.
Introduction
- Quick Start with weed mini
- Simplest S3 Bucket and User Setup
- Components
- Blob Store Architecture
- Getting Started
- Production Setup
- A typical step‐by‐step example
- Benchmarks
- FAQ
- Applications
API
Configuration
- Replication
- Store file with a Time To Live
- Failover Master Server
- Erasure coding for warm storage
- EC Bitrot Detection
- Server Startup via Systemd
- Environment Variables
Filer
- Filer Setup
- Directories and Files
- File Operations Quick Reference
- Data Structure for Large Files
- Filer Data Encryption
- Filer Commands and Operations
- Filer JWT Use
- TUS Resumable Uploads
Filer Stores
- Filer Cassandra Setup
- Filer Redis Setup
- Super Large Directories
- Path-Specific Filer Store
- Choosing a Filer Store
- Customize Filer Store
Management
Advanced Filer Configurations
- Migrate to Filer Store
- Add New Filer Store
- Filer Store Replication
- Filer Active Active cross cluster continuous synchronization
- Filer as a Key-Large-Value Store
- Path Specific Configuration
- Filer Change Data Capture
- Filer Operation Serialization
FUSE Mount
- Mount on Windows
- FIO benchmark
- fstab and systemd mount
- POSIX Compliance
- Distributed POSIX Locks
- P2P reading in weed mount
- Mount over the Internet
WebDAV
SFTP Server
Cloud Drive
- Cloud Drive Benefits
- Cloud Drive Architecture
- Configure Remote Storage
- Azure Blob Storage Authentication
- Mount Remote Storage
- Cache Remote Storage
- Cloud Drive Quick Setup
- Gateway to Remote Object Storage
AWS S3 API
- Amazon S3 API
- Supported APIs vs Minio
- S3 Lifecycle
- S3 Lifecycle vs Volume TTL
- S3 Conditional Operations
- S3 CORS
- S3 Object Lock and Retention
- S3 Object Versioning
- S3 RenameObject
- S3 API Benchmark
- S3 API FAQ
- S3 Bucket Quota
- S3 Rate Limiting
- S3 API Audit log
- S3 Nginx Proxy
- Docker Compose for S3
S3 Table Bucket
- S3 Table Bucket
- S3 Table Bucket Commands
- S3 Tables Security
- SeaweedFS Iceberg Catalog
- Iceberg REST Catalog API
- Iceberg Table Maintenance
- SeaweedFS Lance Catalog
- Lance Maintenance Worker
Iceberg Integrations
- Spark Iceberg Integration
- Trino Iceberg Integration
- Dremio Iceberg Integration
- DuckDB Iceberg Integration
- Doris Iceberg Integration
- RisingWave Iceberg Integration
- Lakekeeper Iceberg Integration
Lance Integrations
S3 Authentication & IAM
- S3 Configuration - Start Here
- S3 Credentials (
-s3.config) - OIDC Integration (
-s3.iam.config) - Kubernetes ServiceAccount Authentication (IRSA-style)
- S3 Policy Variables
- S3 Policy Conditions
- S3 Bucket Policies
- Amazon IAM API
- AWS IAM CLI
- weed shell - Shell IAM Commands
Server-Side Encryption
S3 Client Tools
- AWS CLI with SeaweedFS
- s3cmd with SeaweedFS
- rclone with SeaweedFS
- restic with SeaweedFS
- nodejs with Seaweed S3
Machine Learning
HDFS
- Hadoop Compatible File System
- run Spark on SeaweedFS
- run HBase on SeaweedFS
- Run Trino on SeaweedFS
- Hadoop Benchmark
- HDFS via S3 connector
Replication and Backup
- Async Replication to another Filer [Deprecated]
- Async Backup
- Async Filer Metadata Backup
- Async Replication to Cloud [Deprecated]
- Kubernetes Backups and Recovery with K8up
Metadata Change Events
Messaging
- Structured Data Lake with SMQ and SQL
- Seaweed Message Queue
- SQL Queries on Message Queue
- SQL Quick Reference
- PostgreSQL-compatible Server weed db
- Pub-Sub to SMQ to SQL
- Kafka to Kafka Gateway to SMQ to SQL
Use Cases
Operations
- System Metrics
- weed shell
- Data Backup
- Deployment to Kubernetes and Minikube
- Helm Chart Recipes
- Deployment with seaweed-up
Rust Volume Server
Advanced
- Large File Handling
- Optimization
- Optimization for Many Small Buckets
- Volume Management
- Tiered Storage
- Cloud Tier
- Cloud Monitoring
- Load Command Line Options from a file
- SRV Service Discovery
- Volume Files Structure
Security
- Security Overview
- Security Configuration
- Cryptography and FIPS Compliance
- Run Blob Storage on Public Internet
