Spark和Zeppelin连接到WASBS Azure Blob存储

时间:2019-07-14 14:34:35

标签: azure apache-spark azure-storage azure-storage-blobs apache-zeppelin

我试图在容器中与Spark一起运行Zeppelin,并从Azure Blob存储读取文件。

我的Zeppelin容器配置为将Spark作业发送到在Kubernetes集群上不同容器中运行的主服务器。

当我尝试从Azure读取文件时,出现以下错误;

java.io.IOException: No FileSystem for scheme: wasbs
  at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2660)
  at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2667)
  at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)
  at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703)
  at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685)
  at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373)
  at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
  at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary$1.apply(DataSource.scala:547)
  at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary$1.apply(DataSource.scala:545)
  at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
  at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
  at scala.collection.immutable.List.foreach(List.scala:392)
  at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241)
  at scala.collection.immutable.List.flatMap(List.scala:355)
  at org.apache.spark.sql.execution.datasources.DataSource.org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary(DataSource.scala:545)
  at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:359)
  at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:223)
  at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:211)
  at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:178)
  at AccumuloClusterWriter$.main(<console>:62)

如果我随后运行一个带有以下代码的笔记本,

sc.hadoopConfiguration.set("fs.wasb.impl", "org.apache.hadoop.fs.azure.NativeAzureFileSystem")
sc.hadoopConfiguration.set("fs.AbstractFileSystem.wasb.impl", "org.apache.hadoop.fs.azure.Wasb")

sc.hadoopConfiguration.set("fs.wasbs.impl", "org.apache.hadoop.fs.azure.NativeAzureFileSystem")
sc.hadoopConfiguration.set("fs.AbstractFileSystem.wasbs.impl", "org.apache.hadoop.fs.azure.Wasbs")

我开始出现以下错误: java.lang.NoClassDefFoundError: org/apache/hadoop/fs/StreamCapabilities

我正在将Zeppelin 0.8.1与Spark 2.4.3一起运行

我的CLASSPATH如下; :/jars/hadoop-azure-2.7.0.jar:/jars/azure-storage-3.1.0.jar:

hadoop-azure和azure-storage罐子在我的Spark jars目录中。

令我困惑的一件事是我的代码是在Zeppelin容器上运行,还是实际上在集群节点之一上运行。我一直试图在Zeppelin容器上纠正此问题,但我想知道配置错误是否实际上在Spark Master容器上。

在此,我们将不胜感激任何指导和协助。

0 个答案:

没有答案