Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 每用户流处理_Apache Spark_Stream_Spark Streaming_Apache Storm_Apache Samza - Fatal编程技术网

Apache spark 每用户流处理

Apache spark 每用户流处理,apache-spark,stream,spark-streaming,apache-storm,apache-samza,Apache Spark,Stream,Spark Streaming,Apache Storm,Apache Samza,我需要处理来自一组流的数据,将相同的精化应用于每个流,独立于其他流 我已经看到过类似storm的框架,但它似乎只允许处理静态流(即来自twitter的tweet),而我需要分别处理来自每个用户的数据 我想说的一个简单的例子是一个系统,每个用户都可以跟踪他的gps位置,实时查看平均速度、加速度、燃烧的卡路里等统计数据。当然,每个用户都有自己的数据流,系统应该分别处理每个用户的数据流,就像每个用户都有自己的专用拓扑来处理他的数据一样 有没有办法通过storm、spark streaming或samz

我需要处理来自一组流的数据,将相同的精化应用于每个流,独立于其他流

我已经看到过类似storm的框架,但它似乎只允许处理静态流(即来自twitter的tweet),而我需要分别处理来自每个用户的数据

我想说的一个简单的例子是一个系统,每个用户都可以跟踪他的gps位置,实时查看平均速度、加速度、燃烧的卡路里等统计数据。当然,每个用户都有自己的数据流,系统应该分别处理每个用户的数据流,就像每个用户都有自己的专用拓扑来处理他的数据一样

有没有办法通过storm、spark streaming或samza这样的框架来实现这一点

如果支持python,那就更好了,因为我已经有很多代码要重用


非常感谢您的帮助

如果元组中有用户id,您可以使用字段分组连接模式对数据进行分组。这确保了数据按用户id进行分区,从而获得逻辑子流。您的代码只需要能够处理多个组/子流,因为单个bolt实例可以处理多个组。但Storm肯定支持您的用例。它还可以运行Python代码。

使用Storm,如果元组中有用户id,则可以使用字段分组连接模式对数据进行分组。这确保了数据按用户id进行分区,从而获得逻辑子流。您的代码只需要能够处理多个组/子流,因为单个bolt实例可以处理多个组。但Storm肯定支持您的用例。它还可以运行Python代码。

在Samza中,与Storm类似,可以根据某个用户ID对各个流进行分区。这将保证同一处理器可以看到某个特定用户的所有事件(以及分区函数[例如,哈希]分配给该处理器的其他用户ID)。不过,您的描述听起来更像是在客户端系统上运行的,而不是服务器端操作


Samza已经提供了非JVM语言支持,但尚未实现。

在Samza中,与Storm类似,可以在某个用户ID上对各个流进行分区。这将保证同一处理器可以看到某个特定用户的所有事件(以及分区函数[例如,散列]使用的其他用户ID)分配给该处理器)。不过,您的描述听起来更像是在客户端系统上运行的,而不是服务器端操作

Samza已经提供了非JVM语言支持,但尚未实现。

您可以使用它来实现这一点。您可以按用户名对输入流进行分区,并分别处理与每个用户相关的事件。处理逻辑必须使用类似SQL的语言编写

WSO2 SP还有一个to,它允许您执行管理任务,例如提交、编辑作业。但是您不能使用python代码编写处理逻辑。

您可以使用来实现这一点。您可以按用户名对输入流进行分区,并分别处理与每个用户相关的事件。处理逻辑必须使用类似SQL的语言编写


WSO2 SP还有一个to,它允许您执行管理任务,例如提交、编辑作业。但是您不能使用python代码编写处理逻辑。

非常感谢您的回答。是否有可能对用户数据的滑动窗口进行一些处理?我能否确保数据是按时间戳顺序处理的(IIRC顺序处理只能通过trident保证,trident似乎不支持python)?我个人只使用Java的Storm。对于Java,您可以执行滑动窗口处理,但需要自己实现所有逻辑。您也可以使用Trindent,但是,据我所知,您无法关联来自不同批次的元组。因此,它不是真正的滑动窗口。Storm也不提供任何订购保证(您可能会求助于我的github repo中的代码)。我想,使用Python,您需要在自己的代码中实现排序和滑动窗口。(Spark Streaming和Flink Streaming也不支持有序处理——我不知道Samza的情况)非常感谢您的回答。是否有可能对用户数据的滑动窗口进行一些处理?我能否确保数据是按时间戳顺序处理的(IIRC顺序处理只能通过trident保证,trident似乎不支持python)?我个人只使用Java的Storm。对于Java,您可以执行滑动窗口处理,但需要自己实现所有逻辑。您也可以使用Trindent,但是,据我所知,您无法关联来自不同批次的元组。因此,它不是真正的滑动窗口。Storm也不提供任何订购保证(您可能会求助于我的github repo中的代码)。我想,使用Python,您需要在自己的代码中实现排序和滑动窗口。(Spark Streaming和Flink Streaming也不支持有序处理——我不知道Samza的情况)非常感谢您的回答。是否有可能对用户数据的滑动窗口进行一些处理?我能否确保数据是按时间戳顺序处理的(IIRC顺序处理只能通过trident保证,trident似乎不支持python)?我个人只使用Java的Storm。对于Java,您可以执行滑动窗口处理,但需要自己实现所有逻辑。您也可以使用Trindent,但是,据我所知,您无法关联来自不同批次的元组。因此,它不是真正的滑动窗口。Storm也不提供任何订购保证(您可能会求助于我的github repo中的代码)。我猜,用Python哟