azure blob存储Spark

jfgube3f  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(800)

我正在尝试将spark连接到azure blob存储(wasbs)。我在hadoop类路径中添加了以下jar

com.microsoft.azure_azure-storage-7.0.0.jar
org.apache.hadoop_hadoop-annotations-3.1.2.jar
org.apache.hadoop_hadoop-auth-3.1.2.jar
org.apache.hadoop_hadoop-azure-3.1.2.jar
org.apache.hadoop_hadoop-common-3.1.2.jar
org.eclipse.jetty_jetty-http-9.3.24.v20180605.jar
org.eclipse.jetty_jetty-io-9.3.24.v20180605.jar
org.eclipse.jetty_jetty-security-9.3.24.v20180605.jar
org.eclipse.jetty_jetty-server-9.3.24.v20180605.jar
org.eclipse.jetty_jetty-servlet-9.3.24.v20180605.jar
org.eclipse.jetty_jetty-webapp-9.3.24.v20180605.jar
org.eclipse.jetty_jetty-xml-9.3.24.v20180605.jar

我尝试使用spark submit:

spark-submit --class mainClass --jars jars/org.apache.hadoop_hadoop-azure-3.1.2.jar,jars/com.microsoft.azure_azure-storage-7.0.0.jar,jars/org.apache.hadoop_hadoop-common-3.1.2.jar myjar.jar

我得到以下例外:

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/util/ajax/JSON$Convertor

如果我从spark submit中删除hadoop commons——我会得到:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/StreamCapabilities

如果我添加--jars jars/*来包含所有jar文件以及我得到的jetty util

java.lang.ClassNotFoundException: my.package.MainClass

我看到过类似的帖子,上面显示了jetty的多个版本,但我在任何地方都找不到其他版本。

wsewodh2

wsewodh21#

对于第一个例外,您缺少jetty util
https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-util/9.3.24.v20180605
你应该核实一下 hadoop classpath 返回所需内容
对于其余的异常,您应该验证是否可以运行 hadoop fs - ls wasb://path 在每个潜在的Spark执行器上

相关问题