gpt4 book ai didi

java - 访问hadoop文件系统中的文件

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

我必须访问hadoop文件系统中的几个文件,例如/user/.../data/somefile.txt
我不知道如何访问这些文件。我有如下所示的代码,但这不起作用。因此,我尝试了诸如“hdfs:// user / ....”,“hdfs:// localhost:50070 / user / ...”之类的方法,或者以某种方式使用URI(尽管我真的不知道这是如何工作的)。

我为此任务提供了hadoop版本1.2.1,并且我正在虚拟机和Eclipse中使用ubuntu(没有hadoop插件)。
我以前从未使用过hadoop,因此,如果您能帮助我,那将是很棒的。

     JobConf conf = new JobConf(TotalWordCount.class); 
conf.setJobName("wordcount");

conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);

conf.setMapperClass(Map.class);
conf.setCombinerClass(Reduce.class);
conf.setReducerClass(Reduce.class);

conf.setInputFormat(TextInputFormat.class);
conf.setOutputFormat(TextOutputFormat.class);

FileInputFormat.setInputPaths(conf, new Path("/user/.../data/textfile.txt"));

FileOutputFormat.setOutputPath(conf, new Path("/user/.../output"));

LineProcessor.initializeStopWords();

JobClient.runJob(conf);

运行上面的代码,我得到这样的错误:
ERROR security.UserGroupInformation: PriviledgedActionException as:ds2013 cause:org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/user/.../data/textfile.txt
Exception in thread "main" org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/user/.../data/textfile.txt

我也尝试过类似的东西
 DistributedCache.addCacheFile((new Path("/user/.../data/textfile.txt")).toUri(), conf);
Path[] paths = DistributedCache.getLocalCacheFiles(conf);
Path cachePath = paths[0];
BufferedReader stopListReader = new BufferedReader(new FileReader(cachePath.toString()));

但是找不到文件。
Exception in thread "main" java.io.FileNotFoundException: File /user/.../data/textfile.txt does not exist.

最佳答案

谢谢大家帮助。问题是您根本无法像我一样在eclipse中运行程序。当我使用终端运行jar时,它会找到路径。

关于java - 访问hadoop文件系统中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20059027/

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