Standalone模式:Standalone模式运行的Spark集群对不同的应用程序采用先进先出(FIFO)的顺序进行调度。默认情况下每个应用程序会独占所有可用节点的资源。

现在版本的SparkR只能运行在standalone模式下

问题1:安装问题

由于R涉及到Fortran语言,要下载gcc-gfortran包

安装步骤:1)将R-3.2.3.tar.gz解压        2)./configure       3)make         4)make install(这步可以没有)         5)配置环境变量 vi .bash_profile

./configure的时候会出现以下错误:

--with-readline=yes (default) and headers/libs are not available  这是由于需要依赖readline-devel包的缘故 yum install readline-devel即可

configure: error: cannot compile a simple Fortran program 这是由于需要依赖gcc-gfortran包的缘故 yum install gcc-gfortran即可

configure: error: --with-x=yes (default) and X11 headers/libs are not available 这是由于需要依赖libXt-devel包的缘故 yum install libXt-devel即可

以上步骤依赖了较多的包:①gcc ②gcc-c++ ③readline-devel ④gcc-gfortran ⑤libXt-devel

  1. yum install libXt-devel
  2. yum install readline-devel
  1. yum install gcc
  2. yum install gcc-c++
  3. yum install gcc-gfortran
  4. tar -zxvf R-3.2.3.tar.gz
  5. cd R-3.2.3
  6. ./configure
  7. make

问题2:

unsupported URL scheme
Warning: unable to access index for repository https://rweb.crmda.ku.edu/cran/src/contrib

镜像问题,解决方式有两种:1)换镜像,即在选择的时候改   2)install.packages("RODBC", dependencies = TRUE, repos = "http://cran.rstudio.com/")

问题3:在安装R包的时候遇见错误

configure: error: "ODBC headers sql.hand sqlext.h not found"

是因为没有在Linux 下安装ODBC包。RODBC 需要 unixODBC 和unixODBC development 包,使用YUM 安装之后即可解决。

yum install unixODBC

yum install unixODBC-devel

则之后再install.packages("RODBC", dependencies = TRUE, repos = "http://cran.rstudio.com/")

一直连不上远程数据库,要查看一下是不是网络不通,ping一下远程主机。

SparkR编程示例:

  1. #如果直接调用的sparkR,则不用设置Sys.setenv和.libPaths,直接library(SparkR)即可
  1. #Sys.setenv(SPARK_HOME = "D:/StudySoftWare/Spark/spark-1.5.2-bin-hadoop2.6")
  2. #.libPaths(c(file.path(Sys.getenv("SPARK_HOME"),"R","lib"), .libPaths()))
  3. library(SparkR)
  4. sc <- sparkR.init(master = "local")
  1. #sc <- sparkR.init(master = "spark://192.168.133.11:7077") 以集群方式运行
  2. sqlContext <- sparkRSQL.init(sc)
  3. DF <- createDataFrame(sqlContext, faithful)
  4. head(DF)
  5. localDF <- data.frame(name=c("John", "Smith", "Sarah"), age=c(19, 23, 18))
  6. df <- createDataFrame(sqlContext, localDF)
  7. # Print its schema
  8. printSchema(df)
  9. # root
  10. #  |-- name: string (nullable = true)
  11. #  |-- age: double (nullable = true)
  12. # Create a DataFrame from a JSON file
  13. path <- file.path(Sys.getenv("SPARK_HOME"), "examples/src/main/resources/people.json")
  14. peopleDF <- jsonFile(sqlContext, path)
  15. printSchema(peopleDF)
  16. # Register this DataFrame as a table.
  17. registerTempTable(peopleDF, "people")
  18. # SQL statements can be run by using the sql methods provided by sqlContext
  19. teenagers <- sql(sqlContext, "SELECT name FROM people WHERE age >= 13 AND age <= 19")
  20. # Call collect to get a local data.frame
  21. teenagersLocalDF <- collect(teenagers)
  22. # Print the teenagers in our dataset
  23. print(teenagersLocalDF)
  24. # Stop the SparkContext now
  25. sparkR.stop()

Java.io.IOException: Cannot run program "Rscript": error=2, No such file or directory  遇到这种错误是因为:

looks like the issue was that code was looking for Rscript under "/usr/bin". Our default installation was /usr/revolutionr.
Just created a link Rscript in /usr/bin that points to /usr/revolution/bin/Revoscript

或者拷贝一份Rscript到/usr/bin目录下即可,参考:https://github.com/RevolutionAnalytics/RHadoop/issues/87

