模块部署(译)

模块部署

概述

在 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

快速上手 VirtualBox

切换到目录 deploy/vagrant, 运行:

./create 2 vb

为 hadoop2.4.1 创建两个节点的 Tachyon 集群作为底层文件系统

当你第一次运行它的时候会有些慢,因为 virtualbox 镜像需要安装和保持以备后来使用。

快速上手 AWS EC2

可选项: 配置 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:

  1. 配置目标部署平台,像 virtualbox 的 vb.yml, WAS EC2 的 ec2.yml。

  2. 软件配置,类似 tachyon.yml, spark.yml, ufs.yml(ufs 等同于 底层文件系统)

所有的配置文件使用 yaml 规则( yaml syntax.)

在他们自己文件中配置文件中详细解释了配置的含义。

如果你是 AWS EC2 新用户,我们建议你去理解 ec2.yml 注释说明。

FAQ

如何增加 virtualbox 虚拟机内存大小?

在配置文件 conf/vb.yml 增加 MachineMemory 值。

如何增加 Tachyon worker 内存?

配置 conf/tachyon.yml 增加Worker 内存

如何在 AWS 中扩展 HDFS 容量?

明确块设备关联( block device mapping)。

请在 conf/ec2.yml 参阅 Block_Device_Mapping 注释说明。

如何在AWS 使用 EBS ?

明确块设备关联(Specify block device mapping.)

请参阅 conf/ec2.yml 关于 Block_Device_Mapping 的注释说明。

我应该使用什么样的 EC2 实例 ?

请选择最适合你需求的实例类型(instance types)

EC2实例需要有 60GB SSD硬盘,但是 df -h 表示root 只有10GB,60GB SSD去了哪里?

除非你通过块设备关联(block device mapping)明确这个扩展 SSD磁盘否则不会被使用。 

请在 conf/ec2.yml 参阅 Block_Device_Mapping 注释说明。

如何增加 root 设备空间?

首先,从当然root设备迁移数据到更大的 EBS数据卷,附加大的数据卷作为root 设备,参阅: how to expand ebs volume.

其次,使用整个磁盘分区给新的 root 设备,参阅: how to expand partition.

什么是 PV/HVM?

请参阅官网AWS文档。(Please refer to official AWS documentation.)


你可能感兴趣的:(Tachyon)