开发者社区> 问答> 正文

使用Java查询HDFS错误:IllegalArgumentException?报错

环境
    
    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);
	}
}
结果: 
    
请问为什么查不到???

展开
收起
爱吃鱼的程序员 2020-06-22 19:26:01 629 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

    2020-06-22 19:26:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于Java容器的多应用部署技术实践 立即下载
海量数据分布式存储——Apache HDFS之最新进展 立即下载
从《阿里巴巴Java开发手册》编写推广谈技术成长 立即下载