Spark和Hadoop之间有任何依赖关系吗?
如果没有,当我在没有Hadoop的情况下运行Spark时,会缺少哪些功能吗?
Answers:
Spark是内存中的分布式计算引擎。
Hadoop是用于分布式存储(HDFS)和分布式处理(YARN)的框架。
Spark可以在有或没有Hadoop组件(HDFS / YARN)的情况下运行
由于Spark没有自己的分布式存储系统,因此必须依靠这些存储系统之一进行分布式计算。
S3 –非紧急批处理作业。当数据局部性不重要时,S3适合非常特定的用例。
Cassandra –非常适合流数据分析,并且对批处理作业有过高的要求。
HDFS –非常适合批处理作业,而不会影响数据局部性。
您可以在三种不同的模式下运行Spark:独立,YARN和Mesos
请查看下面的SE问题,以获取有关分布式存储和分布式处理的详细说明。
默认情况下,Spark没有存储机制。
要存储数据,它需要快速且可扩展的文件系统。您可以使用S3或HDFS或任何其他文件系统。由于成本低廉,Hadoop是经济的选择。
此外,如果您使用Tachyon,它将通过Hadoop提高性能。强烈建议将Hadoop用于Apache Spark处理。
是的,您可以在没有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可以在安装或不安装Hadoop的情况下运行,以获取您可以访问的更多详细信息-https: //spark.apache.org/docs/latest/
不需要。它需要完全安装的Hadoop才能开始工作-https: //issues.apache.org/jira/browse/SPARK-10944
$ ./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