最近打算看这部分代码,和spark sql等混合在一块,很难形成一条代码阅读主线。
只好网上找文章。
这遍文章写得很详细:
1.Spark Structured Streaming只是用多线程处理来降低延时。 从mini batch的500ms降到 ms级别。
2.Spark Structured Streaming降低处理延时有代价,从exact one变成了at least one。
跟Hadoop方向类似,Spark最近向AI发力,如Barrier Executor,用于多个Stages并发执行(原版本多个Stages只能串行执行),串行执行是AI执行无法容忍的。
最近很火的流式计算Flink,全流式执行,MS级低延时,提供WaterMarker,Event Times,Windows函数等特性。相比吞吐还是要比Spark 低。最大的优势:一开始就按流计算设计,提供状态保留。这点在Spark mini batch processing中,如果batch interval比Window小,就会有问题。一个Window对应多个batch,需要保留状态。
另外,Flink数据流经类Spark Stages时,数据处理完即可进入后继Stages ,不像Spark Streaming,必须等当前Stage执行完毕后才能进入后继。
Spark一等公民Scala,函数式编程,代码极其难维护。
网友评论