gpt4 book ai didi

dynamic - 在 Hadoop 中使用动态分布式缓存

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

我有两个文件。我希望一个文件位于分布式缓存中,另一个文件发送到映射器。

但是分布式缓存中的文件非常大。我的计划是通过映射器划分该文件,然后将 block 并行发送到另一个映射进程。

任何想法如何实现这一点。

最佳答案

首先,分布式缓存存在的原因是所有映射器都可以(读取)访问公共(public)文件,例如停用词列表。如果您不需要它,那么您就不需要分布式缓存。此外,如果您描述的两个文件具有相同的格式并且您以相同的方式处理它们,那么只需将它们的根目录作为输入传递给您的映射器。 Hadoop 将以相同的方式处理它们并拆分它们。如果不是这种情况,请继续阅读我的答案。

如果您想使用第一个映射器的输出作为第二个映射器的(单个)输入,那么您可以使用 ChainMapper .

但我猜你也想使用第二个输入文件。
所以你可以split your job in a chain of two jobs .那么第二个作业的映射器的输入可以是两个输入文件的组合:第一个作业的输出和一个文件,只要它们格式相同。您可以使用 addInputPath为此方法。

否则,您可以直接从文件系统获取文件,如 here 所述.

请注意,如果您的大文件大于 block 的大小(默认为 64 MB),并且它是可拆分的,则当它作为映射器的输入时,hadoop 会“自动”拆分它。

关于dynamic - 在 Hadoop 中使用动态分布式缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21951510/

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