利用MAVEN打包spark工程,运行时报错No FileSystem for scheme: file的问题

利用maven打包spark项目,运行生成的jar包(例如:java -jar DataAnalygis.jar hdfs://server1:8020/tasks/files),运行时报以下异常。

Exception in thread "main" java.lang.RuntimeException: java.io.IOException: No FileSystem for scheme: file
at org.apache.hadoop.mapred.JobConf.getWorkingDirectory(JobConf.java:657)
at org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:389)
at org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:362)
at org.apache.spark.SparkContext$$anonfun$15.apply(SparkContext.scala:391)
at org.apache.spark.SparkContext$$anonfun$15.apply(SparkContext.scala:391)
at org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$1.apply(HadoopRDD.scala:111)
at org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$1.apply(HadoopRDD.scala:111)
at scala.Option.map(Option.scala:145)

解决办法:

1)检查生成的jar中META-INF->services->org.apache.hadoop.fs.FileSystem文件,该文件中要包含FileSystem的实现。特别是

org.apache.hadoop.fs.LocalFileSystem #处理local file scheme的类

2)还有一个可能性是检查classpath是否包含hadoop-hdfs.jar,不过这种可能性比较低。一般情况下,在项目中利用maven打包,应该都配置正确的hadoop-client的依赖(dependency),因此这种错误就不是这个情况导致。

 

另外,对于hadoop的jar运行时报这个错,这种解决方法也适用。

转载于:https://www.cnblogs.com/nb591/p/3601561.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值