[关闭]
@sambodhi 2018-08-26T22:55:08.000000Z 字数 4575 阅读 2892

如何在Google Cloud上搭建一个免费的数据科学环境

作者 | Srini Kadamati
译者 | Sambodhi
编辑 | Debra

AI前线导读: Google Cloud Platform现在每月免费送300美元的赠金,试用期一年,结束之后如果不点击继续使用就不会扣费,这点比Amazon AWS好,AWS免费到期后会收费。因此越来越多的人青睐Google Cloud Platform。很多人用来搭建加速服务、网站和存储服务等等,有没有想过用它来搭建一个免费的数据科学环境呢?Let's Go!让大佬Srini Kadamati手把手教你怎么整!


无论你是想在本地机器上榨干内存,还是只希望代码在更强大的机器上运行得更快,在云服务器上进行数据科学研究都有很多优势。云服务器实际上就相当于一台电脑,就跟你现在使用的电脑一样,只不过它位于别处罢了。

在本文中,我们将介绍如何在Google Cloud Platform(GCP)上搭建一个数据科学环境。Google采购了数十万台个人计算机,使用定制软件在世界各地数据中心管理它们,并提供这些计算机的租用业务。由于云托管公司提供的经济规模,个人或团队可以按需访问具有大量CPU和内存的强大的计算机。

为什么要用Google Cloud Platform?

当你决定将设置从笔记本或台式机迁移到云数据科学环境时,重要的是,要考虑哪些标准对你来说最重要。比如,如果要在pandas中处理更大的数据集,那么拥有大量内存就非常重要。为了能够配合Spark处理大型数据集,我们就需要租用具有大量内存的计算机池来共享负载。

与其他云服务提供商(如Amazon AWS、Microsoft Azure、DigitalOcean Droplet)一样,GCP也包含许多不同的产品和服务。

GCP Features / Services

为了能够自由地安装任何我们想要的库或工具,我们需要访问GCP上的虚拟计算机。这称为虚拟机实例。租用虚拟机实例并不能让我们访问自己的专用计算机(向云服务提供商租用专用计算机的费用要高得多),而只能访问我们想要的CPU和内存:

Dedicated vs Shared

