RDD(弹性分布式数据集)的分析
RDD:
Resilient Distributed Dataset(弹性分布式数据集)
弹性:数据集的可恢复型
原因:在分布式环境下,运算节点很容易出问题,会造成数据的丢失,rdd可以在数据丢失的背景下恢复数据。
数据恢复的技术:1.基本备份
2.基于日志(hadoop namenode中的namespace在磁盘上对应的是fsimage+editslog,当namenode重启的时候,从磁盘上读取fsimage和最新的editlog
Mysql数据库:基于binLog恢复。
Rdd:基于血缘(linkage)的恢复机制。记录了rdd转换的过程,在rdd丢失时,可以通过记录的过程(血缘)再次生成。
Rdd1==map====rdd2===reduce==rdd3
分布式:rdd可以分布在多个机器上,对外是透明的。
数据集:rdd 本质上就是一个list。对应于scala中集合的操作同样适用于rdd。默认的:当使用sparkconext读取文本文件的时候,一行文本作为rdd中的一个元素。
血缘恢复机制:保存的是计算过程,节省空间;但是恢复的时候需要执行计算过程来恢复数据,时间变长。总之就是以时间换空间