0

我一直在关注本教程,以便在 Linux 上的 HDInsight 中的 Spark 群集(版本 1.5.2)上设置 Zeppelin。一切正常,我已成功通过 SSH 隧道连接到 Zeppelin 笔记本。但是,当我尝试运行任何类型的段落时,我第一次收到以下错误:

java.io.IOException:没有用于方案的文件系统:wasb

收到此错误后,如果我尝试重新运行该段落,则会收到另一个错误:

java.net.SocketException:java.net.SocketOutputStream.socketWrite0(本机方法)处的管道损坏

无论我输入什么代码,这些错误都会发生,即使没有对 hdfs 的引用。我要说的是,即使对于微不足道的 scala 表达式(例如并行化),我也会收到“No FileSystem”错误。

是否缺少配置步骤?

4

1 回答 1

0

我正在下载您在我键入时指向的脚本的 tar 球。但我猜想你的 zeppelin 安装和 spark 安装不完整,无法与 wasb 一起使用。为了让 spark 与 wasb 一起工作,您需要在 Class 路径中添加一些 jar。为此,您需要在 spark-defaults.conf 中添加类似的内容(HDInsights 中的路径可能不同,这是来自 IaaS 上的 HDP)

spark.driver.extraClassPath /usr/hdp/2.3.0.0-2557/hadoop/lib/azure-storage-2.2.0.jar:/usr/hdp/2.3.0.0-2557/hadoop/lib/microsoft-windowsazure-storage-sdk-0.6.0.jar:/usr/hdp/2.3.0.0-2557/hadoop/hadoop-azure-2.7.1.2.3.0.0-2557.jar
spark.executor.extraClassPath /usr/hdp/2.3.0.0-2557/hadoop/lib/azure-storage-2.2.0.jar:/usr/hdp/2.3.0.0-2557/hadoop/lib/microsoft-windowsazure-storage-sdk-0.6.0.jar:/usr/hdp/2.3.0.0-2557/hadoop/hadoop-azure-2.7.1.2.3.0.0-2557.jar

一旦你有了使用 wasb 的 spark,或者下一步是在 zeppelin 类路径中制作这些相同的 jar。测试您的设置的一个好方法是制作一个打印您的环境变量和类路径的笔记本。

sys.env.foreach(println(_))

val cl = ClassLoader.getSystemClassLoader
cl.asInstanceOf[java.net.URLClassLoader].getURLs.foreach(println)

还要查看安装脚本,它试图从 wasb 中提取 zeppelin jar,您可能希望在尝试其中一些更改时将该配置更改为其他位置。(齐柏林飞艇.sh)

export SPARK_YARN_JAR=wasb:///apps/zeppelin/zeppelin-spark-0.5.5-SNAPSHOT.jar

我希望这会有所帮助,如果您仍然有问题,我还有其他一些想法,但会先从这些开始。

于 2016-01-08T19:13:00.477 回答