Windows 上的 spark-shell 错误 - 如果不使用 hadoop,可以忽略它吗?

Posted

技术标签:

【中文标题】Windows 上的 spark-shell 错误 - 如果不使用 hadoop,可以忽略它吗?【英文标题】:spark-shell error on Windows - can it be ignored if not using hadoop? 【发布时间】:2017-05-05 15:17:13 【问题描述】:

启动 spark-shell 时出现以下错误。我将使用 Spark 来处理 SQL Server 中的数据。我可以忽略错误吗?

java.io.IOException:在 Hadoop 二进制文件中找不到可执行的 null\bin\winutils.exe。

java.lang.IllegalArgumentException:实例化“org.apache.spark.sql.hive.HiveSessionState”时出错

原因:java.lang.reflect.InvocationTargetException:java.lang.IllegalArgumentException:实例化'org.apache.spark.sql.hive.HiveExternalCatalog'时出错:

原因:java.lang.IllegalArgumentException: 实例化 'org.apache.spark.sql.hive.HiveExternalCatalog' 时出错

原因:java.lang.IllegalArgumentException: 实例化 'org.apache.spark.sql.hive.HiveExternalCatalog' 时出错

引起:java.lang.reflect.InvocationTargetException:java.lang.reflect.InvocationTargetException:java.lang.RuntimeException:java.lang.RuntimeException:运行命令获取文件权限时出错:java.io.IOException:( null) 命令字符串中的条目:null ls -F C:\tmp\hive

原因:java.lang.reflect.InvocationTargetException:java.lang.RuntimeException:java.lang.RuntimeException:运行命令以获取文件权限时出错:java.io.IOException:命令字符串中的(null)条目:null ls -F C:\tmp\hive

原因:java.lang.RuntimeException: java.lang.RuntimeException: 运行命令以获取文件权限时出错:java.io.IOException: (null) entry in command string: null ls -F C:\tmp\hive

【问题讨论】:

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries. spark Eclipse on windows 7的可能重复 【参考方案1】:

tl;dr你宁愿不要。

嗯,这可能可能,但鉴于您刚刚开始前往 Spark 的土地,努力不会有回报。


Windows 对我来说从来都不是一个对开发人员友好的操作系统,每当我教人们使用 Spark 并且他们使用 Windows 时,我只是理所当然地认为我们必须通过 winutils.exe 设置,但很多时候还需要如何工作在命令行上。


请按如下方式安装winutils.exe

    以管理员身份运行cmd 从https://github.com/steveloughran/winutils 存储库下载winutils.exe 二进制文件(使用hadoop-2.7.1 for Spark 2) 将 winutils.exe 二进制文件保存到您选择的目录,例如c:\hadoop\bin 设置 HADOOP_HOME 以反映带有 winutils.exe 的目录(不带 bin),例如set HADOOP_HOME=c:\hadoop 设置 PATH 环境变量以包含 %HADOOP_HOME%\bin 创建c:\tmp\hive目录 执行winutils.exe chmod -R 777 \tmp\hive 打开 spark-shell 并运行 spark.range(1).show 以查看单行数据集。

【讨论】:

感谢它的工作!不幸的是,我们的 IT 不提供 Linux 开发 PC。这些步骤应该在官方文档中。

以上是关于Windows 上的 spark-shell 错误 - 如果不使用 hadoop,可以忽略它吗?的主要内容,如果未能解决你的问题,请参考以下文章

多节点火花集群上的 spark-shell 无法在远程工作节点上旋转执行程序

spark-shell启动错误

执行spark-shell时遇到的主机地址的错误

Spark-shell报error: not found错误

Learning Spark——使用spark-shell运行Word Count

使用 spark-shell 时的番石榴版本