在 Tachyon 源代码树中, deploy/vagrant
目录包含一些工具可以协助你在 AWS EC2 或 virtualbox 搭建 Tachyon集群。
In Tachyon source tree, deploy/vagrant
directory contains utilities to help you set up a Tachyon cluster on AWS EC2 or virtualbox.
除了 Tachyon,你可以选择不同的计算框架从下面列表的底层文件系统中:
计算框架
Spark
底层文件系统
Hadoop1
Hadoop2 (包括 Apache 和 CDH)
GlusterFS
AWS S3
后期新框架和文件系统将会增加,具体请在 deploy/vagrant/README.md
查看扩展部分, 欢迎做贡献!
下载 vagrant.
如果你想部署桌面版,下载 virtualbox.
安装 python >= 2.7, 而不是 python3.
你的Tachyon 仓库 在 deploy/vagrant
目录下,按照如下安装Pathyon 依赖库:
sudo bash bin/install.sh
如果出现错误,自行安装 pip ,在当前目录,运行(可能需要 sudo):
pip install -r pip-req.txt
切换到目录 deploy/vagrant
, 运行:
./create 2 vb
为 hadoop2.4.1 创建两个节点的 Tachyon 集群作为底层文件系统。
当你第一次运行它的时候会有些慢,因为 virtualbox 镜像需要安装和保持以备后来使用。
可选项: 配置 AWS CLI 或许有用。
登录 AWS 账户(Sign up)访问 EC2。
设置shell 环境变量 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
,参考 this doc 查看详细说明。
下载 key pair。 一定要修改 ssh 私钥权限为 0600。
将命名密钥对Keypair 和 Key_Path 的权限键路径配置到conf/ec2.yml 。
安装 aws vagrant 插件 (当前, version 0.5.0 是测试版):
vagrant plugin install vagrant-aws vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
默认,你不需要在Region(us-east-1) and Availability Zone(us-east-1a) 命名 tachyon-vagrant-test 的 Security Group。Security Group 在一定范围内自动设置所有入站/出站网络流量。如果你知道你在做什么,你可以修改安全组、权限和可用区域在 conf/ec2.yml 配置文件中。你不需要配置那些属性值,默认就好。
Tachyon 集群集合 hadoop2.4.1作为底层文件系统将在 us-east-1a 配置下运行。
./create <number of machines> aws
可以通过 AWS web console 监控实例运行状态。
当命令 ./create <number of machines> aws
执行成功,Shell 输出如下两个紫色内容。
>>> TachyonMaster public IP is xxx <<< >>> visit default port of the web UI of what you deployed <<<
Tachyon web UI 默认端口是:19999。
Hadoop Web UI 默认端口是:50070。
访问 http://{MASTER_IP}:{PORT}
在浏览器中,你可以看到Web UI。
这些节点设置命名为 TachyonMaster TachyonWorker1,TachyonWorker2 等。
通过 ssh 登录到节点,运行:
vagrant ssh {NODE_NAME}
通过 ssh 链接到 TachyonMaster:
vagrant ssh TachyonMaster
你应该进入 TachyonMaster 节点,所有的软件安装在 root 目录下。Tachyon 安装在 /tachyon, Hadoop 安装在 /hadoop。
再次运行测试 Tachyon:
/tachyon/bin/tachyon runTests
测试全部通过后,再次访问 Tachyon Web UI:http://{MASTER_IP}:19999
,在导航栏浏览文件系统,你应该能看到文件写入 Tachyon 的测试。
提供的工具脚本中TachyonMaster 节点 ~/vagrant-utils 的目录下。
运行:
~/vagrant-utils/copy-dir <path>
在 TachyonMaster 节点分发文件或目录到所有的 Worker 节点通过给定的 <path>。例如:在 TachyonMaster 节点修改一些配置后,你要使用这个脚本更新配置到所有 Worker节点。
运行:
~/vagrant-utils/copy-dir --delete <path>
以给定的 <path> 在所有的 worker 节点删除文件或目录。
运行:
~/vagrant-utils/remount <source directory> <destination directory>
在所有节点从当前挂载点 <source directory>
卸载设备重新挂载到另外的挂载点<destination directory>。
在 TachyonMaster 节点,可以通过 ssh 登录任何节点不输入密码:
ssh TachyonWorker1
在你本机 deploy/vagrant
目录下, 运行:
./destroy
销毁你刚才创建的集群,每次只能创建一个集群。命令执行成功后,virtualbox 虚拟机将从EC2被移除,实例将终止。
在conf 下有两种不同的配置文件:There are two kinds of configuration files under conf
:
配置目标部署平台,像 virtualbox 的 vb.yml, WAS EC2 的 ec2.yml。
软件配置,类似 tachyon.yml, spark.yml, ufs.yml(ufs 等同于 底层文件系统)
所有的配置文件使用 yaml 规则( yaml syntax.)
在他们自己文件中配置文件中详细解释了配置的含义。
如果你是 AWS EC2 新用户,我们建议你去理解 ec2.yml 注释说明。
在配置文件 conf/vb.yml 增加 MachineMemory 值。
配置 conf/tachyon.yml 增加Worker 内存。
明确块设备关联( block device mapping)。
请在 conf/ec2.yml 参阅 Block_Device_Mapping 注释说明。
明确块设备关联(Specify block device mapping.)
请参阅 conf/ec2.yml 关于 Block_Device_Mapping 的注释说明。
请选择最适合你需求的实例类型(instance types)。
除非你通过块设备关联(block device mapping)明确这个扩展 SSD磁盘否则不会被使用。
请在 conf/ec2.yml 参阅 Block_Device_Mapping 注释说明。
首先,从当然root设备迁移数据到更大的 EBS数据卷,附加大的数据卷作为root 设备,参阅: how to expand ebs volume.
其次,使用整个磁盘分区给新的 root 设备,参阅: how to expand partition.
请参阅官网AWS文档。(Please refer to official AWS documentation.)