我使用的Spark 3.1.3是在基于Unix的生产服务器上预建的,没有Hadoop,Spark是在独立模式下运行的,我使用的是本地文件系统,而不是像Hadoop这样的分布式文件系统。
我非常希望在本地复制生产环境,但遗憾的是,我只能使用Windows。
通常,我可以使用为Hadoop Y预构建的Spark 3.1.3和下面提供的winutils工具在Windows上运行Spark:https://github.com/steveloughran/winutils
据我所知,winutils模拟的是Hadoop,而不是unixFS。
我可以在生产环境和Windows开发机器上使用完全相同的Spark二进制文件吗?或者我只能在本地使用为Hadoop预构建的Spark?
你能解释一下为什么这两种解决方案都有效吗?
我试着使用没有Hadoop的预建版本在本地运行我的Spark脚本,但是我无法启动我的脚本。(将提供一些日志,当我回到我的Windows机器上时编辑这些日志)
1条答案
按热度按时间bnlyeluc1#
“没有”只指下载的tarball中的脚本/库。更正确的术语应该是“带上自己的Hadoop”。您仍然需要
HADOOP_CONF_DIR
+HADOOP_HOME
集,以及HDFS客户端JAR库来使用本地FS。是的,你可以在Windows上使用Spark,只要安装正确版本的Winutils。或者你可以在完整的Unix环境下使用WSL 2并下载Spark。