在GCE上运行Alluxio

Slack Docker Pulls GitHub edit source

使用Alluxio自带的 Vagrant scripts脚本可以将Alluxio部署在Google计算引擎(GCE)上。该脚本允许你创建,配置以及撤销集群。

前期准备

安装Vagrant和Google插件

下载 Vagrant

安装Google Vagrant 插件:

  1. $ vagrant plugin install vagrant-google
  2. $ vagrant box add google https://github.com/mitchellh/vagrant-google/raw/master/google.box

安装 Alluxio

使用“Clone”将Alluxio源码复制到你本地的机器上。

安装python依赖库

安装 python>=2.7, 注意不是 python3.

进入 deploy/vagrant 目录下,运行:

  1. $ sudo bash bin/install.sh

除了上述方法,你还可以手动安装 pip, 之后进入 deploy/vagrant 目录,运行:

  1. $ sudo pip install -r pip-req.txt

启动集群

要在GCE上运行Alluxio集群, 首先在 Google Cloud 上有一个计费账号,项目,服务账户和JSON服务账号的密钥。

如果你未注册过Google Cloud, 你需要在 free trial signup page上创建一个计费账号和项目。 同样地,如果你不熟悉Google计算引擎,你可以先在 documentation上浏览关于这部分的内容。

接着, Google Cloud新用户需要在Service Accounts选项卡下的Permissions页面中的Console内选择或者创建一个服务帐号。 如果要创建一个新的服务账号, 请在账号创建的对话框中核对 “Furnish a new private key.”信息,并下载JSON密钥,将它存储在一个安全的位置。 如果要使用了一个已有的服务账号, 你需要使用这个账号已有的JSON密钥或者重新下载一个新的。 你可以在 Service Accounts选项卡下找到在服务账号列表右侧的三个句点下的菜单,并选择“create key”,为已有的服务账号下载一个新的JSON密钥,并将它存储在一个安全的位置。

使用gcloud sdk 配置ssh密钥:

  1. $ curl https://sdk.cloud.google.com | bash
  2. $ exec -l $SHELL
  3. $ gcloud init
  4. $ gcloud compute config-ssh

通过复制下面提供的模板来创建Vagrant GCE配置文件:

  1. $ cp deploy/vagrant/conf/gce.yml.template deploy/vagrant/conf/gce.yml

deploy/vagrant/conf/gce.yml配置文件中,设置你的项目id,服务账号, JSON密钥的位置和已经创建好的ssh用户名.

对于GCE来说,默认的底层文件系统是Google Cloud Storage(GCS)。你需要登入你的Google云控制台,新建一个GCS bucket并将该bucket的名称写到conf/ufs.yml里面的GCS:Bucket字段中。要使用其他底层存储系统的话,配置conf/ufs.yml里面Type字段及其相关字段。

为了使用访问密钥访问GCS,你需要在GCS控制台中的互操作性设置里面创建开发者密钥,并将shell环境变量GCS_ACCESS_KEY_IDGCS_SECRET_ACCESS_KEY进行如下设置:

  1. $ export GCS_ACCESS_KEY_ID=<your access key>
  2. $ export GCS_SECRET_ACCESS_KEY=<your secret access key>

现在你可以启动Alluxio集群了,通过在 deploy/vagrant目录下运行:

  1. $ ./create <number of machines> google

集群中的每个节点运行一个Alluxio worker, AlluxioMaster 节点上运行Alluxio master。

访问集群

通过Web UI访问

命令 ./create <number of machines> google 运行成功后, 在shell中会输出类似下面的两条语句:

  1. >>> AlluxioMaster public IP is xxx, visit xxx:19999 for Alluxio web UI
  2. >>> visit default port of the web UI of what you deployed

Alluxio Web UI的默认端口为 19999.

在访问Web UI之前, 需要配置防火墙以允许19999端口上的tcp传输。 可以通过在 Console UI 上完成或者使用类似如下的gcloud命令,假设网络名是 ‘default’.

  1. $ gcloud compute firewall-rules create alluxio-ui --allow tcp:19999

在浏览器中输入 http://{MASTER_IP}:{PORT} 地址访问Web UI。

也可以通过 Google Cloud console监视其状态。

这里是一些当你检查控制台时,可能会遇到的问题:

  • 当集群创建失败,请检查 status/logs实例日志。
  • 集群奔溃后,确保 GCE 实例被终止。
  • 当不再使用集群时,确保 GCE 实例不会再占用额外的内存。

通过ssh访问

节点的名称依次被设置成 AlluxioMaster, AlluxioWorker1, AlluxioWorker2等等。

通过ssh登陆一个节点,运行:

  1. $ vagrant ssh <node name>

例如,通过以下命令可以登陆 AlluxioMaster节点:

  1. $ vagrant ssh AlluxioMaster

Alluxio安装在 /alluxio

AlluxioMaster 节点上,可以对Alluxio运行测试检测其健康状态:

  1. $ /alluxio/bin/alluxio runTests

在所有测试完成后,再次访问Alluxio的web UI http://{MASTER_IP}:19999,在导航栏中点击 Browse File System 你应该能看到测试过程中写入到Alluxio的文件。

在集群中的某个节点上,可以通过ssh免密码登陆到集群中的其他节点:

  1. $ ssh AlluxioWorker1

撤销集群

deploy/vagrant 目录下运行:

  1. $ ./destroy

从而撤销之前创建的集群。一次只能创建一个集群。当该命令成功执行后,GCE 实例将终止运行。