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