如何使用CDSW在CDH集群通过sparklyr提交R的Spark作业
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
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依赖包
[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")
> install.packages("nycflights13")
> install.packages("Lahman")
> install.packages("ggplot2")
2.编写R测试代码
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.命令行运行代码
[ec2-user@ip-172-31-21-45 ~]$ Rscript sparklyr.R
4.访问8088服务查看作业运行情况
作业运行成功
执行结果:
3.CDSW提交作业
1.安装依赖包
install.packages("sparklyr")
install.packages("nycflights13")
install.packages("Lahman")
install.packages("ggplot2")
2.创建sparklyrByCDSW.r文件,将命令行测试代码拷贝至sparklyrByCDSW.r
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实操
- MySQL管理工具HeidiSQL
- Centos 使用YUM安装MariaDB
- Div Scroll Bar (用层模拟滚动条)
- WordPress免插件仅代码实现文章浏览次数的方法(3)
- 定义新智慧,这AI很“远景X3”
- WordPress删除头部wp_head()多余代码
- 域名fde.com在国内平台以11万元被秒
- 微信小程序助力实体店对接互联网市场
- PostgreSQL 与 MySQL 相比,优势何在?
- Setting Up KeePass For Centos 6
- 拼音米大热!快视”、“冰冰”等多个域名结拍
- 入门必读:Hadoop新手学习指导
- 使用密码记录工具keepass来保存密码
- 机器人带着VR学习,最后学会了人工智能
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 为了--force-pivoting参数,我问候了sqlmap开发者
- flexible array柔性数组、不定长的数据结构Struct详解
- 如何优雅打印nginx header和body
- Go的CSP并发模型实现:M, P, G
- Golang依赖管理工具:glide从入门到精通使用
- Redis的Multi的内幕真相
- shell expect权威指南和实战
- 3种方式限制ip访问Oracle数据库
- 服务发现之consul的介绍、部署和使用
- Mybatis处理查询map 为null 导致查询map无该key对象
- 深入对比TOML,JSON和YAML
- consul配置参数大全、详解、总结
- 跳跃表原理和实现
- 你动、蒙娜丽莎跟着一起动,OpenCV这么用,表情口型造假更难防了
- 好用的PHP高性能多并发restful的HTTP Client