尝试使用spark-shell读取S3中的文件:
scala> val myRdd = sc.textFile("s3n://myBucket/myFile1.log")
lyrics: org.apache.spark.rdd.RDD[String] = s3n://myBucket/myFile1.log MappedRDD[55] at textFile at <console>:12
scala> myRdd.count
java.io.IOException: No FileSystem for scheme: s3n
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2607)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2614)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
... etc ...
该IOException异常:没有文件系统的方案:S3N与发生错误:
开发机上的Spark 1.31或1.40(无Hadoop库)
从Hortonworks Sandbox HDP v2.2.4(Hadoop 2.60)运行,该现成的集成了Spark 1.2.1
使用s3://或s3n://方案
此错误的原因是什么?缺少依存关系,缺少配置或滥用sc.textFile()?
或者可能这是由于影响特定的Spark构建于Hadoop的2.60,因为这一个bug 后似乎暗示。我将尝试使用Spark for Hadoop 2.40来解决问题。
当年话下
尚方宝剑之说