Hadoop+Maven项目打包异常

[size=large]先简单说下业务:有一个单独的模块,可以在远程下载Hadoop上的索引,然后合并压缩,最后推送到solr服务器上

原来使用的是Ant打包,外部的jar是在执行主体的jar时cp进环境变量的,所以没有出现今天要说的这个问题,伪代码如下:

先把所有外部的jar的路径,拼接好一个字符串path,然后将path传入下面执行的代码

java -cp path com.xxx.xxx.Test

现在要统一项目风格,要把Ant项目转换为Maven项目,大体上没啥问题,由于不写MapReduce,仅仅使用HDFS api操作文件系统上的一些数据,所以引入的依赖如下,并没有hadoop-client[/size]

[img]http://dl2.iteye.com/upload/attachment/0110/8862/a069ae15-1d37-319f-afc2-5bb5e3cd5cbb.jpg[/img]
[size=large]打包也很顺利,但是,当到Linux上,执行远程下载Hadoop上的
数据时,总是报如下的异常:[/size]

[img]http://dl2.iteye.com/upload/attachment/0110/8864/01de09a2-eb3a-3e7d-b20a-abad48a83342.jpg[/img]
[size=large]然后检查了下项目依赖的包,发现不缺依赖的jar,经过找资料,发现原来是maven-assembly 这个插件在打包时,覆盖了hadoop的两个关键属性:[/size]
conf.set("fs.hdfs.impl", org.apache.hadoop.hdfs.DistributedFileSystem.class.getName());
conf.set("fs.file.impl", org.apache.hadoop.fs.LocalFileSystem.class.getName());

[size=large]如何解决?
方法一:
在实例化Configuration类 , 加入如下属性:[/size]

[img]http://dl2.iteye.com/upload/attachment/0110/8866/0b3b4cfa-8047-3f76-99b1-f563ab5a437e.jpg[/img]
[size=large]方法二:在项目路径下新建一个core-site.xml配置如下属性即可[/size]


[img]http://dl2.iteye.com/upload/attachment/0110/8868/17aebbad-7aaa-32ee-9138-5f7202324fe7.jpg[/img]

[size=large]参考链接:[url]http://blog.intelligencecomputing.io/big_data/13953/repost-no-filesystem-for-scheme-hdfsno-filesystem-for-scheme-file[/url][/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值