gpt4 book ai didi

c++ - 使用C++运行Hadoop管道时不存在此类文件

转载 作者:行者123 更新时间:2023-12-02 10:29:35 26 4
gpt4 key购买 nike

使用hadoop管道运行hadoop map reduce程序时,map reduce找不到hdfs中存在的文件。如果执行程序时没有hadoop管道,则libhdfs库很容易找到该文件,但是使用

hadoop pipes -input i -ouput o -program p 
命令,libhdfs找不到该文件,并抛出java.io.exception。尝试在命令中包含-fs参数,但结果仍然相同。我也将hdfs:// localhost:9000 /包含在文件中,但仍然没有结果。 file参数在C代码内部为:
file="/path/to/file/in/hdfs" or "hdfs://localhost:9000/path/to/file"
hdfsFS fs = hdfsConnect("localhost", 9000);
hdfsFile input=hdfsOpenFile(fs,file,O_RDONLY,0,0,0);

最佳答案

找到了问题。 hdfs中的文件不可用于mapreduce任务节点。因此,必须将文件压缩到单个tar文件中,从而通过存档标签将文件传递到分布式缓存。也可以通过编写自定义inputformat类并在input参数中提供文件来实现。

关于c++ - 使用C++运行Hadoop管道时不存在此类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62863153/

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