Spark In-Memory Computing – 入门

1. Objective

这个章节主要介绍什么是 in memory computing,Spark in-memory processing 入门和 Apache Spark 是怎么处理不能放入内存的数据。

Apache spark in-memory computing concept.

2. 什么是 In-memory Computing?

内存 random access memory(RAM) 计算是指使用内存做并行的运算,有两个关键信息:

  • RAM存储
  • 并行分布计算

3. Spark In-memory Computing入门

Spark的主要抽象体是 RDDs,使用cache()persist() 去缓存RDDs 。当使用cache() 方法时,所有的RDD 就存储在内存中。 当 RDD 超出的数据时,就会存回硬盘。Spark 内存运算善于做 machine learningmicro-batch processing。当使用 persist() 方法时,RDDs 也会存在内存中。cache() 和 persist() 区别在于cache() 默认是 MEMORY_ONLY ,而persist() 可以使用不同的storage levels。

4. Storage levels of RDD Persist() in Spark

  • MEMORY_ONLY
  • MEMORY_AND_DISK
  • MEMORY_ONLY_SER
  • MEMORY_AND_DISK_SER
  • DISK_ONLY
  • MEMORY_ONLY_2 and MEMORY_AND_DISK_2

4.1. MEMORY_ONLY

RDD 是按照解码的Java 对象存储在内存中,对于没有放入内存的部分,每次需要使用时会重新取出计算。

Spark storage level - memory only

4.2. MEMORY_AND_DISK

RDDs 是按照解码的Java 对象存储在内存中,对于把完整的RDD放入内存中,那么剩余的partion将保存在disk。

Spark storage level-memory and disk

4.3. MEMORY_ONLY_SER

RDDs 以编码的Java 对象存储在内存中。

Spark storage level - memory only serialized

4.4. MEMORY_AND_DISK_SER

RDDs 以编码的Java 对象存储在内存中, 如果完整的RDD不能放入内存中,那么它存储剩余的partion在磁盘中。 Spark storage level - memory and disk serialized

4.5. DISK_ONLY

RDD partitions只是存储在磁盘。

Spark storage level-disk-only

4.6. MEMORY_ONLY_2 and MEMORY_AND_DISK_2

MEMORY_ONLY 和 MEMORY_AND_DISK,唯一的区别是每个partion 将在cluster的两个nodes做复制。

5. In-memory Processing的优势

  1. 读取数据变得更加简单
  2. 适合 实时的风险管理和欺诈探测
  3. 高可用的数据
  4. 计算的速度在增长
  5. 提升了事件的复杂运算
  6. 缓存了更大的数据
  7. 随着时间,内存价格的降低

6. Conclusion

Apache Hadoop 实现了用非常低的成本来存储和运算大规模的数据,通过优化Mapreduce来解决Hadoop的缺陷,并让他更容易使用。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s