gpt4 book ai didi

hadoop - 如何在 Hadoop 的 MapReduce Streaming 中设置拆分大小等于一行?

转载 作者:行者123 更新时间:2023-12-02 21:25:16 24 4
gpt4 key购买 nike

目标:每个节点都有一个矩阵的副本,读取矩阵,通过 mapper(matrix, key) 计算一些值,并发出

我正在尝试通过流使用用 python 编写的映射器。没有 reducer 。
本质上,我正在尝试执行类似于 https://hadoop.apache.org/docs/current/hadoop-streaming/HadoopStreaming.html#How_do_I_process_files_one_per_map 的任务。

方法:我生成了以下格式的输入文件(任务)(标题仅供引用):

/path/matrix.csv 0
/path/matrix.csv 0
... 99

然后我在这个任务上运行(hadoop 流)映射器。映射器解析行以获取参数 - 文件名、键;然后 mapper 通过文件名读取矩阵并计算与键关联的值;然后发出

问题:当前的方法有效并产生正确的结果,但它在一个映射器中这样做,因为输入文件大小仅为 100 行文本,并且它不会被拆分为多个映射器。 尽管输入大小很小,我如何强制进行这种拆分?

最佳答案

我意识到,与其做几个映射器而不做 reducer ,我可以做完全相反的事情。现在我的架构如下:

  • 瘦映射器只是读取输入参数并发出键值
  • fat reducer 读取文件并使用接收到的 key 执行算法,然后发出结果
  • set -D mapreduce.job.reduces=10 更改并行化级别

  • 这是一种愚蠢(错误)的方法,但正确的方法也不明显。

    关于hadoop - 如何在 Hadoop 的 MapReduce Streaming 中设置拆分大小等于一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36296496/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com