小编ell*_*kaa的帖子

从Spark 2.0访问S3

我正在尝试从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 $ …

hadoop amazon-s3 apache-spark

5
推荐指数
2
解决办法
7861
查看次数

使用 docker 构建 qtcreator 项目

我想知道是否有人已经成功地使用 docker 构建(和调试)了一个 qtcreator 项目?我正在 MacOS 上开发 linux 应用程序。现在,我在 MacOS 上使用 QtCreator 进行编程,然后在 docker shell 中进行编译和测试(我在 MacO 和带有 docker-sync 的 docker 容器之间共享项目源代码)。但这不是很实用,所以如果有人对我有更好的解决方案......

linux macos cross-compiling qt-creator docker

5
推荐指数
1
解决办法
605
查看次数