[版本]
Apache Spark 2.2.0
Hadoop 2.7
我想设置 Apache Spark 历史服务器。
位于 Amazon S3 中的 Spark 事件日志。
我可以在 S3 中保存日志文件,但无法从历史服务器读取。
Apache Spark 安装在 /usr/local/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
我将这 2 个 jar 文件安装在 /usr/local/spark/jars/
aws-java-sdk-1.7.4.jar
hadoop-aws-2.7.3.jar
但错误是一样的。
怎么了?
最佳答案
请在 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/*:
关于hadoop - Apache Spark history-server 如何引用 Amazon S3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48419110/