gpt4 book ai didi

apache - 使用Apache Hadoop处理大量文本文件

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

我有大量的文本文件,总大小为1 TB。假设,我必须对每个文件进行字数统计,并想分别存储每个文件的结果。 Apache Hadoop是解决此类问题的正确解决方案吗?每个文件的大小为5 MB。我无法串联文件,因为我想分别查看每个文件的字数统计结果。我希望Hadoop要做的是将每个文件作为输入输入到映射器,并在化简器中为其生成单独的输出文件。

最佳答案

在这里看看WholeFileInputFormat.javaWholeFileRecordReader.java-https://github.com/tomwhite/hadoop-book/tree/master/ch08-mr-types/src/main/java
这将帮助您读取一个文件的内容作为记录。我认为您可能需要稍微调整InputFormat和RecordReader以发出文件名作为键。

简单地说,我认为这将是“仅 map ”工作,其中每个 map task 都负责对记录(文件的全部内容)中的不同单词进行计数。您可以直接存储这些映射任务的输出,这将为您提供单个文件的字数统计。

我相信您正在将用例与标准字数映射reduce应用程序进行比较,其中reducer用于对所有输入(在您的情况下为所有文件)中的字数进行计数。您不打算这样做,因此我说您不会在这里 reducer 。

我不确定是否可以使用reducer对单个文件中的单词进行计数是否是一个好主意。

其他选择是使用上面提到的inputformat和recordreader,并在映射简化之上使用CascadingApache Pig或某些高级抽象来简化您的工作。

关于apache - 使用Apache Hadoop处理大量文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988755/

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