- 经典的数据处理方式是通过一个程序读取输入,执行某种模式变换,然后输出新的数据。一般来说,这种程序由类似于Cron的某个周期性的调度程序控制。这种设计模式被称为数据流水线(data pipeline)。经典的数据处理方式是通过一个程序读取输入,执行某种模式变换,然后输出新的数据。一般来说,这种程序由类似于Cron的某个周期性的调度程序控制。这种设计模式被称为数据流水线(data pipeline)。
- 简单流水线设计模式与大数据
- 对大数据进行周期性的或者是持续性的变形操作的程序通常被称为“简单的,单相流水线”(simple,one-phasepipeline)
- 由于大数据与生俱来的海量级别和处理的高复杂度,这种程序通常会被串联起来执行,一个程序的输出作为另外一个程序的输入。这种编排方式有很多种原因,但是最常见的原因是,这样设计有助于理解系统的逻辑,但是这在系统效率方面并不一定是最优方案。将这样构建的程序称为多相流水线(multiphase pipeline),因为整个链条中的每一个程序都是一个独立的数据处理单元。
- 周期性的数据流水线非常实用,例如MapReduce和Flume
周期性的数据流水线模型是非常脆弱易坏的。工作进程数量、运行周期、分块处理技术,以及其他参数仔细调校过后,整个流水线的性能可能很稳定。但是随着数据量的自然增长等种种变化会对整个系统造成压力,导致各种各样的问题出现。这种问题包括任务运行超时、资源耗尽,某些分块处理卡住导致整体运维压力上升等。
- 完成整个流水线要依赖于整个流水线中性能最差的分块的完成。