【大数据处理架构】SparkR

来源:互联网 发布:编程命名规范 编辑:程序博客网 时间:2024/05/16 11:16

一、从R说起

   R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个广泛应用于统计计算和统计制图的优秀编程语言。

    

优点:开源,有许多工具包,可塑性强。

例子:quantmond 用于股票分析

> install.packages('quantmod') # 安装quantmod包> require(quantmod) #引用quantmod包> getSymbols("GOOG",src="yahoo",from="2013-01-01", to='2013-04-24') #从雅虎财经获取google的股票数据> chartSeries(GOOG,up.col='red',dn.col='green')  #显示K线图> addMACD() #增加MACD图

交互式

例子:Shiny

RStudio是的R语言IDE,其开发团队最近又推出了一个新的产品,即Shiny包。它的作用是快速搭建基于R的交互网页应用。使得那些对代码不熟悉的人士在工作中也可以应用统计模型。对于R和web的交互,之前已经有一些相关的包,例如:rApache, Rhttpd, Rack, Rook。不过这些工具都需要开发者不仅要熟悉R,还要熟悉网页编程语言(html,CSS,JS)。而Shiny包的特点在于不需要了解网页语言,可以用纯R来搭建。生成的网页应用是动态交互,而且是即时更新的

首先安装Shiny包:
options(repos=c(RStudio='http://rstudio.org/_packages', getOption('repos')))
install.packages('shiny')

再写两个R代码文件:
一个是负责前端的ui.R,另一个是负责后端的server.R。

这是前端的

library(shiny)library(ggplot2) dataset <- iris shinyUI(pageWithSidebar(   headerPanel("鸢尾花的数据展示"),  sidebarPanel(     selectInput('x', 'X', names(dataset)),    selectInput('y', 'Y', names(dataset)[2]),    selectInput('color', 'Color', c('None', names(dataset))),     checkboxInput('smooth', 'Smooth')    ),   mainPanel(    plotOutput('plot')  )))
后端的

library(shiny)library(ggplot2) shinyServer(function(input, output) {   output$plot <- reactivePlot(function() {     p <- ggplot(dataset, aes_string(x=input$x, y=input$y)) + geom_point()     if (input$color != 'None')      p <- p +         aes_string(color=input$color) +         theme(legend.position="top")     if (input$smooth)      p <- p +         geom_smooth() +         theme(legend.position="top")     print(p)   }, height=400) })

将这两个代码文件存放到同一个文件夹下,最后在控制台下运行:

library(shiny)
runApp("d:/rspace/shinyapp")

http://rcharts.io/gallery/

http://www.ats.ucla.edu/stat/r/modules/exploring_w_graphics.htm

优点:可扩展性强


二、SparkR 强强联手

和Scala一样,SparkR也支持多种的集群管理模式。SparkR遵循Apache 2.0 License,除了要求用户在他们机器上安装R和Java之外,不需要依赖任何外部的东西!

而在spark1.4以后的版本中spark 自带sparkr无需下载package。

sparkR 运行图


本质上,通过sparkr-shell编写r语言程序,进行运算和分析。通过IDE些代码和package 的管理更方便

推荐使用RStudio

https://www.rstudio.com/products/rstudio/

本地使用:

  sc <- sparkR.init("local")  lines <- textFile(sc, "hdfs://data.txt")  wordsPerLine <- lapply(lines, function(line) { length(unlist(strsplit(line, " "))) 

远程访问(也就是,远程访问数据库HDFS和spark:如下

spark://arahant-01:7077Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.10:1.2.0" "sparkr-shell"')Sys.setenv(SPARK_HOME="/opt/spark-1.4.0-bin-hadoop2.6")install.packages('magrittr')library(SparkR)library(lattice)library(magrittr)sc <- sparkR.init(master = "spark://arahant-01:7077", sparkEnvir=list(spark.sparkr.use.daemon="false"))sqlContext <- sparkRSQL.init(sc)df <- read.df(sqlContext, "hdfs://arahant-01:9000/oil/index.csv", source = "com.databricks.spark.csv", header="true")hiveContext <- sparkRHive.init(sc)results <- sql(hiveContext, "select * from north_dakota_montana_index")collected <- collect(results)


通过WEB访问。需要配置

1.本机上安装Rstudio

2.打开8787端口


这样你就可以通过输入

http://your IP: 8787 使用WEb版的RStudio

如图


PS.  GOOGLDE trend:cloud computing virtualization  bigdata



1 0
原创粉丝点击