我正在尝试从SparkSQL作业访问S3文件.我已经尝试了几个帖子的解决方案,但似乎没有任何效果.也许是因为我的EC2集群为Hadoop2.7运行了新的Spark2.0.
我用这种方式设置了hadoop:
sc.hadoopConfiguration.set("fs.s3a.impl","org.apache.hadoop.fs.s3a.S3AFileSystem")
sc.hadoopConfiguration.set("fs.s3a.awsAccessKeyId", accessKey)
sc.hadoopConfiguration.set("fs.s3a.awsSecretAccessKey", secretKey)
Run Code Online (Sandbox Code Playgroud)
我使用sbt程序集构建一个超级jar:
name := "test"
version := "0.2.0"
scalaVersion := "2.11.8"
libraryDependencies += "com.amazonaws" % "aws-java-sdk" % "1.7.4"
libraryDependencies += "org.apache.hadoop" % "hadoop-aws" % "2.7.3" excludeAll(
ExclusionRule("com.amazonaws", "aws-java-sdk"),
ExclusionRule("commons-beanutils")
)
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.0.0" % "provided"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.0.0" % "provided"
Run Code Online (Sandbox Code Playgroud)
当我将作业提交到群集时,我总是遇到以下错误:
线程"main"中的异常org.apache.spark.SparkException:由于阶段失败而中止作业:阶段0.0中的任务0失败4次,最近失败:阶段0.0中丢失的任务0.3(TID 6,172.31.7.246):java .lang.RuntimeException:java.lang.ClassNotFoundException:在org.apache.hadoop的org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2195)中找不到类org.apache.hadoop.fs.s3a.S3AFileSystem .fs.FileSystem.getFileSystemClass(FileSystem.java:2638)org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2651)org.apache.hadoop.fs.FileSystem.access $ 200(FileSystem.java: 92)org.apache.hadoop.fs.FileSystem $ Cache.getInternal(FileSystem.java:2687)atg.apache.hadoop.fs.FileSystem $ Cache.get(FileSystem.java:2669)org.apache.hadoop org.apache.spark.util.Utils $ .getHadoopFileSystem(Utils.scala:1726)中的.fs.FileSystem.get(FileSystem.java:371)org.apache.spark.util.Utils $ .doFetchFile(Utils.scala) :662)at org.apache.spark.util.Utils $ .fetchFile(Utils.scala:446)在org.apache.spark.executor.Executor $$ anonfun $ org $ …
我想知道是否有人已经成功地使用 docker 构建(和调试)了一个 qtcreator 项目?我正在 MacOS 上开发 linux 应用程序。现在,我在 MacOS 上使用 QtCreator 进行编程,然后在 docker shell 中进行编译和测试(我在 MacO 和带有 docker-sync 的 docker 容器之间共享项目源代码)。但这不是很实用,所以如果有人对我有更好的解决方案......