我正在尝试将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的多个版本,但我在任何地方都找不到其他版本。
1条答案
按热度按时间wsewodh21#
对于第一个例外,您缺少jetty util
https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-util/9.3.24.v20180605
你应该核实一下
hadoop classpath
返回所需内容对于其余的异常,您应该验证是否可以运行
hadoop fs - ls wasb://path
在每个潜在的Spark执行器上