linux - 在 Azure HdInsight 的 Linux 群集上的 Spark 中运行 Zeppelin 段落时出错

标签 linux azure apache-spark azure-hdinsight apache-zeppelin

我一直在关注这个tutorial为了在 Linux 上的 HDInsight 中的 Spark 集群(版本 1.5.2)上设置 Zeppelin。一切正常,我已经成功地通过 SSH 隧道连接到 Zeppelin notebook。但是,当我尝试运行任何一种段落时,第一次出现以下错误:

java.io.IOException: No FileSystem for scheme: wasb

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

java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method)

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

是否缺少配置步骤?

最佳答案

我正在下载您在键入时指向的脚本的 tar 球。但我想我猜你的齐柏林飞艇安装和 Spark 安装不完整,无法与 wasb 一起使用。为了让 spark 与 wasb 一起工作,您需要在类路径中添加一些 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

一旦你有 spark 与 wasb 一起工作,或者下一步是在 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

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

关于linux - 在 Azure HdInsight 的 Linux 群集上的 Spark 中运行 Zeppelin 段落时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34679202/

相关文章:

java - Spark Java 闭包详细信息

scala - 将jar提交到sequenceiq docker-spark容器

architecture - 使用 Azure 存储表作为队列并由多个辅助角色处理?

sql - Azure SQL 数据库发布 : Statement 'CREATE SYMMETRIC KEY' is not supported for the targeted platform

linux - X86_32 Linux下使用汇编语言保留部分控制台

linux - Cat 数千个文件

azure - 是否可以在 ServiceBus 死信队列消息上设置 TTL?

mysql - 来自另一个 SQL 的列的子字符串

linux - 使用 Chef 在 LDAP 中具有相同 ID 的多个组

c++ - Linux 中 NSight Eclipse 中的 CUDA 调试