在没有Hadoop的情况下无法运行Apache Spark

sof*_*sof 1 apache-spark

我在本地DEV盒上安装spark-2.0.2-bin-without-hadoop.tgz软件包,但无法在下面运行它,

$ ./bin/spark-shell
NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream

$ ./sbin/start-master.sh
NoClassDefFoundError: org/slf4j/Logger
Run Code Online (Sandbox Code Playgroud)

我是否误解了Spark可以在没有Hadoop的情况下旋转呢?

“我需要Hadoop运行Spark吗?否,但是,如果您在集群上运行,则需要某种形式的共享文件系统(例如,NFS安装在每个节点的相同路径上)。如果您具有这种类型的文件系统, ,您可以仅以独立模式部署Spark。”

Den*_*Lee 5

对于与FSDataInputStream有关的第一个问题,如本堆栈溢出响应/sf/answers/2193206991/所述

“没有Hadoop”有点误导,因为这种Spark版本与特定的Hadoop版本没有联系,而不是没有它就无法运行。要使用“无Hadoop”版本运行Spark,应将其绑定到自己的Hadoop发行版。

对于第二个有关缺少SLF4J的问题,如本堆栈溢出响应中所述/sf/answers/2749438751/ -您可以包括SLF4J jar,或者如果您已经安装了Hadoop发行版,那么您应该已经安装了它和运行。

这样一来,您可以下载使用Hadoop预先构建的Apache Spark,而不使用Hadoop本身。它包含所有必需的jar,您可以指定Spark从文件系统读取,例如,file:////在访问数据时使用(而不是HDFS)。