hadoop - 在 Spark 集群和 YARN 上运行的 Apache Zeppelin

标签 hadoop apache-spark pyspark apache-zeppelin

我在 Apache Zeppelin 中创建并运行了一个 %pyspark 程序,该程序在带有 yarn-client 的 Spark 集群上运行。该程序正在从 HDFS 读取 Dataframe 中的文件,并执行一个简单的 groupby 命令并成功打印输出。我使用的是 Zeppellin 版本 0.6.2 和 Spark 2.0.0。

我可以看到作业在 YARN 中运行(参见 application_1480590511892_0007): enter image description here

但是当我同时检查 Spark UI 时,这个工作什么也没有:

enter image description here

问题 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/

相关文章:

hadoop - 像couchdb这样的数据存储的MapReduce和Hadoop的区别?

Hadoop 作业使用相同的 reducer 输出到相同的文件

mysql - SQL 查询/Spark 数据帧外连接并减去两个表的值

python - PySpark DataFrames - 使用不同类型的列之间的比较进行过滤

java - 如何在不在 libjars 中编写完整类路径的情况下在 scalding/hadoop 作业中运行 slim jar

hadoop - 具有两个jar的Hadoop Mapreduce(仅在namenode上需要一个jar)

java - spark应用jar是否需要提交?

hadoop - 使用 Apache Spark 安装 Hive

python - 如何在使用 pyspark shell 时导入额外的 python 包

python - 使用 PySpark 并行自定义函数