Apache spark 过滤9000万用户数据的最佳体系结构?
这纯粹是一个假设性的问题,因为我最近开始研究分布式系统 概述:Apache spark 过滤9000万用户数据的最佳体系结构?,apache-spark,hadoop,apache-kafka,cassandra,Apache Spark,Hadoop,Apache Kafka,Cassandra,这纯粹是一个假设性的问题,因为我最近开始研究分布式系统 概述: 用户有一个购物应用程序 用户执行操作(注册、查看、购买、多视图等) 用户根据当前正在做的事情接收实时活动和建议 问题是: 为每秒可能超过3000万的传入事件提供实时建议 挑战: 筛选数据,应用建议,并将其发送回 到目前为止,我的想法如下。 使用Cassandra存储操作数据。(因为Cassandra具有高度可扩展性,我们不关心ACID保证,我们关心的是高可用性) 将HDFS与Spark和Kafka一起使用。(处理数
- 用户有一个购物应用程序
- 用户执行操作(注册、查看、购买、多视图等)
- 用户根据当前正在做的事情接收实时活动和建议
- 为每秒可能超过3000万的传入事件提供实时建议
- 筛选数据,应用建议,并将其发送回
到目前为止,我的想法如下。
- 使用Cassandra存储操作数据。(因为Cassandra具有高度可扩展性,我们不关心ACID保证,我们关心的是高可用性)
- 将HDFS与Spark和Kafka一起使用。(处理数据,但我不确定)
请纠正我的任何错误,或者如果有更好的,可扩展的方法来做它。我仍在学习所有这些不同的组件,以及它们如何组合在一起。我将从不同的角度来看待它:您希望能够以响应的方式向用户提供建议
无论如何,我希望这给了您一些思考和确定您正在考虑的软件是否满足问题需要的方法。很好的方法,但我不知道我是否同意服务器的计算。服务器可以处理的连接类型是什么?你说的是轮询、http轮询、web套接字吗?对于用户事件,10KB似乎也有点过多,我认为是200字节,可能更少。9000万用户平均每天发送5个事件,每个事件平均200字节,我们可能说的是每天1 mb的负载。9000万用户平均每天发送5个请求,我们说的是每天4.5亿个请求,450/84600=~5300个请求/秒。因此,根据您的计算,单个服务器将能够处理负载。但为了安全,我们可以扩展和复制。要永久存储这些事件,五年后我们将拥有:9000万*每天5个事件*200字节=90 GB*365天*5年=164 TB的存储如果我们使用宽列非关系数据库,我们可能会根据行的不同拥有更低/更大的存储大小,与将未填充列存储为“null”或类似类型的内容的关系列相反。因此,乍一看,宽列数据库确实更具吸引力。因为我们不关心一致性,所以这是一条路。我很难理解hadoop如何适应所有这些,因为我们讨论的是数据库中的数据,我不需要HDFS。我可以使用MQ和工人来处理数据。然后,我可以使用Pulsar/Kafka将活动/推荐信息实时反馈给用户。@Madd World。我使用的数字纯粹是说明性的。如果你应用你自己的数据,那么你可以看到问题的哪一部分是最关键的。我不能帮你对卡夫卡等作一个明确的推荐,因为我对真正的问题和你真实数据的性质了解不够。