Spark 和 Hadoop 之间是否有任何依赖关系?
如果没有,在没有 Hadoop 的情况下运行 Spark 时,我会错过任何功能吗?< / p>
答案 0 :(得分:74)
Spark 是一种内存分布式计算引擎。
Hadoop 是分布式存储( HDFS )和分布式处理( YARN )的框架。
Spark可以在有或没有Hadoop组件的情况下运行(HDFS / YARN)
由于 Spark 没有自己的分布式存储系统,因此必须依赖其中一个存储系统进行分布式计算。
S3 - 非紧急批处理作业。当数据位置不重要时,S3适合非常具体的用例。
Cassandra - 非常适合流式数据分析和批处理作业的过度使用。
HDFS - 非常适合批处理作业,而不会影响数据的位置。
您可以在三种不同的模式下运行Spark:独立,YARN和Mesos
有关分布式存储和分布式处理的详细说明,请查看下面的SE问题。
答案 1 :(得分:36)
Spark可以在没有Hadoop的情况下运行,但它的一些功能依赖于Hadoop的代码(例如处理Parquet文件)。我们在Mesos和S3上运行Spark,设置起来有点棘手,但一旦完成就能很好地工作(你可以阅读正确设置它所需要的摘要here)。
(编辑)注意:自版本2.3.0起,Spark还为Kubernetes添加了原生支持
答案 2 :(得分:21)
默认情况下,Spark没有存储机制。
要存储数据,它需要快速且可扩展的文件系统。您可以使用S3或HDFS或任何其他文件系统。由于成本低,Hadoop是经济的选择。
此外,如果您使用Tachyon,它将通过Hadoop提升性能。强烈建议Hadoop进行apache spark处理。
答案 3 :(得分: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
我认为本文将帮助您理解
使用什么,
何时使用和
如何使用!!!
答案 4 :(得分:2)
根据Spark文档,Spark可以在没有Hadoop的情况下运行。
您可以在没有任何资源管理器的情况下将其作为独立模式运行。
但是如果您想在多节点设置中运行,则需要资源管理器,如YARN 或Mesos,以及分布式文件系统,如HDFS,S3等。< / p>
答案 5 :(得分:1)
是的,当然。 Spark是一个独立的计算框架。 Hadoop是一个带有MapReduce计算框架的分布式存储系统(HDFS)。 Spark可以从HDFS以及任何其他数据源(如传统数据库(JDBC),kafka甚至本地磁盘)获取数据。
答案 6 :(得分:0)
是的,Spark可以在安装或不安装Hadoop的情况下运行,以获取更多详细信息,您可以访问-https://spark.apache.org/docs/latest/
答案 7 :(得分:0)
是的,可以在没有Hadoop的情况下运行spark。您可以在没有Hadoop的情况下在本地计算机中安装spark。但是Spark lib随附了Haddop预先库,即在本地计算机上安装时使用。
答案 8 :(得分:0)
你可以在没有 hadoop 的情况下运行 spark,但 spark 依赖于 hadoop win-utils。所以有些功能可能不起作用,如果你想从 spark 中读取 hive 表,那么你需要 hadoop。
答案 9 :(得分:-5)
没有。它需要完整的Hadoop安装才能开始工作 - https://issues.apache.org/jira/browse/SPARK-10944