如何用R语言进行云计算

如今,几乎所有领域或业务活动正在通过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中阐述云计算,相比在其它软件中要容易得多

原文发布时间为:2015-11-24

时间: 2024-10-13 00:41:18

如何用R语言进行云计算的相关文章

如何用 R 语言的 Shiny 库编写 web 程序

Shiny 是一个来自 RStudio 的工具包,它让创建 web 程序变得更容易.它能从 R 控制台轻松安装,只需要一行,就可以加载好最新的稳定版本来使用.这里有一个很棒的教程,它可以在前面课程基础上,带着你理解应用架设的概念. Shiny 的授权是 GPLv3,源代码可以在 GitHub 上获得. 这是一个用 Shiny 写的简单的小 web 程序: library(shiny) server <- function(input, output, session) { observe({ m

一文详解如何用 R 语言绘制热图

简介 本文将绘制静态与交互式热图,需要使用到以下R包和函数: ● heatmap():用于绘制简单热图的函数 ● heatmap.2():绘制增强热图的函数 ● d3heatmap:用于绘制交互式热图的R包 ● ComplexHeatmap:用于绘制.注释和排列复杂热图的R&bioconductor包(非常适用于基因组数据分析) 数据准备 使用R内置数据集 mtcars df <- as.matrix((scale(mtcars))) #归一化.矩阵化 使用基本函数绘制简单简单热图 主要是函

《R的极客理想——高级开发篇 A》一一2.4 R语言中的遗传算法

2.4 R语言中的遗传算法 问题 如何用R语言进行遗传算法的计算? 引言 人类总是在生活中摸索规律,把规律总结为经验,再把经验传给后人,让后人发现更多的规律,每一次知识的传递都是一次进化的过程,最终形成了人类的智慧.自然界的规律,让人类适者生存地活了下来,聪明的科学家又把生物进化的规律,总结成遗传算法,扩展到了更广的领域中.本节将带你走进遗传算法的世界.2.4.1 遗传算法介绍 遗传算法是一种解决最优化的搜索算法,是进化算法的一种.进化算法最初借鉴了达尔文的进化论和孟德尔的遗传学说,从生物进化的

《R的极客理想——高级开发篇 A》一一1.5 R语言的导数计算

1.5 R语言的导数计算 问题 如何用R语言进行导数计算? 引言 高等数学是每个大学生都要学习的一门数学基础课,同时也可能是考完试后最容易忘记的一门知识.我在学习高数的时候绞尽脑汁,但始终都不知道为何而学,生活和工作基本用不到,就算是在计算机行业和金融行业,能直接用到高数的地方也少之又少,学术和实际应用真是相差太远了. 不过,R语言为我打开了一扇高数应用的大门,R语言不仅能方便地实现高等数学的计算,还可以很容易地把一篇论文中的高数公式应用于产品的实践中.因为R语言我重新学习了高数,让生活中充满数

R语言数据挖掘

数据分析与决策技术丛书 R语言数据挖掘 Learning Data Mining with R [哈萨克斯坦]贝特·麦克哈贝尔(Bater Makhabel) 著 李洪成 许金炜 段力辉 译 图书在版编目(CIP)数据 R语言数据挖掘 / (哈)贝特·麦克哈贝尔(Bater Makhabel)著:李洪成,许金炜,段力辉译. -北京:机械工业出版社,2016.9 (数据分析与决策技术丛书) 书名原文:Learning Data Mining with R ISBN 978-7-111-54769-

《R语言数据挖掘》----第2章 频繁模式、关联规则和相关规则挖掘 2.1关联规则和关联模式概述

本节书摘来自华章出版社<R语言数据挖掘>一书中的第2章,第2.1节,作者[哈萨克斯坦]贝特·麦克哈贝尔(Bater Makhabel),李洪成 许金炜 段力辉 译,更多章节内容可以访问"华章计算机"公众号查看. 第2章 频繁模式.关联规则和相关规则挖掘 本章中,我们将首先学习如何用R语言挖掘频繁模式.关联规则及相关规则.然后,我们将使用基准数据评估所有这些方法以便确定频繁模式和规则的兴趣度.本章内容主要涵盖以下几个主题: 关联规则和关联模式概述 购物篮分析 混合关联规则挖掘

《R的极客理想——高级开发篇 A》一一1.2 R语言中的数学计算

1.2 R语言中的数学计算 问题 如何用R语言进行数学计算? 引言 R语言是统计语言,生来就对数学有良好的支持,用R语言做数学的计算题特别方便.如果计算器中能嵌入R语言的计算函数,那么绝对是一种高科技产品.我真的把R语言当成我的计算器了!1.2.1 基本计算 R语言对数学计算有着非常好的支持,本节将完整介绍初等数学中的各种计算操作. 本节的系统环境是: Windows 7 64bit R: 3.1.1 x86_64-w64-mingw32/x64 (64-bit) 用R语言实现四则运算操作,包括

《R的极客理想——高级开发篇 A》一一2.2 PageRank算法R语言实现

2.2 PageRank算法R语言实现 问题 如何用R语言实现PageRank算法? 引言 Google搜索,早已成为我每天必用的工具,我无数次惊叹它搜索结果的准确性.同时,我也在做Google的SEO,推广自己的博客.经过几个月尝试,我的博客PR到2了,外链也有几万个.总结下来,还是感叹PageRank的神奇.笔者认为PageRank是改变互联网的算法!2.2.1 PageRank算法介绍 PageRank是Google专有的算法,用于衡量特定网页相对于搜索引擎索引中的其他网页而言的重要程度.

R语言数据挖掘第2章 频繁模式、关联规则和相关规则挖掘

第2章 频繁模式.关联规则和相关规则挖掘 本章中,我们将首先学习如何用R语言挖掘频繁模式.关联规则及相关规则.然后,我们将使用基准数据评估所有这些方法以便确定频繁模式和规则的兴趣度.本章内容主要涵盖以下几个主题: 关联规则和关联模式概述 购物篮分析 混合关联规则挖掘 序列数据挖掘 高性能算法 关联规则挖掘算法可以从多种数据类型中发现频繁项集,包括数值数据和分类数据.根据不同的适用环境,关联规则挖掘算法会略有差异,但大多算法都基于同一个基础算法,即Apriori算法.另一个基础算法称为FP-Gro