可以在没有Hadoop的情况下运行Apache Spark吗?


Answers:


53

Spark可以在没有Hadoop的情况下运行,但是其某些功能依赖于Hadoop的代码(例如,处理Parquet文件)。我们正在Mesos和S3上运行Spark,这在设置上有些棘手,但是一旦完成就可以很好地工作(您可以在此处阅读有关对其进行适当设置的摘要)。

(编辑)注意:自版本2.3.0起,Spark还添加了对Kubernetes的本机支持


94

Spark是内存中的分布式计算引擎。

Hadoop是用于分布式存储(HDFS)和分布式处理(YARN)的框架。

Spark可以在有或没有Hadoop组件(HDFS / YARN)的情况下运行


分布式存储:

由于Spark没有自己的分布式存储系统,因此必须依靠这些存储系统之一进行分布式计算。

S3 –非紧急批处理作业。当数据局部性不重要时,S3适合非常特定的用例。

Cassandra –非常适合流数据分析,并且对批处理作业有过高的要求。

HDFS –非常适合批处理作业,而不会影响数据局部性。


分布式处理:

您可以在三种不同的模式下运行Spark:独立,YARN和Mesos

请查看下面的SE问题,以获取有关分布式存储和分布式处理的详细说明。

我应该为Spark选择哪种集群类型?


23

默认情况下,Spark没有存储机制。

要存储数据,它需要快速且可扩展的文件系统。您可以使用S3或HDFS或任何其他文件系统。由于成本低廉,Hadoop是经济的选择。

此外,如果您使用Tachyon,它将通过Hadoop提高性能。强烈建议将Hadoop用于Apache Spark处理。 在此处输入图片说明


6

是的,spark可以毫无遮盖地运行。所有核心的Spark功能都将继续起作用,但是您会错过诸如通过hdfs轻松将所有文件(代码以及数据)分布到集群中所有节点等事情。


6

根据Spark文档,Spark可以在没有Hadoop的情况下运行。

您可以在没有任何资源管理器的情况下将其作为独立模式运行。

但是,如果要在多节点设置中运行,则需要诸如YARN或Mesos的资源管理器以及诸如HDFS,S3等的分布式文件系统。


3

是的,您可以在没有Hadoop的情况下安装Spark。您可以参考Arnon链接使用镶木地板在S3上配置为数据存储。 http://arnon.me/2015/08/spark-parquet-s3/

Spark只做处理,它使用动态内存执行任务,但是要存储数据,您需要一些数据存储系统。Hadoop是Spark的角色,它为Spark提供存储。将Hadoop与Spark结合使用的另一个原因是它们是开源的,并且与其他数据存储系统相比,它们可以轻松地相互集成。对于其他存储(如S3),如上面的链接中所述,配置它应该很棘手。

但是Hadoop也有其处理单元Mapreduce。

想知道两者之间的区别吗?

检查本文:https : //www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83

我认为这篇文章将帮助您理解

  • 使用什么,

  • 什么时候使用

  • 如何使用 !!!


1

当然是。Spark是一个独立的计算框架。Hadoop是具有MapReduce计算框架的分布式存储系统(HDFS)。Spark可以从HDFS以及任何其他数据源(例如传统数据库(JDBC),kafka甚至本地磁盘)中获取数据。



0

是的,无需Hadoop,火花就可以运行。您可以在没有Hadoop的情况下在本地计算机中安装spark。但是Spark lib附带了Haddop预先库,即在本地计算机上安装时使用的库。


-4

不需要。它需要完全安装的Hadoop才能开始工作-https: //issues.apache.org/jira/browse/SPARK-10944


1
这是不正确的,在当前版本中,如果没有Hadoop,它也可以正常工作。
克里斯·钱伯斯

1
@ChrisChambers您愿意详细说明吗?关于该问题的评论说:“实际上,无论如何,Spark都确实需要Hadoop类”,并且在下载页面上,只有针对特定Hadoop版本的预构建版本或带有用户提供的Hadoop版本的选项。并且文档说“ Spark将Hadoop客户端库用于HDFS和YARN。” 而且这种依赖性似乎不是可选的。
NikoNyrh '16

1
@NikoNyrh是正确的。我只是尝试执行“用户提供的Hadoop”下载工件,并立即获得堆栈跟踪。我也希望Spark的类路径与核心Hadoop类分离。但是出于原型制作和测试目的,除了下载的大小(总共120 MB)之外,我没有其他问题。那好吧。干杯!
赫苏斯Zazueta

:堆栈跟踪问题$ ./spark-shell Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSparkProperties$1.apply(SparkSubmitArguments.scala:118) at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefault at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more
赫苏斯Zazueta
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.