`
qindongliang1922
  • 浏览: 2146531 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:116302
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:124568
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:58441
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:70335
社区版块
存档分类
最新评论

Hadoop+Maven项目打包异常

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

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

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

java -cp  path  com.xxx.xxx.Test

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



打包也很顺利,但是,当到Linux上,执行远程下载Hadoop上的
数据时,总是报如下的异常:



然后检查了下项目依赖的包,发现不缺依赖的jar,经过找资料,发现原来是maven-assembly 这个插件在打包时,覆盖了hadoop的两个关键属性:
conf.set("fs.hdfs.impl", org.apache.hadoop.hdfs.DistributedFileSystem.class.getName());
 conf.set("fs.file.impl", org.apache.hadoop.fs.LocalFileSystem.class.getName());

如何解决?
方法一:
在实例化Configuration类 , 加入如下属性:



方法二:在项目路径下新建一个core-site.xml配置如下属性即可




参考链接:http://blog.intelligencecomputing.io/big_data/13953/repost-no-filesystem-for-scheme-hdfsno-filesystem-for-scheme-file
  • 大小: 183.7 KB
  • 大小: 220.9 KB
  • 大小: 187.7 KB
  • 大小: 154.2 KB
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics