【问题标题】:Which version of Spark to download?下载哪个版本的 Spark?
【发布时间】:2015-12-31 05:38:02
【问题描述】:

我知道您可以下载 Spark 源代码 (1.5.1),或为各种 Hadoop 版本预构建的二进制文件。截至 2015 年 10 月,Spark 网页 http://spark.apache.org/downloads.html 已针对 Hadoop 2.6+、2.4+、2.3 和 1.X 预构建二进制文件。

我不确定要下载哪个版本。

我想使用 AWS 机器以独立模式运行 Spark 集群。

<EDIT>

我将运行 24/7 的流式处理。我的数据将来自 Kafka 流。我考虑过使用 spark-ec2,但由于我已经拥有持久的 ec2 机器,我想我不妨使用它们。

我的理解是,由于我的持久工作人员需要执行checkpoint(),因此它需要能够访问某种与主节点共享的文件系统。 S3 似乎是一个合乎逻辑的选择。
</EDIT>

这意味着我需要访问 S3,而不是 hdfs。我没有安装 Hadoop。

我为 Hadoop 2.6 预构建了 Spark。我可以在本地模式下运行它,例如 wordcount 示例。但是,每当我启动它时,我都会收到此消息

WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

这是个问题吗?我需要hadoop吗?

<EDIT>

这不是一个阻碍,但我想确保我了解此警告消息的原因。我假设 Spark 不需要 Hadoop,那么它为什么会出现呢? </EDIT>

【问题讨论】:

    标签: hadoop amazon-web-services amazon-s3 apache-spark


    【解决方案1】:

    我不确定要下载哪个版本。

    此考虑还将以您正在使用的现有代码、您需要的功能和错误容忍度为指导。

    我想使用 AWS 实例以独立模式运行 Spark 集群。

    您是否考虑过简单地运行Apache Spark on Amazon EMR?另请参阅 Spark 常见问题解答中的 How can I run Spark on a cluster?,以及他们对 EC2 scripts 的引用。

    这意味着我需要访问 S3,而不是 hdfs

    一个并不意味着另一个。您可以在 EC2 实例上完美运行 Spark 集群,而无需访问 S3。虽然许多示例是通过开箱即用的S3 "fs" drivers for the Hadoop library 使用 S3 访问编写的,但请注意,现在有 3 种不同的访问方法。适当配置。

    但是,您选择要加载的库将取决于您的数据所在的位置。 Spark 可以访问任何 Hadoop 支持的文件系统,from which there are several to choose

    您的数据甚至在文件中吗?根据您的应用程序以及您的数据所在的位置,您可能只需要通过 SQLCassandra 或其他方式使用 Data Frame!

    但是,每当我启动它时,我都会收到此消息

    警告 NativeCodeLoader:无法为您的平台加载 native-hadoop 库...在适用的情况下使用内置 java 类 这是一个问题吗?我需要 hadoop 吗?

    没问题。它告诉您它正在退回到非最佳实现。其他人也有asked this question

    总的来说,听起来您现在没有任何应用程序需求,因此您没有任何依赖项。依赖关系会驱动不同的配置,例如访问 S3、HDFS 等。

    我可以在本地模式下运行它,例如 wordcount 示例。

    那么,你还好吗?

    更新

    我已经编辑了原帖

    我的数据将来自 Kafka 流。 ...我的理解是..我的持久工人需要执行checkpoint()

    是的,Direct Kafka 方法可从 Spark 1.3 开始使用,并且根据那篇文章,它使用检查点。这些需要"fault-tolerant, reliable file system (e.g., HDFS, S3, etc.)"。请参阅Spark Streaming + Kafka Integration Guide 了解您的版本以了解具体注意事项。

    那么为什么[我会看到 Hadoop 警告消息]?

    Spark 下载仅附带这么多 Hadoop 客户端库。通过完全配置的 Hadoop 安装,某些包还有特定于平台的本机二进制文件。如果可用,这些会被使用。要使用它们,augment Spark's classpath;否则,加载程序将回退到性能较低的版本。

    根据您的配置,您可能能够利用完全配置的 Hadoop 或 HDFS 安装。您提到利用现有的持久性 EC2 实例,而不是使用新的东西。 S3 和 HDFS 之间存在权衡:S3 是一种新资源(成本更高),但在您的实例离线时仍然存在(可以降低计算并具有持久存储);但是,与 HDFS 相比,S3 可能会遭受延迟(您已经拥有机器,为什么不在它们上运行文件系统?),并且在所有情况下都不会出现behave like a filesystem。 Microsoft 为choosing Azure storage vs. HDFS 描述了这种权衡,例如,在使用 HDInsight 时。

    【讨论】:

    • 感谢您的评论。我已经编辑了原始帖子。非常感谢您的帮助
    【解决方案2】:

    我们还在 EC2 上针对 S3 运行 Spark(通过 s3n 文件系统)。我们对 Hadoop 2.x 的预构建版本有一些问题。遗憾的是我不记得问题是什么。但最终我们使用的是为 Hadoop 1.x 预先构建的 Spark,它运行良好。

    【讨论】:

    • 对轶事回答感到抱歉。希望对您有所帮助。
    猜你喜欢
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    相关资源
    最近更新 更多