2015-11-16 30 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。