![](/img/trans.png)
[英]Apache Spark 3.1.2 can't read from S3 via documented spark-hadoop-cloud
[英]Can apache spark run without hadoop?
Spark和Hadoop之间是否存在依赖关系?
如果没有,当我在没有Hadoop的情况下运行Spark时,我会错过任何功能吗?
Spark是一种内存分布式计算引擎。
Hadoop是分布式存储 ( HDFS ) 和分布式处理 ( YARN ) 的框架。
Spark 可以使用或不使用 Hadoop 组件(HDFS/YARN)运行
由于Spark没有自己的分布式存储系统,所以它必须依赖这些存储系统之一进行分布式计算。
S3 – 非紧急批处理作业。 当数据局部性不重要时,S3 适合非常特定的用例。
Cassandra – 非常适合流式数据分析和批处理作业的过度杀伤。
HDFS – 非常适合批处理作业,而不会影响数据局部性。
你可以在三种不同的模式下运行 Spark: Standalone、YARN 和 Mesos
查看下面的 SE 问题,详细了解分布式存储和分布式处理。
Spark 可以在没有 Hadoop 的情况下运行,但它的一些功能依赖于 Hadoop 的代码(例如处理 Parquet 文件)。 我们在 Mesos 和 S3 上运行 Spark,设置起来有点棘手,但一旦完成就可以很好地运行(您可以在此处阅读正确设置所需内容的摘要)。
(编辑)注意:自 2.3.0 版以来,Spark 还添加了对 Kubernetes 的本机支持
默认情况下,Spark 没有存储机制。
为了存储数据,它需要快速且可扩展的文件系统。 您可以使用 S3 或 HDFS 或任何其他文件系统。 由于成本低,Hadoop 是经济的选择。
此外,如果您使用 Tachyon,它将通过 Hadoop 提高性能。 强烈推荐使用 Hadoop 进行apache spark处理。
是的,spark 可以在没有 hadoop 的情况下运行。 所有核心 spark 功能都将继续工作,但您会错过诸如通过 hdfs 轻松将所有文件(代码和数据)分发到集群中的所有节点等功能。
根据 Spark 文档,Spark 可以在没有 Hadoop 的情况下运行。
您可以在没有任何资源管理器的情况下以独立模式运行它。
但是如果你想在多节点设置中运行,你需要一个像 YARN或 Mesos这样的资源管理器和一个像 HDFS、S3 等的分布式文件系统。
是的,您可以在没有 Hadoop 的情况下安装 Spark。 这有点棘手您可以参考 arnon link 使用 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
我想这篇文章会帮助你理解
用什么,
何时使用和
如何使用 !!!
是的当然。 Spark 是一个独立的计算框架。 Hadoop 是一个分布式存储系统(HDFS),带有 MapReduce 计算框架。 Spark 可以从 HDFS 中获取数据,也可以从传统数据库(JDBC)、kafka 甚至本地磁盘等任何其他数据源获取数据。
是的,Spark 可以在安装或不安装 Hadoop 的情况下运行,有关更多详细信息,您可以访问 - https://spark.apache.org/docs/latest/
是的,spark 可以在没有 Hadoop 的情况下运行。 您可以在没有 Hadoop 的本地机器上安装 spark。 但是 Spark lib 带有预 Haddop 库,即在本地机器上安装时使用。
您可以在没有 hadoop 的情况下运行 spark,但 spark 依赖于 hadoop win-utils。 所以有些功能可能不起作用,如果你想从 spark 读取配置单元表,那么你需要 hadoop。
英语不好,见谅!
使用本地(单节点)或独立(集群)运行没有 Hadoop 的 spark,但仍然需要 hadoop 依赖项来进行日志记录和一些文件处理。
Windows强烈不推荐运行 spark!
spark 有很多运行模式,其中一种称为本地运行,无需 hadoop 依赖项。
那么,这是第一个问题:如何告诉 spark 我们要在本地模式下运行?
看完这个官方文档后,我就在我的 linux 操作系统上试一试:
# as same as ./bin/spark-shell --master local[*]
./bin/spark-shell
与吹一样,但与步骤3不同。
# Starup cluster
# if you want run on frontend
# export SPARK_NO_DAEMONIZE=true
./sbin/start-master.sh
# run this on your every worker
./sbin/start-worker.sh spark://VMS110109:7077
# Submit job or just shell
./bin/spark-shell spark://VMS110109:7077
我知道很多人在 windows 上运行 spark 只是为了学习,但这里在 windows 上非常不同,真的强烈不建议使用 windows。
最重要的是从这里下载winutils.exe
并配置系统变量 HADOOP_HOME 指向winutils
所在的位置。
目前3.2.1是spark最新的release版本,但是存在bug,运行时会出现
Illegal character in path at index 32: spark://xxxxxx:63293/D:\classe
./bin/spark-shell.cmd
,只启动独立集群然后使用./bin/sparkshell.cmd
或使用较低版本可以临时解决这个问题。 有关更多详细信息和解决方案,您可以参考此处
不。它需要完整的 Hadoop 安装才能开始工作 - https://issues.apache.org/jira/browse/SPARK-10944
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.