sri*_*hhs 2 android hadoop mapreduce
我听说有人在google nexus上成功运行mapreduce.没有关于在android上运行完整集群mapreduce的性能的更多信息.
我真的很想在相对少量的数据非集群模式下在手机上运行mapreduce,完全使用hadoop真的值得吗?是否有可在任何地方使用的剥离版本?任何替代品?
使用map reduce等过程的全部意义在于将工作负载分散到多台计算机上,同时实现当前计算机无法实现的并发性.如果您没有任何计划联合多个Android设备,那么几乎不需要使用像hadoop这样的东西.
如果您可以加载设备上的所有数据(这就是您所说的可以做到的).最接近并行运行算法的方法是使用多个线程并拆分数据集.您不必执行map reduce style编程以获得并行编程的好处,并且可能更容易将算法开发为生产者/消费者模型.但是,如果你必须拥有它,这是一种方法.
我将从两个BlockingQueues(队列中和队列外)和一个从文件(即Producer)读取数据的线程开始.创建一个线程池以从队列中读取并写入输出队列.每个线程将对其中一个输入(即Consumer)进行计算,并将其结果发布到out-queue,以便Producer可以接收结果.执行一次遍历队列和队列将执行map-reduce过程的一半.这通常被称为生产者/消费者.你可以用这种风格的架构做很多事情.
如果要执行完整的map-reduce,请重复该过程,以便您的reduce步骤并行运行.生产者将逐步收集地图中的所有结果,并将这些结果反馈到队列中.现在,每个Consumer都会执行reduce步骤,并将结果发布回out-queue,生产者将在其中进行最终排序并将结果呈现给UI.
因此,制作人的完整状态转换将是:
消费者状态转换将是:
Viola map减少了android上的样式框架.
| 归档时间: |
|
| 查看次数: |
1821 次 |
| 最近记录: |