diff --git "a/Spark Streaming \346\272\220\347\240\201\350\247\243\346\236\220\347\263\273\345\210\227/0.1 Spark Streaming \345\256\236\347\216\260\346\200\235\350\267\257\344\270\216\346\250\241\345\235\227\346\246\202\350\277\260.md" "b/Spark Streaming \346\272\220\347\240\201\350\247\243\346\236\220\347\263\273\345\210\227/0.1 Spark Streaming \345\256\236\347\216\260\346\200\235\350\267\257\344\270\216\346\250\241\345\235\227\346\246\202\350\277\260.md" index 18b1422..fdbb795 100644 --- "a/Spark Streaming \346\272\220\347\240\201\350\247\243\346\236\220\347\263\273\345\210\227/0.1 Spark Streaming \345\256\236\347\216\260\346\200\235\350\267\257\344\270\216\346\250\241\345\235\227\346\246\202\350\277\260.md" +++ "b/Spark Streaming \346\272\220\347\240\201\350\247\243\346\236\220\347\263\273\345\210\227/0.1 Spark Streaming \345\256\236\347\216\260\346\200\235\350\267\257\344\270\216\346\250\241\345\235\227\346\246\202\350\277\260.md" @@ -135,7 +135,7 @@ Spark Streaming 与 Spark Core 的关系可以用下面的经典部件图来表 - (1) 由 `Receiver` 的总指挥 `ReceiverTracker` 分发多个 job(每个 job 有 1 个 task),到多个 executor 上分别启动 `ReceiverSupervisor` 实例; -- (2) 每个 `ReceiverSupervisor` 启动后将马上生成一个用户提供的 `Receiver` 实现的实例 —— 该 `Receiver` 实现可以持续产生或者持续接收系统外数据,比如 `TwitterReceiver` 可以实时爬取 twitter 数据 —— 并在 `Receiver` 实例生成后调用 `Receiver.onStart()`。 +- (2) 每个 `ReceiverSupervisor` 启动后将马上生成一个用户提供的 `Receiver` 实现的实例 —— 该 `Receiver` 实现可以持续产生或者持续接收系统外数据,比如 `TwitterReceiver` 可以实时爬取 twitter 数据 —— 并在 `Receiver` 实例生成后调用 `Receiver.onStart()`; ![image](0.imgs/060.png) @@ -155,7 +155,7 @@ Spark Streaming 与 Spark Core 的关系可以用下面的经典部件图来表 - 这里 Spark Streaming 目前支持两种成块存储方式,一种是由 `blockManagerskManagerBasedBlockHandler` 直接存到 executor 的内存或硬盘,另一种由 `WriteAheadLogBasedBlockHandler` 是同时写 WAL(4c) 和 executor 的内存或硬盘 -- (5) 每次成块在 executor 存储完毕后,`ReceiverSupervisor` 就会及时上报块数据的 meta 信息给 driver 端的 `ReceiverTracker`;这里的 meta 信息包括数据的标识 id,数据的位置,数据的条数,数据的大小等信息。 +- (5) 每次成块在 executor 存储完毕后,`ReceiverSupervisor` 就会及时上报块数据的 meta 信息给 driver 端的 `ReceiverTracker`;这里的 meta 信息包括数据的标识 id,数据的位置,数据的条数,数据的大小等信息; - (6) `ReceiverTracker` 再将收到的块数据 meta 信息直接转给自己的成员 `ReceivedBlockTracker`,由 `ReceivedBlockTracker` 专门管理收到的块数据 meta 信息。