Windows 上的 SparkR - Spark SQL 不是使用 Hive 支持构建的
SparkR on Windows - Spark SQL is not built with Hive support
我正在尝试在我的机器上本地使用 Spark,我能够在以下位置重现该教程:
但是,当我尝试使用 Hive 时出现以下错误:
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()
先是怀疑是预建版的Spark,后来尝试用Maven搭建自己的,花了将近一个小时:
mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0 -Phive -Phive-thriftserver -DskipTests clean package.
但是,错误仍然存在。
如果您只是按照教程的说明进行操作,那么您根本就没有安装 Hive(尝试从命令行 hive
)...我发现这是 Spark 初学者的一个常见困惑点: "pre-built for Hadoop"并不意味着它需要 Hadoop,更不意味着它包含Hadoop(它没有),Hive也是如此。
我们遇到了同样的问题,但我们不能简单地移动到 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_HOME 如 hadoop winutils
所述
- 运行
winutils.exe chmod -R 777 C:\tmp\hive
这解决了我们 windows 机器上的问题,我们现在可以 运行 具有配置单元支持的 SparkR。
我正在尝试在我的机器上本地使用 Spark,我能够在以下位置重现该教程:
但是,当我尝试使用 Hive 时出现以下错误:
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()
先是怀疑是预建版的Spark,后来尝试用Maven搭建自己的,花了将近一个小时:
mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0 -Phive -Phive-thriftserver -DskipTests clean package.
但是,错误仍然存在。
如果您只是按照教程的说明进行操作,那么您根本就没有安装 Hive(尝试从命令行 hive
)...我发现这是 Spark 初学者的一个常见困惑点: "pre-built for Hadoop"并不意味着它需要 Hadoop,更不意味着它包含Hadoop(它没有),Hive也是如此。
我们遇到了同样的问题,但我们不能简单地移动到 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_HOME 如 hadoop winutils 所述
- 运行
winutils.exe chmod -R 777 C:\tmp\hive
这解决了我们 windows 机器上的问题,我们现在可以 运行 具有配置单元支持的 SparkR。