How to set up a sparklyr cluster in 5 minutes

如果您曾经想要使用Sparklyr软件包在R群集中使用Spark集群来处理大数据集,但还没有开始,因为设置Spark集群太难了,好吧......很容易。您可以使用Azure上的指南SparklyR和AZTK在大约5分钟内启动并运行 ,您甚至不需要自己安装任何东西。我将总结以下步骤,但基本上您将运行命令行实用程序以在Azure中启动集群,其中包含您已安装的所有内容,然后使用浏览器连接到RStudio Server以使用sparklyr分析数据。

image.png

步骤1:安装Azure分布式数据工程工具包 (aztk)。为此,您需要安装Python 3的Unix命令行。我在Windows上,所以我使用了Windows子系统Linux的bash shell,效果很好。(我只需要使用pip3而不是pip安装,因为默认情况下有Python 2.)相同的进程应该可以与其他Linux发行版或Mac终端一起使用。

步骤2:使用Azure订阅登录Azure门户。如果您没有Azure订阅,则可以免费注册并获得200美元的Azure积分

步骤3:返回命令行,在secrets.yaml文件中设置身份验证。您将使用Azure门户来检索必要的密钥,如果您还没有Azure帐户,则需要创建一个Azure Batch帐户。(批处理是Azure中的HPC群集和作业管理服务。)您可以在aztk文档中找到分步详细信息

步骤4: 在cluster.yaml文件中配置群集默认值。您可以在此处定义用于群集节点的默认VM实例大小 ; 例如, vm_size: standard_a2为您提供基本的2核节点。(你可以在命令行中覆盖它,但是在这里设置它很方便。)你还需要在这里指定一个用于设置节点图像的dockerfile,并且要与sparklyr一起使用,你需要指定一个包含R和您想要的Spark版本。我用了:

提供了Spark 2.2.0,R 3.4.1和预装的一套R软件包的图像,包括sparklyrtidyverse。(如果需要在节点上安装其他东西,可以在这里提供自己的dockerfile。)

docker_repo:aztk / r-base:spark2.2.0-r3.4.1-base

第5步:保护Spark集群。这很容易:只需使用这样的命令行工具:

aztk spark cluster create --id mysparklyr4 --size 4

在这种情况下,它将启动一个包含4个节点的集群,每个节点有2个核心(在vm_size上面配置选项之前。)每个节点都将预先安装R和(警告:Azure批处理的默认配额低得可笑:对我来说一开始它总共有24个核心。你可以很容易地获得你的限制,但可能需要一天时间才能获得批准。)配置集群大约需要5分钟; 等待时,您可以通过单击Azure门户中Azure批处理帐户的“池”部分中的群集名称来检查进度。

image.png

一旦准备好,您还需要为头节点提供密码,除非您在secrets.yaml文件中设置了ssh密钥。

步骤6:连接到Spark群集的头节点。通常你需要先找到IP地址,但是aztk可以通过ssh命令轻松找到它:

aztk spark cluster ssh --id mysparklyr4

(如果你在步骤5中设置了密码,你需要在这里提供一个密码。)这会在头节点上给你一个shell,但更重要的是它映射了Spark和RStudio服务器的端口,这样你就可以连接到他们http://localhost在下一步中使用URL。在完成后续步骤之前,请不要退出此shell,否则将取消端口映射。

第7步:连接到RStudio Server

在桌面上打开浏览器窗口,然后浏览到http://localhost:8787。这将在您的浏览器中打开RStudio Server。(默认登录名为rstudio / rstudio。)为了清楚起见,RStudio Server在Azure Batch的群集的头节点上运行,而不是在本地计算机上运行:上一步的端口映射是将本地端口8787重定向到远程集群。

从这里开始,您可以像往常一样使用RStudio。特别是,已经安装了sparklyr软件包,因此您可以直接连接到Spark集群,并使用RStudio Server的内置功能来处理Spark。

image.png

一个有关使用RStudio服务器的好处之一是,你可以关闭浏览器,甚至你的机器,并RStudio服务器将保持其状态,使用户可以准确地拿起你下次登录时离开。(只需使用 aztk spark cluster ssh到如有必要,首先重新应用端口映射。)

步骤8:完成后,使用该aztk spark cluster delete命令关闭群集 。(虽然您可以从Azure门户的“池”视图中删除节点,但该命令会为您执行一些额外的清理。)只要群集已配置,您将按照通常的VM速率为群集中的每个节点付费。(一种节省成本的选择是为节点使用低优先级VM,与通常的速率相比节省高达90%。)

而已!一旦你习惯它,它就快速而简单 - 最长的部分是等待集群在第5步中启动。这只是一个摘要,但完整的细节请参见Azure上的指南 SparklyR和AZTK

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 如果你曾经想要使用Sparklyr软件包在R群集中使用Spark集群来处理大数据集,但还没有开始,因为设置Spar...
    Liam_ml阅读 1,306评论 0 0
  • Hadoop和Spark Apache Hadoop是一个开源软件库,可以跨计算机集群分布式处理大型数据集。它具有...
    Liam_ml阅读 4,844评论 0 0
  • 新一期资源整理博客。 1 Coding: 1.阿根廷地质协会(AGA)于2020年8月和9月提供的“地理信息学应用...
    G小调的Qing歌阅读 4,095评论 0 2
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 11,310评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 11,820评论 0 2

友情链接更多精彩内容