Minio
This guide describes how to configure Alluxio with Minio as the under storage system. Alluxio natively provides the s3a://
scheme (recommended for better performance). You can use this scheme to connect Alluxio with Minio server.
Initial Setup
The Alluxio binaries must be on your machine. You can either compile Alluxio, or download the binaries locally.
Setup Minio
Configure Alluxio to use under storage systems by modifying conf/alluxio-site.properties
. If it does not exist, create the configuration file from the template.
cp conf/alluxio-site.properties.template conf/alluxio-site.properties
Minio is an object storage server built for cloud applications and DevOps. Minio provides an open source alternative to AWS S3.
Launch a Minio server instance using the steps mentioned here. Then create a bucket (or use an existing bucket). Once the server is launched, keep a note of Minio server endpoint, accessKey and secretKey.
You should also note the directory you want to use in that bucket, either by creating a new directory in the bucket, or using an existing one. For the purposes of this guide, the Minio bucket name is called MINIO_BUCKET
, and the directory in that bucket is called MINIO_DIRECTORY
.
Configuring Alluxio
You need to configure Alluxio to use Minio as its under storage system by modifying conf/alluxio-site.properties
. The first modification is to specify an existing Minio bucket and directory as the under storage system.
All the fields to be modified in conf/alluxio-site.properties
file are listed here:
alluxio.underfs.address=s3a://<MINIO_BUCKET>/<MINIO_DIRECTORY>
alluxio.underfs.s3.endpoint=http://<MINIO_ENDPOINT>/
alluxio.underfs.s3.disable.dns.buckets=true
alluxio.underfs.s3a.inherit_acl=false
aws.accessKeyId=<MINIO_ACCESS_KEY_ID>
aws.secretKey=<MINIO_SECRET_KEY_ID>
For these parameters, replace <MINIO_ENDPOINT>
with the hostname and port of your Minio service, e.g., http://localhost:9000
. If the port value is left unset, it defaults to port 80 for http
and 443 for https
.