Alluxio集成Kodo作为底层存储

Slack Docker Pulls GitHub edit source

该指南介绍如何配置 Alluxio 以使用Qiniu Kodo作为底层文件系统。七牛云对象存储( Kodo )是七牛云提供的高可靠、强安全、低成本、可扩展的存储服务。

初始步骤

要在多台机器上运行 Alluxio 集群,需要在这些机器上部署二进制包。你可以自己由Alluxio源码编译二进制包,或者直接下载预编译过的二进制包

为了在 Kodo 上使用 Alluxio,需要创建一个 bucket(或者使用一个已有的 bucket )。在该指南中,Kodo bucket 的名称为KODO_BUCKET,在该 bucket 里的目录名称为 KODO_DIRECTORY。要使用七牛对象存储服务,需要提供一个可供识别指定 bucket 的域名,本向导中为KODO_DOWNLOAD_HOST。

安装Kodo

Alluxio通过统一命名空间统一访问不同存储系统。 Kodo的挂载点可以在Alluxio命名空间的根目录或嵌套目录下。

根目录安装

若要在Alluxio中使用七牛Kodo作为底层文件系统,一定要修改conf/alluxio-site.properties配置文件。首先要指定一个已有的存储空间和其中的目录作为底层文件系统,可以在conf/alluxio-site.properties中添加如下语句指定它。

alluxio.master.mount.table.root.ufs=kodo://<KODO_BUCKET>/<KODO_DIRECTORY>/

七牛不支持直接在管理控制台进行文件夹的管理,但是跟其他云厂商相同,我们默认使用/来对文件进行区隔。若配置 KODO_DIRECTORY 后,会在 Kodo 生成 以 KODO_DIRECTORY/ 为前缀的文件。

接着,需要一些配置访问Kodo,在conf/alluxio-site.properties中添加:

fs.kodo.accesskey=<KODO_ACCESS_KEY>
fs.kodo.secretkey=<KODO_SECRET_KEY>
alluxio.underfs.kodo.downloadhost=<KODO_DOWNLOAD_HOST>
alluxio.underfs.kodo.endpoint=<KODO_ENDPOINT>

首先, 你可以从七牛密钥管理中 获取 AccessKey/SecretKey

alluxio.underfs.kodo.downloadhost 可以在七牛云对象存储管理平台 中的空间概览中获取。 alluxio.underfs.kodo.endpoint 是七牛云存储源站的端点域名配置,可以根据存储空间所在存储区域进行配置:

Kodo 存储空间和对应端点域名可以参考

存储区域 区域简称 EndPoint
华东 z0 iovip.qbox.me
华北 z1 iovip-z1.qbox.me
华南 z2 iovip-z2.qbox.me
北美 na0 iovip-na0.qbox.me
东南亚 as0 iovip-as0.qbox.me

嵌套目录安装

Kodo 可以安装在 Alluxio 命名空间中的嵌套目录中,以统一访问多个存储系统。 Mount 命令可以实现这一目的。例如,下面的命令将Kodo容器内部的目录挂载到 Alluxio的/kodo目录:

$ ./bin/alluxio fs mount --option fs.kodo.accesskey=<KODO_ACCESS_KEY> \
  --option fs.kodo.secretkey=<KODO_SECRET_KEY> \
  --option alluxio.underfs.kodo.downloadhost=<KODO_DOWNLOAD_HOST> \
  --option alluxio.underfs.kodo.endpoint=<KODO_ENDPOINT> \
  /kodo kodo://<KODO_BUCKET>/<KODO_DIRECTORY>/

使用KODO在本地运行Alluxio

配置完成后,你可以在本地启动 Alluxio,观察一切是否正常运行:

$ ./bin/alluxio format
$ ./bin/alluxio-start.sh local

该命令应当会启动一个 Alluxio master 和一个 Alluxio worker,可以在浏览器中访问http://localhost:19999查看 master UI。

接着,你可以运行一个简单的示例程序:

$ ./bin/alluxio runTests

运行成功后,访问你的 Kodo 目录KODO://<KODO_BUCKET>/<KODO_DIRECTORY>,确认其中包含了由 Alluxio 创建的文件和目录。在该测试中,创建的文件名称应像KODO_BUCKET/KODO_DIRECTORY/default_tests_files/BasicFile_CACHE_PROMOTE_MUST_CACHE这样。

运行以下命令停止 Alluxio:

$ ./bin/alluxio-stop.sh local