Hadoop 问题java.lang.IllegalArgumentException Wrong FS: hdfs://192.168

在运行Hadoop程序时遇到错误'java.lang.IllegalArgumentException Wrong FS: hdfs://192.168.96.131:9000/user/hadoop, expected: file:/'。解决方法包括将core-site.xml和hdfs-site.xml文件复制到项目中,或在代码中使用Configuration对象的set方法设置fs.defaultFS。问题出在访问远程HDFS的配置上,通过继承Configured类并正确配置可以避免拷贝配置文件。" 48688369,5516067,解决Matlab内存不足问题的策略,"['Matlab', '内存优化', '科学计算', '软件工程']
摘要由CSDN通过智能技术生成

在看hadoop in action 的时候,关于hdfs的操作地方,抄写代码PutMerge到eclipse上,出现了错误

Wrong FS: hdfs://192.168.96.131:9000/user/hadoop, expected: file:/

然后,上网查找了一下这个错误,说是将core-site.xml 和hdfs-site.xml拷贝到项目里去就可以,原因是访问远程的HDFS 需要通过URI来获得FileSystem.。参考链接

但是在同样的eclipse配置下,典型的wordcount程序却没有错误(这个随便百度或者谷歌一下找个hadoop安装教程,测试安装的时候都有)

结合上面两个现象,觉得问题应该出在配置问题上,于是想到Configuration对象。

对比了一下,在WordCount中,Configuration对象是通过getConf()方法得到的,而在PutMerge下,是用的new Configuration()创建的。

于是,尝试在PutMerge中用getConf()方法,发现是需要继承Configured类。这样就不用拷贝core-site.xml 和hdfs-site.xml到项目里了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值