Liwei Lin

Results 61 comments of Liwei Lin

@tsface 收到。这个应用是跑在 Spark 1.? 的环境上的?Receiver 的 StorageLevel 是怎么设置的?整个 DAG 拓扑中有 window 操作吗?

@yihaoDeng 是的,这里跟官网的图略不一样。这里两个图里的 arriving records 的时间不一样,所以画出来的 time 行不完全一样,但对于各自的例子都是正确的 —— 本系列文章的 trigger 是 `ProcessingTime(10min)`, 官网的 trigger 是 `ProcessingTime(5min)`。 为什么要跟官网的图不太一样? 因为官网的图没有根据 watermark 画出 append mode 和 update mode 的输出;而如果试图画出时,就发现官网 arriving records 的设置将导致 append...

@ZiyueHuang 没有完成。不过从其他章节里也基本上能看到 Output Modes 的全貌。

@romantic123 《3.3》中挂掉的图片已修复,感谢指出!:-)

@junhero 直接返回了 false 后,该分发 receiver 的 job 会正常结束;然后 ReceiverTracker 新起一个 job 再次分发这个 receiver: https://github.com/apache/spark/blob/v2.0.0/streaming/src/main/scala/org/apache/spark/streaming/scheduler/ReceiverTracker.scala#L625 Hope it helps!

@junhero 这个跟数据集大小有关。如果数据集非常小,如 user id 的空间很小,那么 statestore 是没有问题的。如果 user id 的空间很大,但每天的 distinct user id 很小,那么 statestore 也是没有问题的。但如果 user id 空间很大,每天的 distinct user id 又很多,那 statestore 就有问题了。可以考虑其它方法如 hyperloglog 等。

@KevinZwx 是 UnsafeRow;key 和 value 都是 UnsafeRow。UnsafeRow 在 SparkSQL 模块里相当于 Object 在 Java 里的作用。UnsafeRow 里包含各种类型(数值、字符串等)的具体数据。

@TopSpoofer zip(...).map(...) 的过程,会执行两个 future,只不过 map 出来第 2 个的结果。具体的 Future 实现请见[这里](https://github.com/scala/scala/blob/2.12.x/src/library/scala/concurrent/Future.scala)。 Hope it helps!

@ar5art > 是每间隔一小时去kafka中取新到达的数据,还是隔一小时确认一次streaming的input table中新追加的数据? 是前者 > kafka中的数据会实时追加到input table中吗? 呃,不会 > 如果我想设置任务每一小时跑一次,但是要实时把kafka拉取到input table中并做一次预处理,可以做到吗? 用 1min 做 trigger,实时从 kafka 中拉数据、并写出到 HDFS dir x 另起一个任务,用 1hour 做 trigger,从 HDFS dir x 读入,并另外写出?