在EC2上运行Alluxio
使用Alluxio自带的Vagrant脚本可以将 Alluxio部署在Amazon EC2上。该脚本允许你创建,配置以及撤销集群。
前期准备
安装Vagrant和AWS插件
下载Vagrant
安装AWS Vagrant插件:
$ vagrant plugin install vagrant-aws
$ vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
安装Alluxio
下载Alluxio到你本地的机器上并解压(unzip)。
安装python库依赖
安装python>=2.7,注意不是python3。
进入deploy/vagrant
目录下,运行:
$ sudo bash bin/install.sh
另外,你可以选择手动安装pip,之后进入deploy/vagrant
目录,运行:
$ sudo pip install -r pip-req.txt
启动集群
要在EC2上运行Alluxio集群,首先在Amazon Web Services site注册一个Amazon EC2帐号。
接着创建access keys并且设置AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
环境变量:
$ export AWS_ACCESS_KEY_ID=<your access key>
$ export AWS_SECRET_ACCESS_KEY=<your secret access key>
接着生成EC2 Key Pairs。确保将私钥文件的权限设置成只对你可读。
$ chmod 400 <your key pair>.pem
复制deploy/vagrant/conf/ec2.yml.template
到deploy/vagrant/conf/ec2.yml
:
$ cp deploy/vagrant/conf/ec2.yml.template deploy/vagrant/conf/ec2.yml
在deploy/vagrant/conf/ec2.yml
配置文件中,将Keypair
设置为你的keypair名,Key_Path
设置成pem key路径。
Vagrant脚本默认会在该区域(us-east-1)和可用区域(us-east-1b)中创建一个名为alluxio-vagrant-test的安全组。 该安全组会在区域中自动建立,并且所有inbound及outbound网络流量都将打开。你可以在ec2.yml
配置文件中设置security group、region以及availability zone的值。
Vagrant脚本默认使用Amazon S3作为Alluxio的底层文件系统,但需要配置你的S3桶的名字。你可以从AWS web console登录Amazon S3图形界面,创建一个新的桶,然后将conf/ufs.yml
中的S3:Bucket
域设置为桶的名字。你也可以选择使用其他系统作为Alluxio的底层存储,比如Hadoop文件系统,只要在conf/ufs.yml
中配置合适的Type
和相关配置项即可。
现在你可以以你选择的文件系统作为Alluxio的底层文件系统,在你所选择的可用区域下启动Alluxio集群了,在deploy/vagrant
目录下运行:
$ ./create <number of machines> aws
集群中的每个节点运行一个Alluxio worker,AlluxioMaster
节点上运行Alluxio master。
访问集群
通过Web UI访问
命令./create <number of machines> aws
运行成功后,在shell中会输出类似下面的两条语句。
>>> AlluxioMaster public IP is xxx, visit xxx:19999 for Alluxio web UI<<<
>>> visit default port of the web UI of what you deployed <<<
Alluxio Web UI的默认端口为19999。
在浏览器中输入http://{MASTER_IP}:{PORT}
地址访问Web UI。
也能通过AWS web console监视其状态。
通过ssh访问
节点的名称依次被设置成AlluxioMaster
, AlluxioWorker1
, AlluxioWorker2
等等。
通过ssh登陆一个节点,运行:
$ vagrant ssh <node name>
例如,通过以下命令可以登陆AlluxioMaster
节点:
$ vagrant ssh AlluxioMaster
所有的软件都安装在根目录下,例如Alluxio安装在/alluxio
。
在AlluxioMaster
节点上,可以对Alluxio运行测试检测其健康状态:
$ /alluxio/bin/alluxio runTests
在所有测试完成后,再次访问Alluxio的web UI http://{MASTER_IP}:19999
,在导航栏中点 击Browse
,你应该能看到测试过程中写入到Alluxio的文件。
如果你登录AWS web console,进入S3管理界面, 在你之前新创建的桶中,你应该可以看到由以上测试所写入的文件。
在集群中的某个节点上,可以通过ssh免密码登陆到集群中的其他节点:
$ ssh AlluxioWorker1
撤销集群
在deploy/vagrant
目录下运行:
$ ./destroy
从而撤销之前创建的集群。一次只能创建一个集群。当该命令成功执行后,EC2实例将终止运行。