如何用R语言进行云计算

作者 | Ajay Ohri

翻译 | 丁雪

校对 | ValaWong

如今,几乎所有领域或业务活动正在通过SMAC进行数据转换。SMAC指的是社交(Socia)、移动(Mobile)、分析(Analytics)和云服务(Cloud)。这个改变的影响已经涉及到包括组织、人员与产品在内的范围。在本文中,我们将通过使用云计算让你提高数据分析能力。

我们已经使用R语言和RStudio由浅入深地解释了云计算的相关概念(请参考大数据文章2015年9月21日发布的文章《如何在云计算平台使用R语言编程的快速入门指南》)。此外,相较于传统的桌面、本地客户机/服务器构架而言,你还将领略到在云端用R语言编程的优势。

云——数据科学的实现平台

云计算在近几年得到了空前的成长和普及。它使组织能快速和便捷地扩展。通过云服务,企业现如今搜集、存储和分析的数据量远远超出以往的想象。无论如何,有了亚马逊、谷歌和微软提供的服务,现在任何一个分析师都能使用云服务了。

以前,当你购买了特定性能服务器后,随着需求的增加,便需要购买另一台更高性能服务器的来满足需求。比如,我平时做的分析大多都是几个GB的数据,在我的笔记本上直接运行就足够了。然而,近期微软在Kaggle上发布了关于恶意软件和病毒的400GB数据。如果我考虑继续用我的笔记本解决这个问题,仅是下载数据集合便能耗费完我的存储空间,而进行数据分析将是另外一个单独的挑战了。

甚至如果我下载了数据集,在没有云平台的情况下,想要进行有价值的计算的唯一途径就是添置一台新机器——而这并不是一个实用的解决方案。这就体现了云计算带来的好处。

为什么需要“云”?

如以上案例中讨论的那样,对于大数据的存储,云比本地桌面、笔记本和服务器都要划算。什么,大数据?是的!大数据是一个总称,主要指比传统的数据源数量大、种类多和处理速度快的数据,需要Hadoop这样的分布式计算软件和非关系型数据库——NoSQL数据库。

美国国家标准及技术研究所(NIST)对云计算的定义:

“云计算是一种无处不在的、便捷的、按需配置网络访问的资源共享池的处理资源(例如,网络、服务器、存储、应用和服务),可以快速分配或以最少的管理工作量进行发布或与服务供应商进行直接互动的模型。这种云模型是由五个基本特征,三个服务模型和四个调度模型组成的。

云计算包含3个组成部分:

基础设施服务(laas)

平台服务(Paas)

软件服务(SaaS)

IaaS—为了配置应用程序,用户需在云基础设施上安装操作系统镜像和相关应用软件。在这个模型中,用户自行修补程序并维护操作系统和应用软件。

PaaS—云服务提供商提供的一个计算平台,包括操作系统、编程语言、执行环境、数据库和Web服务器。应用程序开发人员可以开发和运行他们的软件解决方案,在云平台上不存在购买软、硬件层的成本以及其相关管理的复杂性。

SaaS—软件服务(SaaS),用户获取应用软件和数据库。云供应商管理运行这些应用软件的基础设施和平台。SaaS是有时被称为“按需软件”。

使用R与其它应用软件进行云计算的成本效益权衡

Python同R一样,都是开源的。但是R更胜一筹的主要原因是R程序包中有更全面的统计库。统计分析系统(SAS)是企业分析的主导桌面语言,但因为每年都需许可认证授权,而不是一次性付费激活,所以其较高的成本和资本支出承诺让许多小型企业望而却步。

在云端使用R与在桌面使用R的优势比较

我们知道R只能处理RAM内存大小的数据,云计算为我们提供了一个使用R处理大数据科学的快速解决方案。简单地在虚拟机上增加内存便可将其实现。你可以在云上看到各种各样的内存选项,而这在本地机器上是无法负担的。

对于大数据集,在云端使用它比起下载数据,处理数据再评价数据是更好的选择。例如,如果你有一个30GB的关于竞赛的数据集,你最好使用云计算。云计算是不受网速困扰的处理大数据的一个好方法。

云端有更快的带宽速度,所以,安装软件和传递数据在云端进行要快很多。

你可以使用R的附加服务AzureML取代动手建立自己的机器学习服务,这样就通过个别指导以获取更多信息。

云在数据的容量和速率上更具扩展性。

使用R语言在云端编程指南

你能够在亚马逊云、微软云或是谷歌云建立一个实例(一个你可以远程接入的虚拟机)。只需如同你在本地桌面一样安置R。你可以通过SSH或Remote Desktop连接到你的远程机器。

以下是在亚马逊网络服务上建立云实例的操作步骤:

注:亚马逊可以免费让你试用亚马逊云服务一年。

首先你需要注册成为亚马逊用户,一旦注册完成后,根据以下步骤在亚马逊网络服务中创建云实例。

