CDH的很少看到有資料介紹,看到官方文檔明確不支持sparkR。
然後在看到Rhadoop的一些博客,捨棄CDH自帶的spark stack,使用Apache上最新的spark1.5.2,直接下載放在節點上,採用spark on yarn的方式調用hadoop資源。
需要做的只是把hadoop,hive的配置拷貝到spark的conf下。免去安裝spark集羣的工作。
################
RStudio 在linux上安裝以後,如何調用sparkR?找了很久,沒什麼資料,看到一個AWS上的帖子,頓然開朗。
http://www.tuicool.com/articles/Br67rmJ
看到關鍵的一段。
################
以下是RStudio中執行。
###############
print('Now connecting to Spark for you.')
#加載包library("rJava")
library("rhdfs")
library("SparkR")
#環境變量
.libPaths(c(.libPaths(), '/opt/hadoop/spark-latest/R/lib'))
Sys.setenv(SPARK_HOME = '/opt/hadoop/spark-latest')
Sys.setenv(PATH = paste(Sys.getenv(c('PATH')), '/opt/hadoop/spark-latest/bin', sep=':'))
Sys.setenv(HADOOP_CMD="/opt/cloudera/parcels/CDH/bin/hadoop")
Sys.setenv(HADOOP_HOME="/opt/cloudera/parcels/CDH/lib/hadoop")
Sys.setenv(HADOOP_CONF_DIR="/etc/hadoop/conf")
Sys.setenv(HIVE_HOME="/opt/cloudera/parcels/CDH/lib/hive")
Sys.setenv(SCALA_HOME="/opt/hadoop/scala-latest")
#初始化
sc <- sparkR.init("yarn-client", "SparkR", "/opt/hadoop/spark-latest",list(spark.executor.memory="1g"))
sqlContext <- sparkRSQL.init(sc)
print('Spark Context available as \"sc\". \\n')
print('Spark SQL Context available as \"sqlContext\". \\n')
################################################
#測試讀取hive表格
hiveContext <- sparkRHive.init(sc)
results <- sql(hiveContext, "select countrycode,year,growtheingini,privcreavg from external_bz2_tbl_6005 limit 10")
head(results)
################################################