Google Compute Engine(GCE)为高内存实例提供了合理的定价(https://cloud.google.com/compute/pricing)。以下是2017年12月价格表的截图:

GCE Pricing

虽然这个价格乍一看似乎很高,但GCP有12个月的试用期,而且每个月有300美元赠金用于使用任意GCP产品和服务。你可以在这里了解更多信息并注册:https://cloud.google.com/free/

这意味着你可以租用一台内存为52G的服务器,并连续运行一个月。因为租用成本是按每分钟计算的,所以你可以租用一个功能强大得多的服务器(256G内存),在短时间内(几个小时)完成一项特定的任务。

这种灵活性非常强大,允许你执行大型计算工作流,而无需自己购买和管理硬件。

启动Google Compute Engine实例

导航到VM实例页面:https://console.cloud.google.com/projectselector/compute/instances 系统会要求你使用Google凭据登陆并创建一个项目。完成后,你将进入VM实例页面。

GCP VM Instances

要创建新的虚拟实例,单击CREATE INSTANCE,你将进入一个页面,你可以在其中定制你想租用的实例的不同属性:

当你就绪后,点击Create按钮。

设置数据科学环境

启动Google Compute Engine实例之后,可以直接从 Google Compute Engine页面来启动控制台:

GCE Cloud Console

我们将使用此控制台设置数据科学环境的其余部分。如果你不熟悉命令行,我建议你查看我们的课程:

首先,安装anaconda(参见https://conda.io/docs/user-guide/tasks/manage-pkgs.html)。在命令行中,最简单的方法是使用curl下载二进制安装文件。unix工具curl从指定的URL下载文件,并使用-O标记写入文件(而不是立即显示下载内容):

  1. curl -O https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh

下载完成后,可以使用bash启动安装过程:

  1. bash Anaconda3-5.0.1-Linux-x86_64.sh

在安装过程中,你将会有几次需要输入yes来接受许可证。安装完成后,你还需要将conda程序添加到你的PATH(可参见https://kb.iu.edu/d/acar)中。这个PATH允许你指定希望操作系统搜索程序的目录。

现在已经安装好anaconda,我们就可以创建一个新的anaconda环境(详见 https://conda.io/docs/user-guide/tasks/manage-environments.html)。由于我们在Dataquest上使用Python 3.5授课,因此在本文我们仍然使用这个版本:

  1. conda create --name ds python=3.5

当你创建环境时,Anaconda将会继续为你安装许多流行的科学库(如numpy、jupyter notebook等)。当安装过程结束后,你可以像下面那样激活你的环境:

  1. source activate ds

显示Jupyter Notebook

现在,我们在此实例中运行的Jupyter Notebook服务器无法通过本地计算机上的Web浏览器访问。要理解为什么会这样子,让我们想一想在自己的计算机本地上运行Jupyter Notebook会发生什么事情:只有本地计算机才能通过Web浏览器访问Jupyter Notebook服务器(通常访问地址是localhost:8888)。

但如果在局域网(WiFi或以太网)上的其他人知道你的IP地址和运行Jupyter Notebook的端口(通常是8888),那他们可以通过Web浏览器访问它:http://OUR_IP_ADDRESS:8888

通过这两个主要调整,我们也可以为云实例复制这种访问功能。缺省情况下,云实例的防火墙设置为阻止传入的网络访问。此外,大多数云服务提供商经常更改实例的IP地址(实际上,只要他们愿意,随时都可以更改!)这就意味着,如果我们的实例当前IP地址是35.227.18.17,它只能保持一阵,不能长期依赖这个IP地址。

然而,我们也可以把动态IP地址更改为静态IP地址。

设置静态IP地址

要把实例的IP地址更改为静态IP地址,请在Google Cloud Platform的左侧依次展开NetworkingVPC networExternal IP address

VPC Network

你还可以直接通过这个URL:https://console.cloud.google.com/networking/addresses 直接跳到这个页面。

请注意:如果你声明了一个静态IP地址,正在运行的机器没有与静态IP地址关联,Google将会收取少量费用。在Iowa州,截止2017年12月,这个收取少量费用的成本是每小时1美分,如下图所示:

Static IP Cost

你可以通过访问这个页面https://cloud.google.com/compute/pricing 并向下滚动到未使用的IP地址价格,了解未使用的静态IP地址价格更多的信息。

添加防火墙例外

现在我们有了一个静态IP地址,本地计算机就可以与云实例通信了。不幸的是,大多数云提供商都有防火墙,阻止了对大多数端口的传入访问。值得庆幸的是,我们可以手动为端口8000添加一个例外,Jupyter Notebook 服务器使用这个例外来接收传入的请求。

现在让我们使用自定义防火墙规则,以便传入的网络数据包可以访问特定端口上的服务器。导航到防火墙规则的页面:https://console.cloud.google.com/networking/firewalls,点击左侧的Firewall Rule然后在右侧底部点击“Create”按钮。

Create Firewall

在生成的页面上,填写以下字段:

最后,我们需要配置Jupyter Notebook来使用前面为防火墙指定的TCP端口。

配置Jupyter Notebook监听端口

为生成配置文件,需运行如下命令:

  1. jupyter notebook --generate-config

至此,我们已经完成了所有的设置,让我们使用以下的标记来启动Jupyter Notebook:

  1. jupyter notebook --no-browser --port=8000

在本地计算机上,导航到URLhttp://YOUR_STATIC_IP_ADDRESS:8000,你将会看到Jupyter Notebook的欢迎登录页面!

Jupyter Notebook

你甚至可以通过点击“Upload”按钮将文件直接上传到你的云Jupyter Notebook上。

下一步

恭喜你!你刚刚在Google Cloud中设置了属于你的第一个环境!下面是一些你可能需要考虑的后续步骤:

原文连接: How to Set Up a Free Data Science Environment on Google Cloud
https://www.kdnuggets.com/2018/08/set-up-free-data-science-environment-google-cloud.html

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注