示例二:wordCount

  1. library(SparkR)
  2. sparkR.stop()
  3. #调用sparkR的时候会自动的初始化一个SparkContext,默认是local模式
  4. sc <- sparkR.init(master="spark://<pre name="code" class="plain">192.168.133.11

:7077","WordCount")#sparkR.init(master = "", appName = "SparkR",sparkHome = Sys.getenv("SPARK_HOME"), sparkEnvir = list(),sparkExecutorEnv = list(), s#parkJars = "", sparkPackages = "")


  1. lines <- SparkR:::textFile(sc, "hdfs://namenode主机名/user/root/test/word.txt")
  1. words <- SparkR:::flatMap(lines, function(line) { strsplit(line, " ")[[1]] })
  1. wordCount <- SparkR:::lapply(words, function(word) { list(word, 1L) })
  1. counts <- SparkR:::reduceByKey(wordCount, "+", 2L)
  1. #如果要保存到hdfs中,则path要写成"hdfs://namenode主机名/user/root/test/sparkR.txt") path要给出全路径
  1. SparkR:::saveAsTextFile(counts, "hdfs://namenode主机名/user/root/test/sparkR.txt")
  2. ##如果要保存到hdfs中,则path要写成"hdfs://namenode主机名/user/root/test/sparkR.txt") path要给出全路径
    ##如果要将createDataFrame(hc,生成的 sparkr dataframe 以文件形式存到hive中 需要先将其转为rdd
    data_in_rdd <- SparkR:::toRDD(data_in)
    SparkR:::saveAsTextFile(data_in_rdd, evo_table_name_lower_with_path)

  1. output <- SparkR:::collect(counts)

API documentation1:http://amplab-extras.github.io/SparkR-pkg/rdocs/1.2/index.html,该网址给出的API要这样调用SparkR:::函数名

 

API documentation2:http://spark.apache.org/docs/1.5.2/api/R/index.html,该网址给出的API可以直接调用。

R语言学习笔记之<在Linux上遇到的问题集锦>的更多相关文章

  1. R语言学习笔记之: 论如何正确把EXCEL文件喂给R处理

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html ---- 前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. ...

  2. R语言学习笔记(二)

    今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") &g ...

  3. R语言学习笔记:小试R环境

    买了三本R语言的书,同时使用来学习R语言,粗略翻下来感觉第一本最好: <R语言编程艺术>The Art of R Programming <R语言初学者使用>A Beginne ...

  4. R语言学习笔记:基础知识

    1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...

  5. R语言学习笔记1——R语言中的基本对象

    R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心 ...

  6. R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//")> setwd("e:\桌面\")> s ...

  7. R语言学习笔记

    向量化的函数 向量化的函数 ifelse/which/where/any/all/cumsum/cumprod/对于矩阵而言,可以使用rowSums/colSums.对于“穷举所有组合问题" ...

  8. R语言学习笔记:分析学生的考试成绩

    孩子上初中时拿到过全年级一次考试所有科目的考试成绩表,正好可以用于R语言的统计分析学习.为了不泄漏孩子的姓名,就用学号代替了,感兴趣可以下载测试数据进行练习. num class chn math e ...

  9. R语言学习笔记:字符串处理

    想在R语言中生成一个图形文件的文件名,前缀是fitbit,后面跟上月份,再加上".jpg",先不百度,试了试其它语言的类似语法,没一个可行的: C#中:"fitbit&q ...

随机推荐

  1. oc 类型判断

    #import <UIKit/UIKit.h> #import "AppDelegate.h" @interface A : NSObject @end @implem ...

  2. mongodb win7 32位系统安装以及配置

    今天安装 win7 32位系统 mongodb 费了好大劲..记录一下,希望相同的同学可以少踩点坑. 1.安装 我安装的是3.2.4  地址:http://downloads.mongodb.org/ ...

  3. RCU介绍

    RCU原理: RCU(Read-Copy Update),顾名思义就是读-拷贝修改,它是基于其原理命名的.对于被RCU保护的共享数据结构,读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个 ...

  4. Python center() 方法

    描述 center() 方法返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格. 语法 center() 方法语法: S.center(width[,fillch ...

  5. Java JNI的具体介绍

    JNI就是Java Native Interface的简称,也就是java本地接口.它提供了若干的API实现了和Java和其它语言的通信(主要是C&C++).也许不少人认为Java已经足够强大 ...

  6. cocos2dx 3.x 避免空sprite

    由于cocos2dx 3.x中autobatch的,如果场景中含有空sprite(并且还不处于visible==false状态)的话,则会打断流水线(因为空sprite的贴图与其它元素的贴图必定不在同 ...

  7. 【转】sql server存储过程中SELECT 与 SET 对变量赋值的区别

    转自:http://www.cnblogs.com/micheng11/archive/2008/07/08/1237905.html SQL Server 中对已经定义的变量赋值的方式用两种,分别是 ...

  8. [Codility] CommonPrimeDivisors

    A prime is a positive integer X that has exactly two distinct divisors: 1 and X. The first few prime ...

  9. 有限狀態機FSM coding style整理 (SOC) (Verilog)

    AbstractFSM在數位電路中非常重要,藉由FSM,可以讓數位電路也能循序地執行起演算法.本文將詳細討論各種FSM coding style的優缺點,並歸納出推薦的coding style. In ...

  10. 【Android】18.1 利用安卓内置的定位服务实现位置跟踪

    分类:C#.Android.VS2015: 创建日期:2016-03-04 一.安卓内置的定位服务简介 通常将各种不同的定位技术称为位置服务或定位服务.这种服务是通过电信运营商的无线电通信网络(如GS ...