1. 系统拓扑图

在日常业务分析中,R是非常常用的分析工具,而当数据量较大时,用R语言需要需用更多的时间来完成训练模型,spark作为大规模数据处理框架,采用内存计算,可以短时间内完成大量的数据的处理及计算模型,但缺点是不能图形展示,R语言的sparkly则提供了R语言和Spark的接口,实现了在数据量大的情况下,应用Spark的快速数据分析和处理能力结合R语言的图形化展示功能,方便业务分析,模型训练。

但是要想使多人同时共享R和Spark,还需要其他的相关组件,下图展示了所有相关的组件及应用:

2. 安装方法

  • 2.1 Rstudio-Server简介及安装方法

RStudio是R语言开发中的利器,是一个IDE集成环境。RStudio Server版本提供了web的功能,可以安装远程计算机,通过web进行访问,支持多用户.

安装完成后,如果顺利可登录 http://ip地址:8787 访问Rstudio Web客户端界面,如果遇到问题,请查看博主下一篇关于常见问题的解决方案

  • 2.2 sparklyr包的简介及安装方法

sparkly包是由Rstudio公司发布的,用于接口Spark大数据平台的,实现R与Spark的连接,sparklyr包提供了一个完整的dplyr后端,可筛选并聚合Spark数据集,接着在R中实现分析与可视化,利用Spark的MLlib机器学习库在R中实现分布式机器学习算法,同时可以创建一个扩展,用于调用Spark API,并为Spark的所有包集提供了一个接口。

sparkyr的安装方法

  • 2.3 shiny Server简介及安装方法

在R界面安装shiny包

