海纳百川 有容乃大:SparkR与Docker的机器学习实战

题图为美国尼米兹核动力航空母舰

介 绍

大数据时代,我们常常面对海量数据而头疼。作为学统计出身的人,我们想折腾大数据但又不想学习Hadoop或者Java,我们更倾向于把精力放在建模和算法设计上,SparkR和Docker的完美结合,让R的计算直接从一架战斗机的当兵作战华丽转变为一个航空母舰战斗群!不仅仅简化了分布式计算的操作,还简化了安装部署的环节,我们只几乎不需要做什么改动就可以直接运用R中的data frame进行分布式的计算。

什么是SparkR

参考前文 打造大数据产品:Shiny的Spark之旅,我们可以知道,SparkR是一个为R提供了轻量级的Spark前端的R包。 SparkR提供了一个分布式的data frame数据结构,解决了 R中的data frame只能在单机中使用的瓶颈,它和R中的data frame 一样支持许多操作,比如select,filter,aggregate等等。(类似dplyr包中的功能)这很好的解决了R的大数据级瓶颈问题。 SparkR也支持分布式的机器学习算法,比如使用MLib机器学习库。

什么是Docker

参考前文 打造数据产品的快速原型:Shiny的Docker之旅,我们也可以知道,Docker是一种类似于虚拟机的技术,主要解决标准化快速部署的问题,在Docker中安装的软件和主机中的软件可以完全隔离,并通过Daocloud或者hub.docker.com等云服务快速建立Docker仓库,快速复用Docker镜像。Docker已经不仅仅是DevOps人员手中的神器了,每一个开发者都应该学会如何使用Docker。

为什么要结合SparkR和Docker

SparkR的精髓在于分布式计算,而Docker的精髓在于标准容器的拓展性,SparkR和Docker的组合充分结合了二者各自的优点,将分布式应用底层化繁为简,为高层计算直接暴露接口,给科学计算节省了大量时间。

部署

本文将通过Docker讲解如何快速部署SparkR-RStudio容器,并通过一些简单的机器学习例子展示如何使用这个航母级别的组合拳。

步骤一:安装Docker和Daocloud

由于国内的镜像质量不够高,国外的镜像下载速度比较慢,出于试验的考虑,建议大家可以尝试使用Daocloud的镜像加速服务。

首先,我们需要在Daocloud注册一个账号,然后选择镜像加速,根据指示选择主机并安装Docker和Daocloud加速器。

步骤二:安装Spark-RStudio

感谢 vinicius85 在GitHub上的开源贡献,为我们已经做好了 Spark1.6+R+RStduio的镜像,我们利用daocloud加速拉取镜像。

以daemon形式运行容器,暴露Rstudio-server默认的8787端口, 并持久化docker内的/srv目录下的所有文件作为通讯。

步骤三:配置RStudio登陆账号

参考前文 R语言工程化实践:RStudio Server环境快速配置教程

我们设置一下RStudio-Server的账号密码

步骤四:登陆RStudio

比如:

查看资源占用情况

机器学习示例

出于演示的考虑,这里引用并稍微改进了 tcosta 完成的一个逻辑回归的例子:

初始化

使用SparkR之前,我们需要确定,我们的容器内存要在2G以上,如果用AWS的乞丐版套装,马上就会报内存不足的错误。

如果内存不足,可以退出docker并且在虚拟机中重新提高docker的内存和cpu的配置。

逻辑回归

模型评估

原文发布于微信公众号 - CDA数据分析师(cdacdacda)

原文发表时间:2016-03-24

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯数据中心

数据中心并联冷机负载不均案例分析

制冷冷机为数据中心提供冷量,是保证数据中心安全有效运行的核心,但是在实际冷机运行过程中,常常会出现并联引起负载不均衡的问题,如果处理不当,可能引起冷机停机,数据...

32270
来自专栏aCloudDeveloper

容器进化史

和虚拟机一样,容器技术也是一种资源隔离的虚拟化技术。我们追溯它的历史,会发现它的技术雏形早已有之。 容器简史 容器概念始于 1979 年提出的 UNIX chr...

59970
来自专栏Web 开发

终于弄好了

我从一个只知道Linux的小子,成长为一个能够实际操作、懂得思考问题、解决问题的人

23020
来自专栏数据小魔方

一个关于Excel的秘密——微软向用户隐藏了什么?

一个关于Excel的秘密 ▌写在前面的话: 这是小魔方公众号开通的第一天,也是小魔方推送的第一篇文章,算是破壳日吧!感谢大家关注小魔方,同时小魔方也会持续努力更...

30570
来自专栏CSDN技术头条

Hyper容器云及云上运维

导读:和Docker不同,Hyper通过直接把虚机跟Docker Image对接起来,解决了容器技术的安全性问题,再利用技术手段解决了Hyper的轻量化问题。在...

41770

Python机器学习的生态系统

Python生态系统正在不断成长,并可能成为机器学习的统治平台。

22370
来自专栏马哥教育

想学Python?这里有一个最全面的职位分析

Python从2015年开始,一直处于火爆的趋势,目前Python工程师超越Java、Web前端等岗位,起薪在15K左右,目前不管是小公司还是知名大公司都在热招...

51250
来自专栏SDNLAB

OpenStack发布Queens版本,扩展对GPU和容器支持

OpenStack本周发布了第17个代码版本Queens,该版本包含一些重大的更新,例如软件定义存储功能、GPU兼容性以及容器工作负载的跟踪等。Queens不仅...

45660
来自专栏杨建荣的学习笔记

2017最后一天的学习-TensorFlow

中午吃过饭后,家人都去午休了,我就躺在沙发上看电视,然后稀里糊涂睡着了,突然自己问自己今天写点什么呢,然后在迷糊中突然想到了TensorFlow,好了,那今天就...

35840
来自专栏企鹅号快讯

还记得DeepMind那个会跑酷的AI吗?它打算用这套Python强化学习工具吊打OpenAI

还记得这个会跑酷的机器人吗? 5个多月前,DeepMind连发三篇强化学习论文,让机器人在仿真环境中自己就能学会灵活多变的各种动作,包括步行、跑动、跳跃、翻墙,...

227100

扫码关注云+社区

领取腾讯云代金券