如果你没有指定这个,你的客户端将查找不包含指定路径的本地FS,因此抛出该错误。
我试图在Eclipse上运行单词计数示例。一般来说,当我们在eclipse中点击"运行hadoop"选项时,我们会得到一个新窗口,要求选择服务器位置。但是,现在它直接运行程序,而不要求我从下面的列表中选择一个现有的服务器。
我认为因为这个,我得到了以下异常:
13/04/21 08:46:31 ERROR security.UserGroupInformation: PriviledgedActionException as:hduser1 cause:org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/home/hduser1/gutenbergIP/pg4300.txt
Exception in thread "main" org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/home/hduser1/gutenbergIP/pg4300.txt
我的代码工作,如果我改变行从:
FileInputFormat.setInputPaths(conf, "/home/hduser1/gutenbergIP/pg4300.txt");
:
FileInputFormat.setInputPaths(conf, "hdfs://localhost:54310/home/hduser1/gutenbergIP/pg4300.txt");
如果我显式地指定文件名和完整的url,它是工作的。我需要一些帮助。我怎样才能使我的相对URL工作,而不是给出一个完整的URL(必须在学校提交这个作为作业)。
在代码中添加以下两行:
config.addResource(new Path("/HADOOP_HOME/conf/core-site.xml"));
config.addResource(new Path("/HADOOP_HOME/conf/hdfs-site.xml"));