在Mesos上运行Alluxio

Slack Docker Pulls GitHub edit source

Alluxio能够通过Mesos进行部署,这样可以让Mesos对Alluxio使用的资源进行管理。具体来说,对于Alluxio master便是JVM进程需要的cpu和内存资源,而对于Alluxio worker来说除了这两者,还有ramdisk所需要的内存。

Mesos版本

Alluxio兼容Mesos 0.23.0及之后的版本。

Mesos需求

默认情况下,Alluxio Master需要端口19998和19999,Alluxio Worker需要端口29998,29999和30000。 要使Mesos运行Alluxio,您必须将这些端口提供给Mesos框架,或者更改Alluxio端口。

使端口可用

启动Mesos slave时,可以指定要管理的端口资源。

  1. /usr/local/sbin/mesos-slave --resources='ports:[19998-19999,29998-30000]'

更改Alluxio端口

或者,您可以在alluxio-site.properties文件中指定Alluxio端口,如下所示:

  1. alluxio.master.port=31398
  2. alluxio.master.web.port=31399
  3. alluxio.worker.port=31498
  4. alluxio.worker.data.port=31499
  5. alluxio.worker.web.port=31500

在Mesos上部署Alluxio

要在Mesos上部署Alluxio,需要让Mesos能获取到Alluxio发布包。有两个方法:

  1. 拷贝Alluxio到所有Mesos节点
  2. 配置Mesos指向一个Alluxio压缩包

配置属性

参考配置项设置文档获取如何配置相应属性。

部署已经拷贝在所有Mesos节点上的Alluxio

  1. 在所有Mesos节点上安装Alluxio。接下来的步骤应在安装完Alluxio后进行
  2. 设置属性alluxio.integration.mesos.alluxio.jar.url的值为LOCAL
  3. 设置属性alluxio.home的值为Alluxio在所有Mesos节点上的安装路径
  4. 启动Alluxio Mesos框架
  1. ./integration/mesos/bin/alluxio-mesos-start.sh mesosMaster:5050 // address of Mesos master

通过Alluxio压缩包url进行部署

在任何一个已经安装Alluxio的地方进行以下步骤:

  1. 设置属性alluxio.integration.mesos.alluxio.jar.url指向一个Alluxio压缩包
  2. 启动Alluxio Mesos框架
  1. ./integration/mesos/bin/alluxio-mesos-start.sh mesosMaster:5050 // address of Mesos master

注意这个压缩包应该使用-Pmesos选项进行编译。1.3.0及以上的已发布的Alluxio压缩包是采用这种方式编译的。

Java

默认情况下,可以使用在Mesos executor上可用的任意Java版本。要下载Java8 jdk并且用它来运行Alluxio,设置以下属性:

  1. alluxio.integration.mesos.jdk.url=JDK_URL

配置Alluxio Masters和Workers

当Alluxio在Mesos上部署后,它会将所有Alluxio配置传播到已经启动的masters和workers上,这也就是说你可以通过更改conf/alluxio-site.properties里的配置项来配置已经启动的Alluxio集群。

日志文件

./integration/mesos/bin/alluxio-mesos-start.sh脚本会启动一个名为AlluxioFramework的Java进程,其日志记录在alluxio/logs/framework.out。 在Mesos上启动的Alluxio masters和workers会将其日志记录在mesos_container/logs/,另外在mesos_container/stderr文件里或许也会有些有用的信息。