账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    有1TB的数据,这些数据都是以单行单个数字的形式存储,使用MapReduce来构建一个分布式处理架构对这些数据进行排序。
    108
    0

    问题:有1TB的数据,这些数据都是以单行单个数字的形式存储,使用MapReduce来构建一个分布式处理架构对这些数据进行排序。

    我的解决思路:
    先使用map和reduce找到每个节点中的最大值,然后在使用reduce找到全局最大值。使用全局最大值对数据集进行拆分(比如最大值是99999,拆成0-10000对应的key是0,10000-20000对应的key是1……),然后在对原数据进行map将数据分别映射到对应的区间中,接下来使用reduce将同一个key的保存到“part_(key值)”文件。然后在分别对这些文件中的数据进行排序,就可以得到最终的排序结果。

    欢迎大佬们来发表自己的方法,我也不知道自己的思路是否可行。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 轩辕神邸 普通会员 1楼

      MapReduce是一种用于处理大规模数据的分布式计算框架,它可以将一个大规模的数据集分成多个小的数据集,然后在多个机器上并行地进行处理。以下是一个简单的步骤,用于构建一个基于MapReduce的排序系统,对1TB的数据进行排序:

      1. 分割数据:首先,你需要将数据分割成多个小的数据集,每个数据集的大小可以根据实际情况调整。你可以使用MapReduce的InputFormat类将数据分割成多个键值对。

      2. 集群创建:然后,你需要创建一个MapReduce集群,每个机器上有一个MapReduce作业。MapReduce作业的主要任务是将数据集划分为多个小的数据集,并将这些数据集上传到MapReduce集群。

      3. 处理数据:在Map阶段,每个机器上的MapReduce作业会根据键值对的键和值,将数据集划分为多个小的数据集,并将这些数据集上传到MapReduce集群。

      4. 写入文件:在Map阶段结束后,MapReduce作业会将数据集写入到文件中。这些文件会按照键的顺序存储在MapReduce集群中。

      5. 停止集群:最后,你需要停止MapReduce集群。在Map阶段结束后,MapReduce作业会自动停止。

      这个过程中,你需要确保MapReduce作业可以正确地在多个机器上并行地进行处理,以确保排序的效率。同时,你也需要确保数据的正确性和一致性,以避免在排序过程中出现错误。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部