前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用CDSW在CDH集群通过sparklyr提交R的Spark作业

如何使用CDSW在CDH集群通过sparklyr提交R的Spark作业

作者头像
Fayson
修改2018-04-01 19:22:11
1.7K0
修改2018-04-01 19:22:11
举报
文章被收录于专栏:Hadoop实操Hadoop实操

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.文档编写目的


继上一章介绍如何使用R连接Hive与Impala后,Fayson接下来讲讲如何在CDH集群中提交R的Spark作业,Spark自带了R语言的支持,在此就不做介绍,本文章主要讲述如何使用Rstudio提供的sparklyr包,向CDH集群的Yarn提交R的Spark作业。

  • 内容概述

1.命令行提交作业

2.CDSW中提交作业

3.总结

  • 测试环境

1.操作系统:RedHat7.2

2.采用sudo权限的ec2-user用户操作

3.CDSW版本1.1.1

4.R版本3.4.2

  • 前置条件

1.Spark部署为On Yarn模式

2.CDH集群正常

3.CDSW服务正常

2.命令行提交作业


1.在R的环境安装sparklyr依赖包

代码语言:txt
复制
[ec2-user@ip-172-31-21-45 ~]$ R
R version 3.4.2 (2017-09-28) -- "Short Summer"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
...
> install.packages("sparklyr")
代码语言:txt
复制
> install.packages("nycflights13")
代码语言:txt
复制
> install.packages("Lahman")
代码语言:txt
复制
> install.packages("ggplot2")

2.编写R测试代码

代码语言:txt
复制
library(sparklyr)
library(dplyr)

sc <- spark_connect(master = 'yarn-client', spark_home = Sys.getenv("SPARK_HOME","/opt/cloudera/parcels/SPARK2/lib/spark2"))

iris_tbl <- copy_to(sc, iris)
flights_tbl <- copy_to(sc, nycflights13::flights, "flights")
batting_tbl <- copy_to(sc, Lahman::Batting, "batting")

src_tbls(sc)

flights_tbl %>% filter(dep_delay == 2)

delay <- flights_tbl %>%
  group_by(tailnum) %>%
  summarise(count = n(), dist = mean(distance), delay = mean(arr_delay)) %>%
  filter(count > 20, dist < 2000, !is.na(delay)) %>%
  collect

3.命令行运行代码

代码语言:txt
复制
[ec2-user@ip-172-31-21-45 ~]$ Rscript sparklyr.R

4.访问8088服务查看作业运行情况

作业运行成功

执行结果:

3.CDSW提交作业


1.安装依赖包

代码语言:txt
复制
install.packages("sparklyr")
install.packages("nycflights13")
install.packages("Lahman")
install.packages("ggplot2")

2.创建sparklyrByCDSW.r文件,将命令行测试代码拷贝至sparklyrByCDSW.r

代码语言:txt
复制
library(rlang)
library(sparklyr)
library(dplyr)

sc <- spark_connect(master = 'yarn-client', spark_home = Sys.getenv("SPARK_HOME","/opt/cloudera/parcels/SPARK2/lib/spark2"))

iris_tbl <- copy_to(sc, iris)
flights_tbl <- copy_to(sc, nycflights13::flights, "flights")
batting_tbl <- copy_to(sc, Lahman::Batting, "batting")

src_tbls(sc)

flights_tbl %>% filter(dep_delay == 2)

delay <- flights_tbl %>%
  group_by(tailnum) %>%
  summarise(count = n(), dist = mean(distance), delay = mean(arr_delay)) %>%
  filter(count > 20, dist < 2000, !is.na(delay)) %>%
  collect

# plot delays
library(ggplot2)
ggplot(delay, aes(dist, delay)) +
  geom_point(aes(size = count), alpha = 1/2) +
  geom_smooth() +
  scale_size_area(max_size = 2)

spark_disconnect(sc)

3.运行代码测试

4.查看Yarn作业

5.运行结果

Yarn作业显示

4.总结


通过Rstudio提供的sparklyr包,你可以连接到Spark本地实例以及远程Spark集群,本文档主要讲述了R通过调用sparklyr提供的SparkAPI接口与Spark集群建立连接,而未实现在Spark中调用R的函数库或自定义方法。如何在Spark集群中分布式运行R的所有代码(Spark调用R的函数库及自定义方法),Fayson会在接下来的文章做详细介绍。

醉酒鞭名马,少年多浮夸! 岭南浣溪沙,呕吐酒肆下!挚友不肯放,数据玩的花! 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。


推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档