Qiniu Kodo
This guide describes how to configure Alluxio with Qiniu Kodo as the under storage system. Qiniu Object Storage Service (Kodo) is a massive, secure and highly reliable cloud storage service.
Initial Setup
To run an Alluxio cluster on a set of machines, you must deploy Alluxio binaries to each of these machines.You can compile the binaries from Alluxio source code, or download the precompiled binaries directly.
A Qiniu Kodo bucket is necessary before using Kodo with Alluxio. In this guide, the Qiniu Kodo bucket is called KODO_BUCKET
, and the directory in the bucket is called KODO_DIRECTORY
. In addition, you should provide a domain to identify the specified bucket, which is called KODO_DOWNLOAD_HOST
. Through the KODO_DOWNLOAD_HOST
you can get objects from the bucket.
Mounting Kodo
Alluxio unifies access to different storage systems through the unified namespace feature. The root of Alluxio namespace or its subdirectories are all available for the mount point of Kodo.
Root Mount
If you want to use Qiniu Kodo as its under storage system in Alluxio, conf/alluxio-site.properties
must be modified. In the beginning, an existing Kodo bucket and its directory should be specified for storage by the following code:
alluxio.master.mount.table.root.ufs=kodo://<KODO_BUCKET>/<KODO_DIRECTORY>/
Next, some settings must be added to conf/alluxio-site.properties
:
fs.kodo.accesskey=<KODO_ACCESS_KEY>
fs.kodo.secretkey=<KODO_SECRET_KET>
alluxio.underfs.kodo.downloadhost=<KODO_DOWNLOAD_HOST>
alluxio.underfs.kodo.endpoint=<KODO_ENDPOINT>
AccessKey/SecretKey
can be found in Qiniu Console - Key Management
alluxio.underfs.kodo.downloadhost
can be found in Qiniu Console - Kodo
alluxio.underfs.kodo.endpoint
is the endpoint of this bucket, which can be found in the bucket in this table:
Region | Abbreviation | EndPoint |
---|---|---|
East China | z0 | iovip.qbox.me |
North China | z1 | iovip-z1.qbox.me |
South China | z2 | iovip-z2.qbox.me |
North America | na0 | iovip-na0.qbox.me |
Southeast Asia | as0 | iovip-as0.qbox.me |
Nested Mount
An Kodo location can be mounted at a nested directory in the Alluxio namespace to have unified access to multiple under storage systems. Alluxio’s mount command can be used for this purpose. For example, the following command mounts a directory inside an Kodo bucket into Alluxio directory
$ ./bin/alluxio fs mount --option fs.kodo.accessKey=<KODO_ACCESS_KEY> \
--option fs.kodo.secretkey=<KODO_SECRET_KET> \
--option alluxio.underfs.kodo.downloadhost=<KODO_DOWNLOAD_HOST> \
--option alluxio.underfs.kodo.endpoint=<KODO_ENDPOINT> \
kodo/ kodo://<KODO_BUCKET>/<KODO_DIRECTORY>/
Running Alluxio Locally with Kodo
After everything is configured, you can start up Alluxio locally to see that everything works.
$ ./bin/alluxio format
$ ./bin/alluxio-start.sh local
This should start an Alluxio master and an Alluxio worker. You can see the master UI at http://localhost:19999.
Next, you can run a simple example program:
$ ./bin/alluxio runTests
After this succeeds, you can visit your Kodo directory kodo://<KODO_BUCKET>/<KODO_DIRECTORY>
to verify the files and directories mounted by Alluxio exist. For this test, you should see files named like KODO_BUCKET/KODO_DIRECTORY/default_tests_files/BasicFile_CACHE_PROMOTE_MUST_CACHE
.
To stop Alluxio, you can run:
$ ./bin/alluxio-stop.sh local
Contributed by the Alluxio Community
Qiniu KODO UFS integration is contributed and maintained by the Alluxio community. The source code is located here. Feel free submit pull requests to improve the integration and update the documentation here if any information is missing or out of date.