You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@spark.apache.org by Eugene Morozov <fa...@list.ru> on 2015/07/22 22:22:22 UTC
Re: spark 1.3.1 : unable to access s3n:// urls (no file system for scheme s3n:)
Hi,
I’m stuck with the same issue, but I see org.apache.hadoop.fs.s3native.NativeS3FileSystem in the hadoop-core:1.0.4 (that’s the current hadoop-client I use) and this far is transitive dependency that comes from spark itself. I’m using custom build of spark 1.3.1 with hadoop-client 1.0.4.
[INFO] +- org.apache.spark:spark-core_2.10:jar:1.3.1-hadoop-client-1.0.4:provided
...
[INFO] | +- org.apache.hadoop:hadoop-client:jar:1.0.4:provided
[INFO] | | \- org.apache.hadoop:hadoop-core:jar:1.0.4:provided
The thing is I don’t have any direct usages of any hadoop-client version, so in my understanding I should be able to run my jar on any version of spark (1.3.1 with hadoop-client 2.2.0 up to 2.2.6 or 1.3.1 with hadoop-client 1.0.4 up to 1.2.1), but in reality, running it on a live cluster I’m getting class not found exception. I’ve checked über-jar of spark itself, and NativeS3FileSystem is there, so I don’t really understand where it comes from.
java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3native.NativeS3FileSystem not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2074)
I’ve just got an idea. Is it possible that Executor’s classpath is different from the Worker classpath? How can I check Executor’s classpath?
On 23 Apr 2015, at 17:35, Ted Yu <yu...@gmail.com> wrote:
> NativeS3FileSystem class is in hadoop-aws jar.
> Looks like it was not on classpath.
>
> Cheers
>
> On Thu, Apr 23, 2015 at 7:30 AM, Sujee Maniyam <su...@sujee.net> wrote:
> Thanks all...
>
> btw, s3n load works without any issues with spark-1.3.1-bulit-for-hadoop 2.4
>
> I tried this on 1.3.1-hadoop26
> > sc.hadoopConfiguration.set("fs.s3n.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
> > val f = sc.textFile("s3n://bucket/file")
> > f.count
>
> No it can't find the implementation path. Looks like some jar is missing ?
>
> java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3native.NativeS3FileSystem not found
> at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2074)
> at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2578)
> at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
> at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
>
> On Wednesday, April 22, 2015, Shuai Zheng <sz...@gmail.com> wrote:
> Below is my code to access s3n without problem (only for 1.3.1. there is a bug in 1.3.0).
>
>
>
> Configuration hadoopConf = ctx.hadoopConfiguration();
>
> hadoopConf.set("fs.s3n.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem");
>
> hadoopConf.set("fs.s3n.awsAccessKeyId", awsAccessKeyId);
>
> hadoopConf.set("fs.s3n.awsSecretAccessKey", awsSecretAccessKey);
>
>
>
> Regards,
>
>
>
> Shuai
>
>
>
> From: Sujee Maniyam [mailto:sujee@sujee.net]
> Sent: Wednesday, April 22, 2015 12:45 PM
> To: Spark User List
> Subject: spark 1.3.1 : unable to access s3n:// urls (no file system for scheme s3n:)
>
>
>
> Hi all
>
> I am unable to access s3n:// urls using sc.textFile().. getting 'no file system for scheme s3n://' error.
>
>
>
> a bug or some conf settings missing?
>
>
>
> See below for details:
>
>
>
> env variables :
>
> AWS_SECRET_ACCESS_KEY=set
>
> AWS_ACCESS_KEY_ID=set
>
>
>
> spark/RELAESE :
>
> Spark 1.3.1 (git revision 908a0bf) built for Hadoop 2.6.0
>
> Build flags: -Phadoop-2.4 -Dhadoop.version=2.6.0 -Phive -Phive-thriftserver -Pyarn -DzincPort=3034
>
>
>
>
>
> ./bin/spark-shell
>
> > val f = sc.textFile("s3n://bucket/file")
>
> > f.count
>
>
>
> error==>
>
> java.io.IOException: No FileSystem for scheme: s3n
>
> at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2584)
>
> at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
>
> at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
>
> at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2630)
>
> at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2612)
>
> at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
>
> at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
>
> at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:256)
>
> at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:228)
>
> at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:313)
>
> at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:203)
>
> at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)
>
> at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)
>
> at scala.Option.getOrElse(Option.scala:120)
>
> at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)
>
> at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)
>
> at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)
>
> at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)
>
> at scala.Option.getOrElse(Option.scala:120)
>
> at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)
>
> at org.apache.spark.SparkContext.runJob(SparkContext.scala:1512)
>
> at org.apache.spark.rdd.RDD.count(RDD.scala:1006)
>
> at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:24)
>
> at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:29)
>
> at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:31)
>
> at $iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:33)
>
> at $iwC$$iwC$$iwC$$iwC.<init>(<console>:35)
>
> at $iwC$$iwC$$iwC.<init>(<console>:37)
>
> at $iwC$$iwC.<init>(<console>:39)
>
> at $iwC.<init>(<console>:41)
>
> at <init>(<console>:43)
>
> at .<init>(<console>:47)
>
> at .<clinit>(<console>)
>
> at .<init>(<console>:7)
>
> at .<clinit>(<console>)
>
> at $print(<console>)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> at java.lang.reflect.Method.invoke(Method.java:606)
>
> at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065)
>
> at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1338)
>
> at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840)
>
> at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871)
>
> at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819)
>
> at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:856)
>
> at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:901)
>
> at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:813)
>
> at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:656)
>
> at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:664)
>
> at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:669)
>
> at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:996)
>
> at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:944)
>
> at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:944)
>
> at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
>
> at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:944)
>
> at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1058)
>
> at org.apache.spark.repl.Main$.main(Main.scala:31)
>
> at org.apache.spark.repl.Main.main(Main.scala)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> at java.lang.reflect.Method.invoke(Method.java:606)
>
> at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:569)
>
> at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
>
> at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189)
>
> at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110)
>
> at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
>
>
>
>
>
>
>
> Sujee Maniyam (http://sujee.net | http://www.linkedin.com/in/sujeemaniyam )
>
>
>
> --
> Sujee Maniyam (http://sujee.net | http://www.linkedin.com/in/sujeemaniyam )
>
Eugene Morozov
fathersson@list.ru