我一直关注此tutorial,以便在Linux上的HDInsight中的Spark群集(版本1.5.2)上设置Zeppelin。一切正常,我已成功通过SSH隧道连接到Zeppelin笔记本电脑。但是,当我尝试运行任何类型的段落时,第一次出现以下错误:
java.io.IOException:没有用于scheme的文件系统:wasb
收到此错误后,如果我尝试重新运行该段落,则会出现另一个错误:
java.net.SocketException:管道损坏 at java.net.SocketOutputStream.socketWrite0(Native Method)
无论我输入的代码是什么,都会发生这些错误,即使没有对hdfs的引用也是如此。我所说的是我得到了#34; No FileSystem"甚至对于一个简单的scala表达式也是错误的,比如parallelize。
是否缺少配置步骤?
答案 0 :(得分:0)
我下载了你指向我输入的脚本的tar球。但是我希望我猜测你的zeppelin安装和spark安装不能完全与wasb一起工作。为了获得使用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,您可能希望在尝试其中一些更改时将该配置更改为其他位置。 (zeppelin.sh)
export SPARK_YARN_JAR=wasb:///apps/zeppelin/zeppelin-spark-0.5.5-SNAPSHOT.jar
我希望这有帮助,如果你还有问题,我还有其他一些想法,但首先要从这些想法开始。