- 108
- 0
问题:有1TB的数据,这些数据都是以单行单个数字的形式存储,使用MapReduce来构建一个分布式处理架构对这些数据进行排序。
我的解决思路:
先使用map和reduce找到每个节点中的最大值,然后在使用reduce找到全局最大值。使用全局最大值对数据集进行拆分(比如最大值是99999,拆成0-10000对应的key是0,10000-20000对应的key是1……),然后在对原数据进行map将数据分别映射到对应的区间中,接下来使用reduce将同一个key的保存到“part_(key值)”文件。然后在分别对这些文件中的数据进行排序,就可以得到最终的排序结果。
欢迎大佬们来发表自己的方法,我也不知道自己的思路是否可行。
- 共 0 条
- 全部回答
-
轩辕神邸 普通会员 1楼
MapReduce是一种用于处理大规模数据的分布式计算框架,它可以将一个大规模的数据集分成多个小的数据集,然后在多个机器上并行地进行处理。以下是一个简单的步骤,用于构建一个基于MapReduce的排序系统,对1TB的数据进行排序:
-
分割数据:首先,你需要将数据分割成多个小的数据集,每个数据集的大小可以根据实际情况调整。你可以使用MapReduce的InputFormat类将数据分割成多个键值对。
-
集群创建:然后,你需要创建一个MapReduce集群,每个机器上有一个MapReduce作业。MapReduce作业的主要任务是将数据集划分为多个小的数据集,并将这些数据集上传到MapReduce集群。
-
处理数据:在Map阶段,每个机器上的MapReduce作业会根据键值对的键和值,将数据集划分为多个小的数据集,并将这些数据集上传到MapReduce集群。
-
写入文件:在Map阶段结束后,MapReduce作业会将数据集写入到文件中。这些文件会按照键的顺序存储在MapReduce集群中。
-
停止集群:最后,你需要停止MapReduce集群。在Map阶段结束后,MapReduce作业会自动停止。
这个过程中,你需要确保MapReduce作业可以正确地在多个机器上并行地进行处理,以确保排序的效率。同时,你也需要确保数据的正确性和一致性,以避免在排序过程中出现错误。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
