【问题标题】:Spark RDDs are stored in blocks or stored in memory ? Few queries around SparkSpark RDD 存储在块中还是存储在内存中?很少有关于 Spark 的查询
【发布时间】:2016-07-31 17:43:48
【问题描述】:

关于 Spark RDD 有几个问题。有人可以请教我。

  1. 我可以看到 RDD 分布在节点之间,这是否意味着 分布式RDD缓存在每个节点的内存中,或者将RDD数据 驻留在 hdfs 磁盘上。或者只有当任何应用程序运行 RDD 数据时才能获取 缓存在内存中?

    1. 我的理解是,当我基于存在的文件创建 RDD 时 在 hdfs 块上,RDD 将第一次从 块,然后持久地缓存它。至少有一次 从磁盘读取数据,是这样吗???

    2. 如果我可以将外部数据直接缓存到 RDD 中,有什么办法吗? 首先将数据存储在 hdfs 中,然后从 hdfs 块加载到 RDD 中? 这里的目的是先将数据存储到 hdfs 中,然后将其加载到 在内存中会出现延迟??

【问题讨论】:

    标签: apache-spark rdd


    【解决方案1】:
    1. Rdd 是类似于数组和列表的数据结构。当您创建 RDD(例如:加载文件)时,如果它处于本地模式,它会存储在笔记本电脑中。如果您使用的是 hdfs,则它存储在 hdfs 中。记住在磁盘上。 如果要将其存储在缓存中(在 RAM 中),可以使用 cache() 函数。
    2. 希望您也从第一个问题中得到第二个问题的答案。
    3. 是的,您可以直接从笔记本电脑加载数据,而无需将其加载到 hdfs。

    val newfile = sc.textFile("file:///home/user/sample.txt")

    指定文件路径。 默认情况下,spark 将 hdfs 作为存储,您可以使用上面的行来更改它。

    别忘了把三个 ///:

    file:///    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多