我们开发了一个Amazon Machine Image (AMI),它被优化为在Amazon Elastic Compute Cloud(或EC2)中运行Bioconductor,用于排序任务。
以下是您可以使用它的一些原因:
有关更具体的方案,请参阅下面。
AMI预装了R的最新版本和前80个生物导体软件包加上以下类别的注释包:
首先,你需要一个亚马逊网络服务(AWS)帐户如果您尚未拥有一个。注册AWS,然后单击这里注册EC2服务。这将要求您提供信用卡信息;但是,您将只收取服务费。一些AWS服务免费。
如果您想使用RStudio服务器使用Web浏览器连接到AMI,则这一切都是必需的。如果您还希望使用SSH连接到它,请创建键盘如下:
启动AWS控制台.点击一下密钥对链接在页面左下角。单击“创建密钥对”按钮。出现提示时,提供名称。我们建议这个名称是“Biocumondiond”,你的名字和你的机器名称的组合(这将避免与在其他机器上分享您的AWS帐户的其他人冲突)。例如,如果您的姓名是BOB,并且您的个人计算机被命名为“MyLappop”,则您的密钥对名称可能是“Bioconductor-Bob-Mylappop”。下载生成的.pem文件并将其保留在安全的地方。
要启动AMI,您将逐步浏览几个屏幕:
查看启动实例的进度通过转到EC2仪表板,然后单击“运行实例”。一旦实例“正在运行”,它就准备好了。
重要的提示:使用AMI完成后,请务必停止或终止实例。单击实例并从“操作” - >“实例状态”中选择所需的操作。如果您停止实例,则仍然收取存储。终止消除了所有进一步的指控,但也损失了您所做的任何更改,并且任何新会话都需要从预装的AMI中的一个开始。
开始其中一个预装amis.
遵循相同的步骤以上.在“Running Instances”页面中,选择实例并从底部的“Description”选项卡获取公共IP。
如果公共IP为50.16.120.30基本的SSH命令是
ssh -我bioconductor-bob-mylaptop。pem ubuntu@ec2 - 50 - 16 - 120 - 30. - 1.计算- - - - - - - amazonaws.com
您可以更改此命令。如果你想使用使用X11的程序或R包,请确保添加一个-X标志,使命令像这样:
ssh -x -i bioconductor-bob-mylaptop.pem ubuntu@ec2-50-16-120-30.com pute-1.amazonaws.com
现在您可以将命令行粘贴到终端或命令提示符中。确保您与密钥对文件在同一个目录中。
Windows用户:您需要安装版本ssh和scp命令。像图形程序一样油灰和有WinSCP将工作。但是,我们的示例将使用这些程序的命令行版本,您可以通过安装获得Cygwin(请务必安装openssh.包)。
将此命令粘贴到终端或命令提示符窗口(并按下Enter)后,您应该连接到Amazon EC2实例。
接收公共IP地址的每个实例也都有一个外部DNS主机名。公共IP是主机名的一部分,例如,如果公共IP为50-16-120-30,则外部DNS主机名为EC2-50-16-120-30.Compute-1.amazonaws.com。请注意,在IP中使用DASH在DNS主机名VS点中使用。
将主机名粘贴到浏览器中,就会转到RStudio Server登录页面。使用用户名登录Ubuntu.
和密码bioc
.
我们的ami有以下id。
生物导体版本 | R版本 | ami id. |
---|---|---|
3.13(Devel) | 4.1.0 | ami-0e7efd11a6eab85a6 |
3.12(释放,受到推崇的) | 4.0.3 | AMI-04C69D122C1CF7E81 |
3.11 | 4.0.0. | ami - 071 b80cf0d8ca085c |
3.10 | 3.6.3 | AMI-0C5AB50CA03A54468 |
3.9 | 3.6.1 | AMI-0F5D1990D8C571CDF. |
3.8 | 3.5.3 | ami - 0565362 - d8bfb9cbed |
3.7 | 3.5.1 | ami-01bcd08e357360496 |
3.6 | 3.4.2 | AMI-AC5DF1D3 |
3.5 | 3.4.0 | ami - 279 a315d |
3.4 | 3.3.2 | AMI-8946709F. |
3.3 | 3.3.0 | ami-abd0b3bc |
3.2 | 3.2.0 | ami - 85 d88de0 |
3.1 | 3.2.0 | ami-a3d126c8 |
3.0 | 3.1.0. | AMI-BE7917D6 |
2.14 | 3.1.0. | AMI-9C25FF4. |
2.13 | 3.0.2 | ami-4a25ff22 |
2.12 | 3.0 | ami - 7224 fe1a |
2.11 | 2.15 | AMI-F827FD90 |
2.10 | 2.15 | ami - 5621 fb3e |
2.9 | 2.14 | AMI-2623F94E. |
2.8 | 2.13 | AMI-3A2EF452 |
请注意,当我们更新底层AMI时,AMI id可能会随着时间而更改。请参阅此页以获得最新的AMI id。这些阿美族人居住在美国东部-1地区。
出于行政和资金方面的原因,Bioconductor一直在跟踪Bioconductor AMI每次启动的情况。不保存任何识别信息。通过使用AMI,您就同意了这种跟踪。
确保使用Web浏览器或使用-X标志连接到您的实例ssh命令。就像是:
ssh -x -i bioconductor-bob-mylaptop.pem ubuntu@ec2-50-16-120-30.com pute-1.amazonaws.com
然后,从远程实例中的r内部:
图书馆(“rapraphviz”)set.seed(123)v < - 字母[1:10] m < - 1:4 g1 < - 随机照片(v,m,0.2)图(g1)
这将在本地计算机上启动一个显示简单图形的图形设备。
如果选择了要运行的高cpu实例类型,那么这种方法效果最好。
这个微不足道的例子运行了rnorm ()
函数,但任何函数都可以。有关更多信息,请参考并行文档。
图书馆(并联)MCLAPPLY(1:30,Rnorm)
您还可以使用AMI作为群集,其中机器通过以下机制之一彼此通信:
为了在这些场景之一中使用Biocumon AMI,您需要安装StarCluster这是一个软件包,旨在自动化和简化在Amazon的EC2云上构建、配置和管理虚拟机集群的过程。
Starcluster会根据确保机器互相通信的细节,包括:
请注意:仅在Bioconductor AMI版本2.14及更高版本中支持使用Bioconductor AMI完成与集群相关的任务。
按照如下方法安装StarClusterStarCluster安装指南.这是一个简单而快速的过程。
如果你在Windows上,直接转到窗户部分.
在我们可以使用与Biocumon AMI的Starcluster之前,我们需要通过编辑其来配置它配置
文件。
你可以通过发出命令来创建这个文件:
Starcluster帮助
这将为您提供三种选择:
选项:--------[1]显示StarCluster配置模板[2]将配置模板写入“/home/user/”。starcluster /配置(q)辞职
选择选项2并注意配置文件的位置(它将与上面所示的不同)。
在Unix系统(包括Linux和Mac OS X)上,可以在〜/ .starcluster / config
.在Windows系统上,.starcluster
文件夹应该位于主目录.
打开配置
文件在您最喜欢的文本编辑器,并编辑它如下:
您需要为aws_access_key_id.
和aws_secret_access_key.
.如果您不知道这些值,请转到安全认证AWS控制台的页面并展开“Access键”部分。您可以在此处查看或创建访问密钥。确保并将这些凭据存储在安全的地方(除了您的Starcluster Config文件之外)。
的价值aws_user_id.
还可以在安全认证页,展开“帐户标识符”部分。填写aws_user_id.
与数字显示为您的“AWS帐户ID”(这应该是一个12位数字带连字符)。
如果您尚未在EC2中创建一个键盘,请立即通过阅读小钥匙部分。
您还可以使用Starcluster创建一个键盘;运行命令
starcluster createkey——帮助
为说明……。
记住分配给密钥对的名称。改变行
[钥匙MyKey]
这我的钥匙
由您分配给EC2中的键盘的名称替换,并更改以下行
key_location =〜/ .ssh / mykey.rsa
所以KEY_LOCATION
是从.ec2下载的私钥的完整路径(它可能有一个.pem
扩大)。
StarCluster允许您在配置文件中定义多个群集。现在让我们修改定义为的群集smallcluster
.
keyname.
到密钥对的名称(请参阅上面的键控部分)。CLUSTER_SIZE
到您要启动的机器数量。此数字包括主节点,因此默认值2表示一个主设备和一个工人。我们建议从2开始,直到您使用Starluster和Biocomoder熟悉自己。CLUSTER_USER
来Ubuntu.
.DNS_PREFIX = True
.这使得在使用AWS Console或命令行工具时更容易识别集群实例。node_image_id.
到您想要使用的AMI的AMI-ID将列在AMI id本文件的一部分。请注意,Starcluster仅适用于Biocumon V9.14和更高的AMI。node_instance_type.
到另一个实例类型。看到实例类型页面想要查询更多的信息。#权限= ssh, http
,添加行权限= http
(注意大小写)。这与安全组权限有关(下文详细介绍)。如果您想进一步自定义您的配置,您可以对这个部分进行其他更改。指的是Starcluster文件想要查询更多的信息。
删除评论(#
符号)从四行开始[许可http]
所以你最终结束了:
[permission http] IP_PROTOCOL = tcp FROM_PORT = 80 TO_PORT = 80
这允许群集实例上的端口80向世界打开,允许我们在该端口上使用RStudio服务器。
假设你已经完成了上面的步骤,你可以用下面的命令创建一个集群:
Starcluster开始SmallCluster.
在几瞬间后,应提供群集。
有两种方法可以连接到集群的主节点:RStudio Server和SSH。除非您有使用SSH的特殊需要,否则我们建议使用RStudio Server。
首先,通过发出命令获取主节点的主机名:
Starcluster ListClusters
你也可以缩写这个:
Starcluster Lc.
这将产生如下输出:
-------------------------------------------------------------------------------组:@ sc-smallcluster)----------------------------------------发布时间:2014-06-16 09:57:54正常运行时间:0天,02:19:56 ZONE:美东-1B键盘:BIOC默认EBS卷:N / A群集节点:SHANGCLUSTE-Master Ring I-46A76C6D EC2-54-91-23-93.Compute-1.amazonaws.com SmallCluster-Node001运行I-47A76C6C EC2-54-224-6-153.Comput-1.Mazonaws.com总节点:2
从中开始的线SmallCluster Master
以主机名结束(在本例中是ec2 - 54 - 91 - 23 - 93. -计算- 1. - amazonaws.com
;在你的情况下,它将是不同但相似的东西)。您可以将此主机名粘贴到Web浏览器中(取决于浏览器,您可能需要放置http://
在主机名前)。
这应该带您到RStudio服务器登录页面。您可以使用用户名登录Ubuntu.
和密码bioc
.
要使用ssh连接到主节点,只需发出命令
starcluster sshmaster --user = ubuntu smallcluster
完成后,您必须终止群集,或者您将继续通过亚马逊Web服务收取金钱。要终止群集,请执行以下操作:
starcluster终止smallcluster
这个命令将提示您确认是否真的想要终止集群。
以下方案假设您已启动群集,并且您已连接到主节点。
当您使用StarCluster启动集群时,它将自动配置为使用BiocParallel
和Batchjobs.
以Sun Grid Engine作为后端的软件包。你可以通过加载BatchJobs来演示这一点:
库(BatchJobs)
在其他输出中,这将说
上海黄金交易所集群功能:
表明太阳网引擎是后端。
下面是如何向集群发送一个简单的作业:
图书馆(Batejobs)库(Biocomallels)Param < - Batchjobsparam(2,Resources =列表(NCPUS = 1))寄存器(PARAM)FUN < - 函数(i)系统(“hostname”,实习生= true)xx < - bplapply(1:100,有趣)表(非允许(xx))
这将产生:
Smallcluster-master smallcluster-node001 50 50
表明SGE在主节点上运行了一半的作业,在工作节点上运行了另一半的作业。
这篇文章概述如何使用我们刚刚创建的群集的类型开发全尺度分析(识别CIS-DSQTL)。
下面是与上面相同的示例,除了使用SSH而不是Sun Grid Engine作为后端:
库(BatchJobs)库(BiocParallel)集群。函数< - makeClusterFunctionsSSH (makeSSHWorker (nodename =“smallcluster-master”),makeSSHWorker(节点名= " smallcluster-node001 ")) param2 < - BatchJobsParam(= 2,资源列表(ncpus = 1), cluster.functions = cluster.functions)注册(param2)有趣的< -函数(我)系统(主机名,实习生= TRUE) xx < - bplapply(1:10,有趣)表(unlist (xx))
你应该看到这样的结果:
smallcluster-master smallcluster-node001 5 5
使用上述步骤启动集群时,R会自动识别集群,示例如下:
库(Rmpi) mpi.universe.size ()
使用默认群集配置,这应该返回2,这是有意义的,因为我们的集群由两台机器组成(SmallCluster Master
和smallcluster-node001.
),各为m1型。小,每个都有一个核心。
再次使用BiocParallel
,你可以在MPI集群上运行一个简单的函数:
FUN <- function(i) system("hostname", intern=TRUE)
创建一个雪茄
具有等于MPI Universe的大小的节点数量的实例减去1(让一个节点调度作业给工人),并将此实例注册为默认值:
param3 < - snowparam(mpi.universe.size() - 1,“mpi”)寄存器(param3)
并行评估工作并处理结果:
XX < - BPLapply(1:10,Fun)表(非允许(xx))
请注意:如果您对正在运行的Bioconductor AMI进行更改,然后终止AMI,您的更改将丢失。使用这里描述的步骤来确保您的更改是持久的。
如果AMI缺少一些包裹或您认为应该拥有的功能,请告诉我们。
如果您想根据自己的目的定制AMI,这很简单。只要继续按照您认为合适的方式定制您的运行实例。通常这将涉及安装R包biocmanager :: install()
,以及使用Ubuntu包管理器的软件包(在操作系统级)apt-get.
.
您可能还想更改“Ubuntu”用户的密码(因为默认密码是公开知名的,以便使用命令运行Rstudio服务器:
passwd ubuntu.
现在使用的AWS控制台停止实例(重要说明:不要“终止”您的实例;改为使用stop命令(实例操作)。)
然后在Instance Actions菜单下选择“Create Image (EBS AMI)”。您将被提示输入AMI的名称。输入名称后,将创建AMI并为其指定一个唯一的AMI ID。然后,您可以使用上面的步骤启动此AMI的实例,并确保替换您自己AMI的ID。您的AMI将是私有的,只有您的AWS帐户可以访问,除非您决定使其更广泛地可访问。
现在您应该终止Bioconductor AMI的Stopped实例。
Bioconductor AMI是使用Vagrant和Chef创建的。用于创建这些ami的相同脚本也可以用于供应虚拟机(Virtualbox或VMWare)或物理机。
有关更多信息,请参阅脚本“github存储库.
如果您使用的是Rstudio服务器,则可以从Rstudio Server中的文件窗格上传和下载文件。
如果您通过ssh连接,则scp命令是将数据移动到EC2实例中最有效的方法。
要将文件从计算机复制到正在运行的Biocumon AMI实例:
scp -我bioconductor-bob-mylaptop。pem /道路/ / myfile ubuntu@ec2 - 50 - 16 - 120 - 30. - 1.计算- - - - - - - amazonaws.com ~
这将在本地计算机上的“/ path / to / myfile”中将文件复制到远程实例上的Ubuntu的主目录。要将文件从正在运行的实例复制到本地计算机,请执行此操作(仍在本地计算机上):
scp -i bioconductor-bob-mylaptop.pem ubuntu@ec2-50-16-120-30.com pute.com.compute-1.amazonaws.com:〜/ myfile /某些/目录
这将将文件〜/ myfile复制到本地计算机上的运行实例到/某个/目录。
提醒:在运行中的EC2实例上创建的文件是不持续,除非你做一些特殊步骤。因此,如果要使用Biocumon生成输出文件,则必须在终止实例之前将它们复制到本地计算机,或者您的文件将丢失。如果您有很多数据来回移动,您可能想要调查弹性块存储.
如果您对Bioconducts AMI有疑问,请联系我们Bioconductor支持网站.