install.packages('shiny', repos=‘https://cran.rstudio.com/')

wget https://download3.rstudio.org/centos5.9/x86_64/shiny-server-1.5.1.834-rh5-x86_64.rpm

sudo yum install --nogpgcheck shiny-server-1.5.1.834-rh5-x86_64.rpm

启动与关闭 shiny-server

start shiny-server         # 启动

stop shiny-server      # 停止

restart shiny-server      # 重启

status shiny-server      #查看状态

reload shiny-server      #不中断服务的前提下 更新加载配置项

登陆web界面查看运行情况

http://10.211.55.16:3838/   默认端口时3838,可以在配置文件(/etc/shiny-server/shiny-server.conf)中修改

3. 使用说明

  • 3.1 spark的连接方法

<本地模式>

如果只是在本机Rstudio使用,可以在本地下载spark,并调用本地local模式

library(sparklyr)

spark_install(version = "1.6.2")

sc <- spark_connect(master = “local”, version = ‘1.6.2’)

<yarn模式>

- 简单的配置方法:

library(sparklyr)

library(dplyr)

sc <- spark_connect(master = "spark://10.211.55.18:7077",spark_home = "/home/hive/spark/")

- 详细的配置方法:

library(sparklyr)

Sys.setenv(SPARK_HOME = "/home/ctsats/spark-1.6.1-bin-hadoop2.6")

Sys.setenv(HADOOP_CONF_DIR = '/etc/hadoop/conf.cloudera.hdfs')

Sys.setenv(YARN_CONF_DIR = '/etc/hadoop/conf.cloudera.yarn')

config <- spark_config()

config$spark.executor.instances <- 4

config$spark.executor.cores <- 4

config$spark.executor.memory <- “4G"

sc <- spark_connect(master="yarn-client", config=config)

  • spark连接方法与参数解析

 

spark_connect(master, spark_home = Sys.getenv("SPARK_HOME"),
method = c("shell", "livy", "test"), app_name = “sparklyr",
version = NULL, hadoop_version = NULL, config = spark_config(),
extensions = sparklyr::registered_extensions())

spark_connection_is_open(sc)

spark_disconnect(sc, ...)

spark_disconnect_all()

参数

参数说明

master

连接Spark 集群使用 url作为参数

sc <- spark_connect(master = "spark://10.211.55.18:7077",spark_home = "/home/hive/spark/")

连接本地(使用spark_install)安装spark使用 ”local”模式

sc <- spark_connect(master = “local”, version = ‘1.6.2’)

spark_home

设置spark的安装路径,这里如果指定安装spark_home,就不要指定version这个参数,因为version参数指定,会使用本地通过spark_install安装的spark路径,造成错误

method

这个参数用来设置连接spark的方法,目前只实现了shell模式

app_name

应用的名字,用在Spark集群中显示

hadoop_version

只用于local模式

config

连接Spark的通用设置,详见spark_config参数

extensions

可用于连接的扩展包,默认全部都可以( sparklyr::register_extension)

sc

一个spark链接

其他参数

这里暂时未用

  spark_config(file = "config.yml", use_default = TRUE)

 

参数

参数说明

file

配置文件的名字

use_default

默认使用spark_home构建时默认参数

spark_install(version = NULL, hadoop_version = NULL, reset = TRUE,

logging = "INFO", verbose = interactive())

spark_uninstall(version, hadoop_version)

spark_install_dir()

spark_install_tar(tarfile)

spark_installed_versions()

spark_available_versions()

参数

参数说明

version

安装spark的版本,可以用 spark_available_versions 查看支持的版本

hadoop_version

安装hadoop的版本,可以用 spark_available_versions 查看支持的版本

reset

尝试恢复默认设置

logging

设置日志等级,支持选项:"WARN", "INFO"

tarfile

安装本地包

其他具体参考如下链接:

http://spark.rstudio.com/reference/index.html

sparkly主要实现dplyr,ML,Extensions三个接口,下面主要介绍各个接口的功能:

  

  • 3.2 dply的使用说明

dplyr是一个R接口,用于处理R内部或外部数据,dplyr使R用户操作数据更便捷,连续,高效。应用dplyr操作Spark DataFrames,你可以:

• 选择,过滤,聚合数据(Select, filter, and aggregate)

• 使用窗口功能(Use window functions ),e.g. for sampling

• 表连接(Perform joins on DataFrames)

• 采集数据(Collect data from Spark into R)

在dplyr中,状态可以通过管道被连接(定义方法%>%)

  • 3.3 ML的使用说明

sparklyr提供了一个Spark机器学习(spark.ml package)接口,与dplyr接口一样,你可以方便的在Spark创建和训练机器学习模型,并在R中分析应用

sparklyr 提供了三个相似的函数,用于在Spark进行机器学习

机器学习算法: Machine learning algorithms for analyzing data (ml_*)

特征提取与转换: Feature transformers for manipulating individual features (ft_*)

操作spark DataFrame: Functions for manipulating Spark DataFrames (sdf_*)

应用Sparklyr大致用如下流程组成:

通过sparklyr dplyr接口,执行SQL查询接口

通过 sdf_* and ft_*函数生产新的的列或分区数据集

从 ml_*方法选择合适的机器学习算法为数据建模

验证模型的质量(准确度),并用它对新的数据进行预测

应用R进行可视化分析并进行深度分析

    • 3.4 Extensions的使用说明

sparklyr提供了dplyr与spark DataFrames接口,同时提供了一个R语言与spark机器学习包的接口,然而,因为Spark是一个通用集群计算系统,其他接口可通过扩展工具创建自己的R接口。

举例1:

library(sparklyr)

# 读textfile RDD 这里的类型为list

rdd_collect <- function(sc, file) {

spark_context(sc) %>%

invoke("textFile", file, 1L) %>%

}

a <- rdd_collect(sc, “/Users/hduser/test.txt”)

# 查看a的数据类型,我们知道spark scala中该方法生成RDD类型,但是R语言中数据类型没有Rdd,所以这里生成list类型

class(a)

[1] "list"

其他扩展方法待大家自己扩展挖掘,方法参见:

http://spark.rstudio.com/extensions.html#introduction

大数据平台R语言web UI应用架构 设计与开发的更多相关文章

  1. 大数据之R语言速成与实战

    什么是R语言? R语言由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman两人共同发明.其词法和语法分别源自Scheme和S语言. R定义:一个能够自有有效的用于统计计算和绘图的 ...

  2. 经典书单、站点 —— 大数据/数据分析/R语言

    1. 科普.入门 <大数据智能>,刘知远.崔安顺等著: 特色:系统,宏观和全面: 2. R 语言站点 http://langdawei.com/:R 语言数据采集与可视化:

  3. 大数据基础--R语言(刘鹏《大数据》课后习题答案)

    1.R语言是解释性语言还是编译性语言?   解释性语言 2.简述R语言的基本功能.   R语言是一套完整的数据处理.计算和制图软件系统,主要包括以下功能: (1)数据存储和处理功能,丰富的数据读取与存 ...

  4. 【大数据技术】HBase与Solr系统架构设计

    如何在保证存储量的情况下,又能保证数据的检索速度. HBase提供了完善的海量数据存储机制,Solr.SolrCloud提供了一整套的数据检索方案. 使用HBase搭建结构数据存储云,用来存储海量数据 ...

  5. Spark项目之电商用户行为分析大数据平台之(九)表的设计

    一.概述 数据设计,往往包含两个环节: 第一个:就是我们的上游数据,就是数据调研环节看到的项目基于的基础数据,是否要针对其开发一些Hive ETL,对数据进行进一步的处理和转换,从而让我们能够更加方便 ...

  6. 写论文,没数据?R语言抓取网页大数据

    写论文,没数据?R语言抓取网页大数据 纵观国内外,大数据的市场发展迅猛,政府的扶持也达到了空前的力度,甚至将大数据纳入发展战略.如此形势为社会各界提供了很多机遇和挑战,而我们作为卫生(医学)统计领域的 ...

  7. HDP 大数据平台搭建

    一.概述 Apache Ambari是一个基于Web的支持Apache Hadoop集群的供应.管理和监控的开源工具,Ambari已支持大多数Hadoop组件,包括HDFS.MapReduce.Hiv ...

  8. CentOS7部署CDH6.0.1大数据平台

    Cloudera’s Distribution Including Apache Hadoop,简称“CDH”,基于Web的用户界面,支持大多数Hadoop组件,包括HDFS.MapReduce.Hi ...

  9. 朝花夕拾之--大数据平台CDH集群离线搭建

    body { border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto; } body .markdown-body ...

随机推荐

  1. extjs6环境

    安装JDK http://www.oracle.com/technetwork/java/javase/downloads/ 安装到指定路径,例如D:\Java配置环境变量 此电脑—属性—高级系统设置 ...

  2. Field 'id' doesn't have a default value(jdbc连接错误)

    JDBC 连接错误: 编写数据库连接增添数据时,出现以下错误: error : java.sql.SQLException: Field 'id' doesn't have a default val ...

  3. 【转载】Adapter用法总结大全

    下面的是看到的比较好的地址: Android各种Adapter的用法:                 http://my.oschina.net/u/658933/blog/372151 Andro ...

  4. angular下拉

    <div class="form-group col-sm-4"> <label class="col-sm-5 control-label" ...

  5. 使用.net Reflector手动修改单个dll文件

    在项目中修改bug会存才版本混乱的问题,加上dll中的依赖项目比较多,想要修改单个dll文件中的少量代码是很麻烦的. 可以使用Reflector和Reflexil可以手动修改单个dll文件,我使用的是 ...

  6. ArcGIS百米网格自动生成

    最近需要用百米网格进行空间叠加分析,首先得自动生成百米网格数据.经过查找,发现ARCgis可以自动生成网格.方法如下 2.创建格网(Creat Fishnet).需要用到ArcGIS的ArcToolb ...

  7. Largest Rectangle in a Histogram(DP)

    Largest Rectangle in a Histogram Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K ...

  8. 重拾java之路之webservice

         Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性.你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web servi ...

  9. PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制

    2013年10月06日最新整理. PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制 微信公共平台消息主动推送接口一直是腾讯的私用接口,相信很多朋友都非常想要用到这个功能. 通过学习 ...

  10. Java Spring AOP用法

    Java Spring AOP用法 Spring AOP Java web 环境搭建 Java web 项目搭建 Java Spring IOC用法 spring提供了两个核心功能,一个是IoC(控制 ...