In-memory Processing_01

1.Background

In-memory Processing_01

2.Spark

2.1. RDD是Spark框架中的核心概念 。可以将RDD视作数据库中的一张表。其中可以保存 任何类型的数据。Spark将数据存储在不同分区 上的RDD之中。

2.2. RDD可以从集合 直接转换来,也可以由从现存的任何Hadoop InputFormat 来,亦或者 HBase。等等。

2.3. Spark 定义的RDD数据集的存储级别 如下:

MEMORY_ONLY: 默认选项,RDD的(分区)数据直接以 Java对象的形式存储于 JVM的内存中,如果 内存空间不足,某些分区的数据将不会被 缓存,需要在使用的时候 重新计算

MYMORY_AND_DISK: RDD的数据直接以 Java对象的形式存储于 JVM的内存中,如果 内存空间不足,某些分区的数据将会被存储至 磁盘,使用的时候从磁盘读取。

MEMORY_ONLY_SER: RDD的数据 (Java对象)序列化 之后存储于JVM的内存中(一个分区的数据为内存中的一个字节数组),相比于 MEMORY_ONLY能够有效 节约内存空间(特别是使用一个 快速序列化工具的情况下),但读取数据时需要更多的CPU开销;如果内存空间不足,处理方式与 MEMORY_ONLY相同。

MEMORY_AND_DISK_SER: 相比于 MEMORY_ONLY_SER,在内存空间不足的情况下,将序列化之后的数据存储于 磁盘。

DISK_ONLY: 仅仅使用磁盘存储RDD的数据 (未经序列化)。

MEMORY_ONLY_2,MEMORY_AND_DISK_2:
MEMORY_ONLY_2 为例, MEMORY_ONLY_2相比于 MEMORY_ONLY
存储数据的方式是相同的,不同的是会将数据备份到集群中两个不同的节点,其余情况类似。

OFF_HEAP: RDD的数据序例化之后存储至 Tachyon。

In-memory Processing_01


3.Use Spark for data mining

In-memory Processing_01
In-memory Processing_01
In-memory Processing_01