gpt4 book ai didi

hadoop - 在最短的时间内处理多个文件

转载 作者:行者123 更新时间:2023-12-02 22:05:42 26 4
gpt4 key购买 nike

我是hadoop的新手。基本上我正在编写一个程序,它需要两个 3+ GB 的 multifasta 文件(ref.fasta,query.fasta).....

ref.fasta:

gi|12345 ATATTATAGGACACCAATAAAATT..

gi|5253623 AATTATCGCAGCATTA...



..等等..

查询.fasta:

query ATTATTTAAATCTCACACCACATAATCAATACA AATCCCCACCACAGCACACGTGATATATATACA CAGACACA...



现在对于每个映射器,我需要提供 ref 文件的一个部分和整个查询文件。
IE

gi|12345 ATATTATAGGACACCAATA.... (a single fasta sequence from ref file)



和整个查询文件。因为我想在映射器中运行一个 exe,它将这两个作为输入。

所以我要在外面处理 ref.fasta,然后把它交给 mapper 吗?或者别的什么..??
我只需要花费最少时间的方法。

谢谢。

最佳答案

您的用例的最佳方法可能是将查询文件放在 distributed cache 中。并在 configure() 中准备好文件对象/setup()用于map() .并将 ref 文件作为正常输入。

您可以执行以下操作:

在您的 run()将查询文件添加到分布式缓存:

DistributedCache.addCacheFile(new URI(queryFile-HDFS-Or-S3-Path), conf);

现在有如下映射器类:

公共(public)静态类 MapJob 扩展 MapReduceBase 实现 Mapper {
文件查询文件;
    @Override
public void configure(JobConf job) {

Path queryFilePath = DistributedCache.getLocalCacheFiles(job)[0];
queryFile = new File(queryFilePath.toString());
}

@Override
public void map(LongWritable key, Text value, OutputCollector<Text, Text> output, Reporter reporter)
throws IOException {
// Use the queryFile object and [key,value] from your ref file here to run the exe file as desired.
}
}

关于hadoop - 在最短的时间内处理多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14891139/

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