Alluxio集成OBS作为底层存储
该指南介绍如何配置Alluxio以使用Huawei OBS作为底层文件系统。对象存储服务(OBS)是华为云提供的一个大容量、安全、高可靠性的云存储服务。
初始步骤
要在许多机器上运行Alluxio集群,需要在这些机器上部署二进制包。你可以自己编译Alluxio,或者下载二进制包。
OBS底层存储系统可作为扩展实现。预编译的OBS底层存储jar包可以从这里下载。
然后在master节点上执行以下命令在conf/masters
和conf/workers
中定义的所有master节点和worker节点上安装扩展版本:
$ ./bin/alluxio extensions install /PATH/TO/DOWNLOADED/OBS/jar
了解更多Alluxio扩展管理信息请参考这里
在连接OBS到Alluxio前,OBS上需要有一个bucket及目录,如果不存在请创建它们。建议bucket命名为OBS_BUCKET
,目录命名为OBS_DIRECTORY
。可以到这里参考更多关于在OBS上创建bucket的信息。
需提供一个OBS终端建议命名为OBS_ENDPOINT
,该终端用于声明bucket所在范围并且需要在Alluxio配置文件中设置。要了解更多关于OBS上不同范围和终端的信息可以参考这里
登录OBS
Alluxio通过统一命名空间统一访问不同存储系统。OBS的安装位置可以在Alluxio命名空间的根目录或嵌套目录下。
根目录安装
若要在Alluxio中使用OBS作为底层文件系统,需要修改conf/alluxio-site.properties
配置文件。首先要指定一个已有的OBS bucket和其中的目录作为底层文件系统,可以在conf/alluxio-site.properties
中添加如下语句指定它:
alluxio.master.mount.table.root.ufs=obs://<OBS_BUCKET>/<OBS_DIRECTORY>/
接着,需要制定华为云证书以便访问OBS,在conf/alluxio-site.properties
中添加:
fs.obs.accessKey=<OBS_ACCESS_KEY>
fs.obs.secretKey=<OBS_SECRET_KEY>
fs.obs.endpoint=<OBS_ENDPOINT>
此处, fs.obs.accessKey
和fs.obs.SecretKey
分别为Access Key
字符串和Secret Key
字符串,具体关于管理access key的信息可参考这里。fs.obs.endpoint
是Bucket概述中所说的Bucket的endpoint,具体信息可参考这里。
更改完成后,Alluxio应该能够将OBS作为底层文件系统运行,你可以尝试使用OBS在本地运行Alluxio。
嵌套目录安装
OBS可以安装在Alluxio命名空间中的嵌套目录中,以统一访问多个存储系统。Mount 命令可以实现这一目的。例如,下面的命令将OBS容器内部的目录挂载到Alluxio的/obs
目录:
$ ./bin/alluxio fs mount --option fs.obs.accessKey=<OBS_ACCESS_KEY> \
--option fs.obs.secretKey=<OBS_SECRET_KEY> \
--option fs.obs.endpoint=<OBS_ENDPOINT> \
/obs obs://<OBS_BUCKET>/<OBS_DIRECTORY>/
使用OBS在本地运行Alluxio
配置完成后,你可以在本地启动Alluxio,观察一切是否正常运行:
$ ./bin/alluxio format
$ ./bin/alluxio-start.sh local
该命令应当会启动一个Alluxio master和一个Alluxio worker,可以在浏览器中访问http://localhost:19999查看master UI。
接着,你可以运行一个简单的示例程序:
$ ./bin/alluxio runTests
运行成功后,访问你的OBS目录obs://<OBS_BUCKET>/<OBS_DIRECTORY>
,确认其中包含了由Alluxio创建的文件和目录。
运行以下命令停止Alluxio:
$ ./bin/alluxio-stop.sh local