如何解决spark-shell 命令出错windows cmd 和 cygwin
使用 Windows 10、jdk 16.0.1、scala 2.13.5、spark 3.1.1、hadoop 2.7,命令 spark-shell
在 cmd.exe 中出现以下错误:
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.apache.spark.unsafe.array.ByteArrayMethods.<clinit>(ByteArrayMethods.java:54)
at org.apache.spark.internal.config.package$.<init>(package.scala:1095)
at org.apache.spark.internal.config.package$.<clinit>(package.scala)
at org.apache.spark.deploy.SparkSubmitArguments.$anonfun$loadEnvironmentArguments$3(SparkSubmitArguments.scala:157)
at scala.Option.orElse(Option.scala:447)
at org.apache.spark.deploy.SparkSubmitArguments.loadEnvironmentArguments(SparkSubmitArguments.scala:157)
at org.apache.spark.deploy.SparkSubmitArguments.<init>(SparkSubmitArguments.scala:115)
at org.apache.spark.deploy.SparkSubmit$$anon$2$$anon$3.<init>(SparkSubmit.scala:1013)
at org.apache.spark.deploy.SparkSubmit$$anon$2.parseArguments(SparkSubmit.scala:1013)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:85)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1030)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1039)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int) accessible: module java.base does not "opens java.nio" to unnamed module @7530ad9c
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Constructor.checkCanSetAccessible(Constructor.java:188)
at java.base/java.lang.reflect.Constructor.setAccessible(Constructor.java:181)
at org.apache.spark.unsafe.Platform.<clinit>(Platform.java:56)
... 13 more
Cygwin:
D:\Java\jdk-16.0.1\bin\java -cp "D:\spark/conf\;D:\spark\jars\*" "-Dscala.usejavacp=true" "-Djline.terminal=unix" -Xmx1g org.apache.spark.deploy.SparkSubmit --class org.apache.spark.repl.Main --name "Spark shell" spark-shell
D:\spark/bin/spark-class: line 96: CMD: bad array subscript
[编辑/]
我刚刚通过使用 spark 2.4.7 并为 winutils 制作单独的 hadoop\bin
解决了这个问题。虽然我想问为什么会这样?
解决方法
我刚刚解决了这个错误。这是一个Java版本问题。如果您查看 spark 文档,则它不支持除 java 8 或 11 之外的任何其他内容。
请在此处找到链接:https://spark.apache.org/docs/latest/
尝试安装 Java 8,然后设置其各自的环境变量。您无需将 Hadoop 和 Spark 版本更改为 2.7。它也适用于 3.2.1 版。
完成设置后,重新启动 cmd 提示符并输入:spark-shell 和魔法发生!!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。