【问题标题】:SparkR on Windows - Spark SQL is not built with Hive supportWindows 上的 SparkR - Spark SQL 未使用 Hive 支持构建
【发布时间】:2016-02-17 01:44:35
【问题描述】:

我正在尝试在我的机器上使用本地 Spark,并且能够在以下位置重现该教程:

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

但是,当我尝试使用 Hive 时,出现以下错误:

值错误[3L]:Spark SQL 未在 Hive 支持下构建

代码:

## 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()

首先我怀疑是Spark的预编译版本,然后我尝试使用Maven构建自己的,花了将近一个小时:

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

但是,错误仍然存​​在。

【问题讨论】:

    标签: r apache-spark hive sparkr


    【解决方案1】:

    如果您只是按照教程的说明进行操作,则根本没有安装 Hive(从命令行尝试 hive)...我发现这是 Spark 初学者的常见混淆点:“预建for Hadoop”并不意味着它需要 Hadoop,更不用说它包含 Hadoop(它不需要),Hive 也是如此。

    【讨论】:

    • 你是对的...我放弃了尝试在 Windows 上进行这项工作。我花了几个小时,但它正在我的 linux VM 上运行
    • 您可以做出的最佳选择 :-)
    【解决方案2】:

    我们遇到了同样的问题,但我们不能简单地迁移到 linux。一段时间后,我们找到了这个页面spark on windows,并提出了以下解决方案:

    • 创建一个名为 hive-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 winutils 中的说明设置环境变量HADOOP_HOME
    • 运行winutils.exe chmod -R 777 C:\tmp\hive

    这解决了我们的 windows 机器上的问题,我们现在可以在 hive 支持下运行 SparkR。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多