Apache Spark历史记录服务器如何引用Amazon S3?

时间:2018-01-24 09:38:13

标签: hadoop apache-spark amazon-s3

[版]
Apache Spark 2.2.0
Hadoop 2.7

我想设置Apache Spark histroy服务器 位于Amazon S3中的Spark事件日志 我可以在S3中保存日志文件,但无法从历史服务器读取。

安装在/usr/local/spark的Apache Spark 因此,$SPARK_HOME/usr/local/spark

$ cd /usr/local/spark/sbin
$ sh start-history-server.sh

我收到了以下错误

Exception in thread "main" java.lang.ClassNotFoundException: org.apache.hadoop.fs.s3a.S3AFileSystem
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.spark.util.Utils$.classForName(Utils.scala:230)
....

我的spark-defaults.conf位于

之下
spark.hadoop.fs.s3a.impl org.apache.hadoop.fs.s3a.S3AFileSystem
spark.history.provider org.apache.hadoop.fs.s3a.S3AFileSystem
spark.history.fs.logDirectory s3a://xxxxxxxxxxxxx
spark.eventLog.enabled true
spark.eventLog.dir s3a://xxxxxxxxxxxxxxx

我在/usr/local/spark/jars/

中安装了这2个jar文件
aws-java-sdk-1.7.4.jar
hadoop-aws-2.7.3.jar

但错误相同。

有什么问题?

1 个答案:

答案 0 :(得分:0)

请在spark-defaults.conf文件中添加以下内容,然后重试。

spark.driver.extraClassPath:/usr/lib/hadoop/hadoop-aws.jar:/ usr / share / aws / aws-java-sdk / *: spark.executor.extraClassPath:/usr/lib/hadoop/hadoop-aws.jar:/ usr / share / aws / aws-java-sdk / *: