Configuring Alluxio with Azure Blob Store

Slack Docker Pulls GitHub edit source

该指南介绍了如何配置Alluxio以使用Azure Blob Store作为底层存储系统。

初始步骤

为了在多台机器上运行一个Alluxio集群,你必须在每台机器上部署Alluxio的二进制文件。 你可以从Alluxio源码编译二进制文件,或者直接下载已经编译好的Alluxio二进制文件

而且,为了在Alluxio上使用Azure Blob Store,在你的Azure storage帐户上创建一个新的container或者使用一个已有的container。你应该注意你在这个container里准备使用的目录,你可以在这个容器里面创建一个目录,或者使用一个已有的目录。鉴于这篇文章的目的,我们将Azure storage帐户名取名为<AZURE_ACCOUNT>,将帐户里的容器取名为<AZURE_CONTAINER>并将该container里面的目录称为<AZURE_DIRECTORY>。更多关于Azure storage帐户的信息,请看这里

配置Alluxio

根挂载

要使用Azure blob store作为Alluxio根挂载点的UFS,您需要通过修改conf/alluxio-site.properties配置Alluxio使用底层存储系统。如果这个文件不存在,重命名template文件。

  1. cp conf/alluxio-site.properties.template conf/alluxio-site.properties

首先修改conf / alluxio-site.properties来指定underfs address:

  1. alluxio.underfs.address=wasb://<AZURE_CONTAINER>@<AZURE_ACCOUNT>.blob.core.windows.net/<AZURE_DIRECTORY>/

其次,将以下属性添加到conf/alluxio-site.properties来指定根挂载点的Azure account证书:

  1. alluxio.master.mount.table.root.option.fs.azure.account.key.<AZURE_ACCOUNT>.blob.core.windows.net=<YOUR ACCESS KEY>

嵌套挂载

Azure blob store位置可以挂载在Alluxio命名空间中的嵌套目录中,以便统一访问到多个底层存储系统。Alluxio的Command Line Interface可以用于此目的。

  1. ./bin/alluxio fs mount --option fs.azure.account.key.<AZURE_ACCOUNT>.blob.core.windows.net=<AZURE_ACCESS_KEY>\
  2. /mnt/azure wasb://<AZURE_CONTAINER>@<AZURE_ACCOUNT>.blob.core.windows.net/<AZURE_DIRECTORY>/

完成这些修改后,Alluxio应该已经配置好以使用Azure Blob Store作为底层存储系统,你可以使用它本地运行Alluxio。

使用Azure Blob Store本地运行Alluxio

完成所有配置之后,你可以本地运行Alluxio,观察是否一切运行正常。

  1. ./bin/alluxio format
  2. ./bin/alluxio-start.sh local

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

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

  1. ./bin/alluxio runTests

运行成功后,你可以访问你的容器<AZURE_CONTAINER>,确认其中包含了由Alluxio创建的文件和目录。该测试中,创建的文件名应该像下面这样:

  1. <AZURE_CONTAINER>/<AZURE_DIRECTORY>/default_tests_files/BASIC_CACHE_PROMOTE_CACHE_THROUGH

若要停止Alluxio,你可以运行以下命令:

  1. ./bin/alluxio-stop.sh local