使用Java查询HDFS错误:IllegalArgumentException

vigiles 发布于 2013/05/17 23:54
阅读 7K+
收藏 1
环境
    
    Ubuntu 10.04
         用户:hep,主机名:hep-ubuntu,IP:192.168.1.251
           
         
    Hadoop 1.1.2
    Hadoop-eclipse-plugin-1.1.2.jar
    Eclipse 4.2.2
        


代码



Run on Hadoop,

报错

Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: hdfs://192.168.1.251:9000/home/hep/hadoop-hep/mapred/system/jobtracker.info, expected: file:///
	at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:381)
	at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:55)
	at org.apache.hadoop.fs.LocalFileSystem.pathToFile(LocalFileSystem.java:61)
	at org.apache.hadoop.fs.LocalFileSystem.exists(LocalFileSystem.java:51)
	at cn.cvu.hdfs.TestHdfs.main(TestHdfs.java:19)
根据提示,修改Path
package cn.cvu.hdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class TestHdfs {

	public static void main(String[] args) throws Exception {
		Path f=new Path("file:///192.168.1.251:9000/home/hep/hadoop-hep/mapred/system/jobtracker.info");
		//1. 
		Configuration conf = new Configuration();
		//2. 
		FileSystem fs = FileSystem.get(conf);
		//3.
		boolean b = fs.exists(f);
		System.out.println(b);
	}
}
结果: 
    
请问为什么查不到???

加载中
0
vigiles
vigiles
此问题已结。
Vchen557
Vchen557
怎么解决的?
0
旅行
旅行
你的hdfs:///为什么是三个斜线?不应该两个吗?你试试
vigiles
vigiles
报错提示 : expected: file:///
vigiles
vigiles
保持提示说: expected: file:///
0
逝水fox
逝水fox
file:///192.168.....  没这写法哦,你协议没搞对吧
vigiles
vigiles
回复 @逝水fox : 什么默认系统?core-site.xml? <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property>
逝水fox
逝水fox
回复 @vigiles : 不能直接/是你忘了改hadoop的默认文件系统吧...
vigiles
vigiles
在0.20版甚至直接/开始路径即可,是不是版本的问题?
vigiles
vigiles
报错提示 : expected: file:///
0
vigiles
vigiles
回复 @王维琛 :
 
//1.配置器
Configuration conf = new Configuration();
conf.addResource(new Path("/home/hm/hadoop-1.1.2/conf/core-site.xml"));
//2.文件系统
FileSystem fs = FileSystem.get(conf);
//3.已存在的文件
Path path = new Path("/home/hm/hadoop-hm/mapred/system/jobtracker.info");
返回顶部
顶部