2015-11-16 33 views
2

我想在我的机器localy使用Spark和我能够重现教程在:SparkR在Windows上 - 星火SQL不与蜂巢支持内置

http://blog.sparkiq-labs.com/2015/07/26/installing-and-starting-sparkr-locally-on-windows-os-and-rstudio/

然而,当我尝试使用蜂巢我得到以下错误:

Error in value[3L] : Spark SQL is not built with Hive support

代码:

## Set Environment variables 
Sys.setenv(SPARK_HOME = 'F:/Spark_build') 
# Set the library Path 
.libPaths(c(file.path(Sys.getenv('SPARK_HOME'), 'R','lib'),.libPaths())) 

# load SparkR 
library(SparkR) 

sc <- sparkR.init() 
sqlContext <- sparkRHive.init(sc) 

sparkR.stop() 

首先,我怀疑这是星火的预建版本,然后我试图建立我使用Maven自己,历时将近一个小时:

mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0 -Phive -Phive-thriftserver -DskipTests clean package. 

然而,错误仍然存​​在。

回答

1

如果你只是按照教程的指示,你只是没有安装Hive(从命令行尝试hive)......我发现这是Spark初学者常见的混淆之处:“预先为Hadoop“并不意味着它需要 Hadoop,更不用说它包含Hadoop(它没有),Hive也是如此。

+0

你是对的...我放弃了尝试在Windows上进行这项工作。它花了我几个小时,但它正在我的Linux VM –

+0

最好的选择,你可以使:-) – desertnaut

0

我们有同样的问题,但我们不能简单地转移到Linux。一段时间后,我们发现这个页面spark on windows,我们提出了以下解决方案:

  • 创建一个文件名为蜂房的site.xml并把它写:

    <configuration> <property> <name>hive.exec.scratchdir</name> <value>C:\tmp\hive</value> <description>Scratch space for Hive jobs</description> </property> </configuration>

  • 设置环境变量HADOOP_CONF_DIR到hive-site.xml目录。
  • 设置环境变量HADOOP_HOME截至hadoop winutils
  • 运行winutils.exe chmod -R 777 C:\tmp\hive

说这解决了我们的Windows机器上的问题,我们现在可以用蜂巢支持运行SparkR。