登陆亚马逊网络服务操作系统

点击运行实例

选择虚拟机操作系统,你将会远程接入。这里我已经选择Amazon Linux操作系统。

选择实例类型(内存大小和需要的记忆空间),在这里比较价格。

创建一个安全密钥。这是为了以防黑客远程登录机器。你可以使用Windows操作系统的桌面作为远程桌面,但是你需要在Linux实例中使用SSH。

点击发布实例

根据给出的指示,使用密钥连接实例。

现在像在本地运行一样来进行远程操作。

这是我正在安装R。

一旦操作完毕,记住关闭实例,以免支付高额的月账单。

你可以根据需求选择实例,或使用预订的实例(在固定的时间段预订虚拟机可以得到相应的折扣)。

如何在云端使用R操作RStudio?

RStudio服务器版本只在Linux系统运行。因此,我们需要在云端选择Linux实例。然后,访问RStudio服务器。我们可以连接通过浏览器远程操作RStudio。

以下是在云端运行RStudio的步骤:

注释:我们之前已经通过sudo yum安装R。

在虚拟机上下载RStudio服务器,然后进行安装。

你需要确认安装完毕。

打开在AWS控制台安全组的8787端口(左边选择栏的Security Groups),通过生成一个顾客的TCP协定(点击表单下面的编辑)

你使用SSH终端,在你的虚拟机的云实例上创建了一个拥有新密码新用户。

在表单左边留白处找到云实例公共的IP地址。

将IP地址设为8787,打开浏览器,然后使用上面创建的用户名和密码登录系统。

现在,通过浏览器使用R在进行云计算。

结语

到现在为止,你已经对如何使用R和RStudio来实施云计算有了一个大概的了解。我真的很高兴能在这篇文章中策划和编写有用资源。这篇文章还涵盖了在学习云计算时经常被问到的一些问题,所以,我试着用这篇文章来涵盖所有的方面。根据我的个人经验,在R中阐述云计算,相比在其它软件中要容易得多。

原文链接

http://www.analyticsvidhya.com/blog/2015/06/cloud-computing-r-programming/

原文发布于微信公众号 - 大数据文摘(BigDataDigest)

原文发表时间:2015-11-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏陈树义

开发小哥的困惑:为何要用第三方推送?

在《测试妹子的呐喊:为什么总是收不到推送?》这篇文章中,小树解决了测试妹子收不到推送的反馈后,小树对推送就异常感兴趣,把项目里面所有有关推送的代码都阅读了一遍。...

38750
来自专栏程序人生 阅读快乐

[软件调试].张银奎.扫描版

围绕如何实现高效调试这一主题,本书深入系统地介绍了以调试器为核心的各种软件调试技术。本书共30章,分为6篇。第1篇介绍了软件调试的概况和简要历史。第2篇以英特尔...

15520
来自专栏华章科技

如何打造高性能大数据分析平台

译者:袁璞,圣特尔•E店宝大数据架构师,关注高性能或可用架构、大数据技术、机器学习。

6910
来自专栏章鱼的慢慢技术路

游戏服务器概述

(1)了解常见查找/排序算法的特点:利用算法来改善性能,胜于通过编译器选项、编程技巧;

64520
来自专栏FreeBuf

Hunting系统:简述如何通过智能分析异常来检测网络入侵行为

? 当组织内发生数据泄露事件时,泄漏检测系统(BDS)能够给我们提供足够有效的提醒,但如果敏感等级设置的非常低的话,我们还需要考虑风险报告的假阳性问题。而基于...

24060

37 个你必须知道的现代数据中心术语

在今日的信息科技社会,现代数据中心这个术语越来越受到领导者的重视。云计算、闪存、软件定义网络(SDN)、容器,以及大量的编排及自动化工具。这些新型技术构成了现代...

304100
来自专栏云计算

你需要了解的37个现代数据中心术语

让我们深入研究一下最重要的现代数据中心术语中37个术语和定义的汇编清单。

54660
来自专栏Java架构师学习

Java进阶必知:从分布式到微服务,深挖Service Mesh

自从几十年前第一次引入分布式系统这个概念以来,出现了很多原来根本想象不到的分布式系统使用案例,但同时也引入了各种各样的新问题。 当这些系统还是比较少比较简...

46860
来自专栏华章科技

不懂这37个数据中心术语,怎么混数据圈饭局!

在今天的IT行业佼佼者中,“现代数据中心”这个概念得到了越来越多的重视。当然,它受到如此多的关注也是理所应当的。云计算,闪存存储,软件网络,容器以及大量的编排和...

12020
来自专栏大数据架构师专家

Python的学习资料

看到后台有人要python的学习资料,上次就是因为发了Python视频被投诉,导致号被封了三个月。

13420

扫码关注云+社区

领取腾讯云代金券