【问题标题】:How do I load data into Spark standalone cluster from the driver program, that does not fit in the driver memory?如何从驱动程序将不适合驱动程序内存的数据加载到 Spark 独立集群中?
【发布时间】:2016-07-01 17:50:35
【问题描述】:

在我的场景中,我有一个 Spark 以独立模式运行,其中许多工作节点具有几乎无限的 RAM。

在我的场景中,我将数据加载到驱动程序 (Apache Zeppelin) 中,然后从中创建 RDD 和 DataFrame。数据大小超过驱动程序的RAM。

如何加载该数据(从驱动程序进程)并从中创建 DataFrame?

举个例子会很有帮助!

【问题讨论】:

  • 很抱歉,我并没有真正明白你的问题。 “无限 RAM”和“数据超出 RAM”对我来说是相互矛盾的概念。请阅读如何在 SO 上提出问题并查看您的问题!由于不清楚,我现在投票关闭它。
  • “无限”内存在worker上,有限内存在驱动程序上。

标签: apache-spark


【解决方案1】:

驱动的正常用法是

  • 告诉执行者该做什么
  • 收集/分享结果

将数据加载到驱动程序并创建 RDD/DataFrame/Dataset 应仅在实验用例中使用。

【讨论】:

    【解决方案2】:

    在这种情况下,唯一的选择是告诉工作人员自己加载数据。如果 Spark 不支持您的 Input 格式,您必须扩展 RDD 类并实现计算功能。

    【讨论】:

      【解决方案3】:

      我不确定为什么必须将数据加载到驱动程序中。这在分布式世界中没有任何意义。我建议您以分布式(hdfs)模式将数据保存/移动到集群中并从那里加载。如果您的数据不存在,有许多开源解决方案可以传输它。此外,您可以将其保存到任何其他受支持的文件系统,例如 s3。

      【讨论】:

        猜你喜欢
        • 2017-08-29
        • 2015-07-08
        • 2016-04-02
        • 1970-01-01
        • 2016-04-18
        • 1970-01-01
        • 2016-07-18
        • 1970-01-01
        • 2014-09-17
        相关资源
        最近更新 更多