【发布时间】:2015-11-08 10:25:11
【问题描述】:
Spark 和 Hadoop 之间是否存在依赖关系?
如果没有,当我在没有 Hadoop 的情况下运行 Spark 时,我会错过哪些功能?
【问题讨论】:
标签: hadoop amazon-s3 apache-spark mapreduce mesos
Spark 和 Hadoop 之间是否存在依赖关系?
如果没有,当我在没有 Hadoop 的情况下运行 Spark 时,我会错过哪些功能?
【问题讨论】:
标签: hadoop amazon-s3 apache-spark mapreduce mesos
您可以在没有 hadoop 的情况下运行 spark,但 spark 依赖于 hadoop win-utils。所以有些功能可能不起作用,如果你想从 spark 读取 hive 表,那么你需要 hadoop。
【讨论】:
是的,spark 可以在没有 Hadoop 的情况下运行。您可以在没有 Hadoop 的情况下在本地机器上安装 spark。但是 Spark lib 带有 pre Haddop 库,即在本地机器上安装时使用。
【讨论】:
根据 Spark 文档,Spark 可以在没有 Hadoop 的情况下运行。
您可以在没有任何资源管理器的情况下以独立模式运行它。
但如果你想在多节点设置中运行,你需要一个资源管理器如 YARN 或 Mesos 以及一个分布式文件系统如 HDFS、S3 等。
【讨论】:
Spark 可以在没有 Hadoop 的情况下运行,但它的某些功能依赖于 Hadoop 的代码(例如处理 Parquet 文件)。我们在 Mesos 和 S3 上运行 Spark,设置起来有点棘手,但一旦完成后运行良好(您可以阅读正确设置所需内容的摘要here)。
(编辑)注意:从 2.3.0 版本开始,Spark 还添加了对 Kubernetes 的原生支持
【讨论】:
是的,Spark 可以在安装或不安装 Hadoop 的情况下运行,有关详细信息,您可以访问 -https://spark.apache.org/docs/latest/
【讨论】:
默认情况下,Spark 没有存储机制。
为了存储数据,它需要快速且可扩展的文件系统。您可以使用 S3 或 HDFS 或任何其他文件系统。由于成本低,Hadoop 是经济的选择。
此外,如果您使用 Tachyon,它将提高 Hadoop 的性能。强烈推荐使用 Hadoop 进行 apache spark 处理。
【讨论】:
Spark 是一个内存分布式计算引擎。
Hadoop 是分布式存储 (HDFS) 和分布式处理 (YARN) 的框架。
Spark 可以在有或没有 Hadoop 组件 (HDFS/YARN) 的情况下运行
由于Spark没有自己的分布式存储系统,它必须依赖这些存储系统之一进行分布式计算。
S3 – 非紧急批处理作业。当数据局部性不重要时,S3 适合非常具体的用例。
Cassandra – 非常适合流式数据分析和批处理作业。
HDFS – 非常适合批处理作业,而不会影响数据局部性。
您可以在三种不同的模式下运行 Spark:独立、YARN 和 Mesos
请查看以下 SE 问题,了解有关分布式存储和分布式处理的详细说明。
【讨论】:
是的,您可以在没有 Hadoop 的情况下安装 Spark。 那会有点棘手 您可以参考 arnon 链接使用 parquet 在 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
我想这篇文章会帮助你理解
使用什么,
何时使用和
怎么用!!!
【讨论】:
没有。它需要完整的 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
是的,当然。 Spark 是一个独立的计算框架。 Hadoop是一个带有MapReduce计算框架的分布式存储系统(HDFS)。 Spark 可以从 HDFS 以及任何其他数据源(例如传统数据库(JDBC)、kafka 甚至本地磁盘)获取数据。
【讨论】:
是的,spark 可以在没有 hadoop 的情况下运行。所有核心 spark 功能都将继续工作,但您会错过通过 hdfs 将所有文件(代码和数据)轻松分发到集群中的所有节点等功能。
【讨论】: