开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:深入 RDD 问题-如何运行在集群中】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/689/detail/11959
深入 RDD 问题-如何运行在集群中
内容介绍:
一、六个问题的提出
二、要针对1T 的文件内容,如何进行处理?
三、如何放在集群中处理
一、六个问题的提出
本节通过提出一些问题,来深入了解 rdd,当前面临的挑战,以便更好的进行学习和了解。
问题一:文件过大时,如何处理?大数据本来就是数据较多,当单排计算机无法处理,就会想到放在集群中,但如果放在集群中操作,对于集群,对于计算框架、整个计算方式有没有什么要求?
这就是第二个问题:如何放在集群中执行?其中有一个很重要的前提:如果要放在集群中操作,需要将任务进行拆解。
这就是第三个问题:任务如何进行拆解?任务拆解过之后,移动数据不如移动计算。
这是第四个问题:怎么进行移动计算?
第五个问题是:一个 T 的文件处理了95%之后,忽然丢失了,那还需要再重新处理一遍吗?因此怎么进行容错也是一个问题。
最后一个问题是:当一个 T 的文件要处理时,需求很长、很复杂。因此在处理这个文件的时候,步骤过多,这些 rdd 之间会有依赖关系,依赖链过长如何拆解?
1.当文件特别大的时候,怎么处理?
2.如何放在集群中执行?
3.任务如何拆解?
4.怎么移动计算?
5.如何容错?
6.如果 RDD 之间的依赖链过长的时候,如果拆解?
二、要针对1T 的文件内容,如何进行处理?
正常情况下:单机进行数据处理,使用多线程来进行处理,在单机上进行处理,正常情况下笔记本内存为4g,8g 和16g,一个 T 的文件不能放在计算机当中,不能用内存进行处理,因此这就是第一个瓶颈:内存。
瓶颈二:磁盘,即使是使用一些技术,磁盘上限低,处理一个T的数据,存不下那么多数据。
瓶颈三:处理数据时,CPU 不够,一般 CPU 都为四核、八核。CPU 上限低,处理一个 T 的数据时间过长。
因此:单机无法处理过大的数据。因此放在集群中处理,这是第一个问题的答案。
三、如何放在集群中处理
放在集群中处理,利用多台计算机的平行处理,此操作的前提是:大任务可以分解为小任务,小任务可以被不同处理器进行处理。因此任务需要可划分,划分完毕之后不能立刻出错这是第一点。
第二点是:如果任务划分之后,中间需要什么过程?还需要一个共享内存的机制。
还有一个最重要的问题:任务分发到各个文件中,这个文件要被多个处理单元去处理,那么多个处理单元要奋发到集群中执行,就需要一个统一的调度工具。
总结:
第一个前提是任务可以被并行执行。
第二个前提是每个任务都可以放在并行处理器中。
第三个前提是需要有一个内存共享的机制。
第四个前提是需要将任务调度到各台机器中,需要有一个调度机制。