我在文本文件(1,000,000行)中有大量数据。每行有128列。使用Hadoop Map处理和分割大量数据reduce?
现在我试图用这个大数据来构建kd树。我想使用map reduce进行计算。
我的问题暴力方法:
1)写一个映射精简工作,发现每列的方差,并选择与拍摄最高方差
2)(列名,方差值的列)作为输入写另一个地图减少了将输入数据分成两部分的工作。 1部分具有给定列名称的值小于输入值的所有行,第二部分具有大于输入值的所有行。
3)对于每个零件重复步骤1和步骤2,继续该过程,直到每个零件剩下500个值。
列名,方差值为我的树形成单个节点。所以用高度为10的树的蛮力方法,我需要运行1024个地图缩减作业。
我的问题:
1)有什么办法,我可以通过运行更少的地图减少就业人数提高了工作效率?
2)我每次都读取相同的数据。有什么办法可以避免吗?
3)是否有任何其他框架,如猪,蜂巢等这些任务有效吗?
4)我可以将数据保存到数据存储并轻松检索数据的任何框架?
普莱斯帮助...
嗨,感谢您的回复。你能解释一下2行这个场景中spark如何有用吗? – user3716835 2014-10-20 05:40:48
因为您正在读取所有mapreduce作业中的相同数据,spark可以将此数据加载到整个群集的内存中,并且第一次迭代后的处理将显着加快 – Amar 2014-10-20 05:50:32
它会更快但迭代次数相同。我想要知道会减少迭代次数的东西 – user3716835 2014-10-20 05:54:47