我在 Apache Zeppelin 中创建并运行了一个 %pyspark 程序,该程序在带有 yarn-client 的 Spark 集群上运行。该程序正在从 HDFS 读取 Dataframe 中的文件,并执行一个简单的 groupby 命令并成功打印输出。我使用的是 Zeppellin 版本 0.6.2 和 Spark 2.0.0。
我可以看到作业在 YARN 中运行(参见 application_1480590511892_0007):
但是当我同时检查 Spark UI 时,这个工作什么也没有:
问题 1:这份工作不应该出现在这两个窗口中吗?
此外,上面 SparkUI 图像中已完成的应用程序是带有 %python 解释器的 Zeppelin 作业,只需初始化 SparkSession 并停止它:
第一个齐柏林飞艇街区:
%python
from pyspark.sql import SparkSession
from pyspark.sql import Row
import collections
spark = SparkSession.builder.appName("SparkSQL").getOrCreate()
第二个齐柏林飞艇 block :
%python
spark.stop()
问题 2: 反过来,这个作业还没有出现在 YARN UI 中。 SparkUI 中出现作业是否意味着它正在使用 Spark Resource manager 运行?
非常感谢对这些问题的任何见解。
最佳答案
一旦首次使用解释器,Zeppelin 就会运行连续的 Spark 应用程序。所有段落都将在这个应用程序中运行。在您的第二段中,您将停止 SparkSession (spark.stop),这样会终止在首次使用解释器时创建的应用程序。因此,您只能在“已完成的申请”部分下看到工作。如果删除 spark.stop,您应该会在正在运行的应用程序下看到该作业。
关于hadoop - 在 Spark 集群和 YARN 上运行的 Apache Zeppelin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40917467/