R语言 使用sparklyr包连接spark,遇到的问题及解决

时间:2022-02-02 01:40:56

1. 首先要安装好spark,我安装的是CDH5.6版本,该版本中的spark是1.5.0,版本太低不能支持sparklyr包,按照官网的例子至少应该是spark1.6.2版本,所以我从官网下载了spark1.6.2版本重新安装到了我的hadoop中。

2.安装完了之后有一个很重要的步骤就是要配置spark_home,要在Renviron.site文件中进行配置,例如我的文件目录是usr/lib64/R/etc/Renviron,在该文件中写入类似

SPARK_HOME=/opt/spark/spark-2.0.0-bin-hadoop2.6(这里是自己单独安装hadoop组件的时候你的spark路径),我使用的CDH版本,spark目录位置:SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark。

3. 使用官网例子尝试连接:

library(sparklyr)
library(dplyr)
sc <- spark_connect(master = "local")    ###本地使用local,如果使用集群的话,例如我的是CDH版本,那么就要使用yarn-client

连接上之后,尝试向spark传数据

iris_tbl <- copy_to(sc, iris)
这个时候你可能会报一个错误,/temp/hive的写入权限问题,如下图所示:


R语言 使用sparklyr包连接spark,遇到的问题及解决

这个错误需要你修改该路径的权限:sudo -u hdfs hadoop fs -chmod -R 777 /tmp/hive/;   使用该代码运行即可。

然后再运行

iris_tbl <- copy_to(sc, iris)
src_tbls(sc)

[1] "iris"
当出现上面的结果的时候,就是连接和配置成功了。然后你可以开启你的基于R的大数据之旅了。

点击链接加入群【R语言&大数据分析】:https://jq.qq.com/?_wv=1027&k=4CBEBJl,或加QQ群号:456726635。

有任何问题可以加群跟我联系。