将数据写入个人机器的最快方法?

时间:2011-04-04 16:43:41

标签: python linux

我有一台包含100台计算机的网络,都运行Ubuntu Linux。

在连续(流媒体)的基础上,机器X被“馈送”了一些实时数据。我需要编写一个python脚本,将数据作为输入,加载到内存中,处理它,然后将其保存到磁盘。

这是很多数据,因此,理想情况下我希望将数据拆分到内存中(使用某些逻辑),并以最快的方式将其中的一部分发送到每台计算机。每台计算机都将接受其数据,处理并将其写入本地磁盘。

假设我有一个Python数据容器(无论是列表,字典等),已经处理并拆分成碎片。将每个“片段”数据发送到每台机器的最快方法是什么?

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:3)

您有两个(类别)选择:

  1. 您可以自己构建一些分发机制。
  2. 您可以使用现有工具来处理分发和存储。
  3. 在最简单的情况下,您在网络中的每台机器上编写一个程序,只需要监听,处理和写入。您从X分发到池中的每台计算机循环。但是,您可能希望解决更高级别的问题,例如处理节点故障或处理需要更长时间处理的请求,向系统添加新节点等等。

    由于您需要更多功能,您可能希望找到一些现有工具来帮助您。听起来您可能想要调查AMQP(用于可靠消息传递),Hadoop(用于分布式数据处理)或更完整的NoSQL解决方案(如Cassandra或Riak)的某些组合。通过利用这些工具,您的系统将比您自己可能构建的系统更加强大。

答案 2 :(得分:2)

你想要的是像RabbitMQ这样的消息队列。将消费者和生产者添加到队列中很容易。消费者可以通过回调进行民意调查或获得通知......