Skip to content

Commit

Permalink
Merge pull request lw-lin#18 from endymecy/master
Browse files Browse the repository at this point in the history
Fix typo
  • Loading branch information
lw-lin committed May 11, 2016
2 parents a558dbc + 55a3cca commit 65ed78d
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ Spark 1.4.0 的 `launchReceivers()` 的过程如下:

1.5.0 版本以来的 Spark Streaming,是为每个 `Receiver` 都分配单独的只有 1 个 `Task``Job` 来尝试分发,这与以前版本将 `x``Receiver` 都放到一个有 `x``Task``Job` 里分发是很不一样的。

而且,对于这仅有个一个 `Task`,只在第 1 次执行时,才尝试启动 `Receiver`;如果该 `Task` 因为失效而被调度到其它 executor 执行时,就不再尝试启动 `Receiver`、只做一个空操作,从而导致本 `Job` 的状态是成功执行已完成。`ReceiverTracker` 会另外调起一个 `Job` —— 有可能会重新计算 `Receiver` 的目的地 —— 来继续尝试 `Receiver` 分发……如此直到成功为止。
而且,对于这仅有的一个 `Task`,只在第 1 次执行时,才尝试启动 `Receiver`;如果该 `Task` 因为失效而被调度到其它 executor 执行时,就不再尝试启动 `Receiver`、只做一个空操作,从而导致本 `Job` 的状态是成功执行已完成。`ReceiverTracker` 会另外调起一个 `Job` —— 有可能会重新计算 `Receiver` 的目的地 —— 来继续尝试 `Receiver` 分发……如此直到成功为止。

另外,由于 Spark Core 的 `Task` 下发时只会参考并大部分时候尊重 Spark Streaming 设置的 `preferredLocation` 目的地信息,还是有一定可能该分发 `Receiver``Job` 并没有在我们想要调度的 executor 上运行。此时,在第 1 次执行 `Task` 时,会首先向 `ReceiverTracker` 发送 `RegisterReceiver` 消息,只有得到肯定的答复时,才真正启动 `Receiver`,否则就继续做一个空操作,导致本 `Job` 的状态是成功执行已完成。当然,`ReceiverTracker` 也会另外调起一个 `Job`,来继续尝试 `Receiver` 分发……如此直到成功为止。

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ def onStart() {
- (c) iterator 形式的块数据
- (d) ByteBuffer 形式的块数据

这 4 种签名的 `store()` 的实现都是直接数据转给 `ReceiverSupervisor`,由 `ReceiverSupervisor` 来具体负责存储。
这 4 种签名的 `store()` 的实现都是直接将数据转给 `ReceiverSupervisor`,由 `ReceiverSupervisor` 来具体负责存储。

所以,一个具体的 `Receiver` 子类实现,只要在 `onStart()` 里新拉起数据接收线程,并在接收到数据时 `store()` 到 Spark Streamimg 框架就可以了。

Expand Down

0 comments on commit 65ed78d

Please sign in to comment.