java.io.IOException: No FileSystem for scheme: file spark hadoop
2017-11-23 16:43
507 查看
问题描述
在IDEA中新建maven工程运行基本的spark程序如下:// 创建一个Scala版本的Spark Context val conf = new SparkConf().setAppName("wordCount").setMaster("local") val sc = new SparkContext(conf) // 读取我们的输入数据 val input = sc.textFile(logFile) // 把它切分成一个个单词 val words = input.flatMap(line => line.split(" ")) // 转换为键值对并计数 val counts = words.map(word => (word, 1)).reduceByKey{case (x, y) => x + y} // 将统计出来的单词总数存入一个文本文件,引发求值 println(counts.collect().mkString(","))
结果报错如下:
Exception in thread "main" java.lang.RuntimeException: java.io.IOException: No FileSystem for scheme: file at org.apache.hadoop.mapred.JobConf.getWorkingDirectory(JobConf.java:658) at org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:436) at org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:409) at org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$33.apply(SparkContext.scala:1015) at org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$33.apply(SparkContext.scala:1015) at org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:176) at org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:176) at scala.Option.map(Option.scala:145) ......
解决方案(加入了三句话):
// 创建一个Scala版本的Spark Context val conf = new SparkConf().setAppName("wordCount").setMaster("local") val sc = new SparkContext(conf) val h_conf = sc.hadoopConfiguration h_conf.set("fs.hdfs.impl", classOf[org.apache.hadoop.hdfs.DistributedFileSystem].getName) h_conf.set("fs.file.impl", classOf[org.apache.hadoop.fs.LocalFileSystem].getName) // 读取我们的输入数据 val input = sc.textFile(logFile) // 把它切分成一个个单词 val words = input.flatMap(line => line.split(" ")) // 转换为键值对并计数 val counts = words.map(word => (word, 1)).reduceByKey{case (x, y) => x + y} // 将统计出来的单词总数存入一个文本文件,引发求值 println(counts.collect().mkString(","))
报错原因:
在hadoop-commons和hadoop-hdfs两个jar文件中在META-INFO/services下包含相同的文件名org.apache.hadoop.fs.FileSystem,而我们使用maven-assembly-plugin时,最终只有一个文件被保留,所以被重写的那个文件系统就无法找到。相关文章推荐
- spark程序异常:Exception in thread "main" java.io.IOException: No FileSystem for scheme: hdfs
- maven将hadoop依赖打包成jar,运行jar后报错 java.io.IOException: No FileSystem for scheme
- spark运行java-jar:Exception in thread "main" java.io.IOException: No FileSystem for scheme: hdfs
- java.io.IOException: No FileSystem for scheme: hdfs
- java.io.IOException: No FileSystem for scheme: hdfs
- Java.io.IOException: No FileSystem for scheme: hdfs
- java.io.IOException: No FileSystem for scheme: hdfs
- java.io.IOException: No FileSystem for scheme: hdfs
- java.io.IOException: No FileSystem for scheme: hdfs
- java.io.IOException: No FileSystem for scheme: hdfs
- java.io.IOException: No FileSystem for scheme: hdfs
- 解决:java.io.IOException: No FileSystem for scheme: hdfs
- java.io.IOException: No FileSystem for scheme: hdfs
- java.io.IOException: No FileSystem for scheme: hdfs异常解决
- java.io.IOException: No FileSystem for scheme: hdfs异常解决
- java.io.IOException: No FileSystem for scheme: hdfs
- java.io.IOException: No FileSystem for scheme: hdfs
- java.io.IOException: No FileSystem for scheme: hdfs
- hadoop No FileSystem for scheme: file
- hadoop No FileSystem for scheme: hdfs