我经常在火花作业运行时对DAG进行分析。但是,当应用程序运行时必须坐着看才能看到DAG,这很烦人。
因此,我尝试使用名为spark history server的东西查看DAg,我知道它可以帮助我查看过去的作业。我可以轻松访问端口18080,并且可以看到history server UI。
但是,它没有显示任何与spark程序执行相关的信息。我知道我的历史服务器正在运行,因为当我执行sudo服务时,我看到了所有状态
spark history server正在运行[正常]
所以我已经尝试了这个问题的建议:这里。
我想这是因为我在运行spark on Thread,它一次只能使用一个资源管理器?大概
那么,我如何看到火花执行DAG,*在*一个作业完成后?更具体地说,当运行YARN作为我的资源管理器时?
仅运行历史服务器不足以执行以前的作业。您需要指定作业来存储所有以前作业的事件日志。
通过运行Spark history server/sbin/启动历史记录服务器。sh
启用spark作业的事件日志
spark.eventLog.enabled true
spark.eventLog.dir <path to event log(local or hdfs)>
spark.history.fs.logDirectory <path to event log(local or hdfs)>
在火花默认值上添加这些。conf文件
如监控和仪表中所述,我们需要在火花默认值中设置以下三个参数。形态
spark.eventLog.enabled
spark.eventLog.dir
spark.history.fs.logDirectory
第一个属性应为true
spark.eventLog.enabled true
第二个和第三个属性应指向事件日志的位置,这些位置可以是本地文件系统或hdfs文件系统。第二个属性定义spark作业的日志存储位置,第三个属性是history server在18080的web UI中显示日志。
如果选择linux本地文件系统(/opt/spark/spark events)
或
spark.eventLog.dir file:/opt/spark/spark-events
spark.history.fs.logDirectory file:/opt/spark/spark-events
或
spark.eventLog.dir file:///opt/spark/spark-events
spark.history.fs.logDirectory file:///opt/spark/spark-events
应该管用
如果您选择hdfs-file-system(/spack-event)
要么
spark.eventLog.dir hdfs:/spark-events
spark.history.fs.logDirectory hdfs:/spark-events
或
spark.eventLog.dir hdfs:///spark-events
spark.history.fs.logDirectory hdfs:///spark-events
或
spark.eventLog.dir hdfs://masterIp:9090/spark-events
spark.history.fs.logDirectory hdfs://masterIp:9090/spark-events
应该在master Ip: 9090
是hadoop
配置的core-site.xml
中的fs.default.name
属性的地方工作。
Apache spark history server可以通过以下方式启动
$SPARK_HOME/sbin/start-history-server.sh
第三方spark history server(例如Cloudera)可通过以下方式启动
sudo service spark-history-server start
并停止历史服务器(用于Apache)
$SPARK_HOME/sbin/stop-history-server.sh
或(对于cloudera)
sudo service spark-history-server stop
当我使用spark-submit with master yarn和deploy-mode cluster提交spark作业时,它不会打印/返回任何applicationId,一旦作业完成,我必须手动检查MapReduce jobHistory或spark HistoryServer来获取作业细节。 我的集群被许多用户使用,在jobHistory/HistoryServer中找到我的作业需要很多时
然而,我不知道我是否真的需要一个插件,如果需要,是哪一个,以及如何去做它。我尝试使用'build/mvn'和'build/sbt'直接编译github源代码,但是'spark-assembly2.11-2.0.2.jar'文件只有283字节。 我的目标是使用较新版本的fat jar运行pyspark shell,其方式与这里提到的类似。
在yarn-cluster模式下,驱动程序在应用程序主程序中运行(在YARN集群内)。在yarn-client模式下,它在提交作业的client节点中运行 我想知道使用一种模式比使用另一种模式有什么好处?我们在什么情况下应该使用哪种模式。
我一直试图提交一个简单的python脚本,以便在一个带有Yarn的集群中运行它。当我在本地执行作业时,没有问题,一切都很好,但当我在集群中运行它时,它就失败了。 诊断:文件不存在:hdfs://myserver:8020/user/josholsan/.sparkstaging/application_1510046813642_0010/test.py 我不知道为什么它找不到test.py,我也
我已经在一个15节点的Hadoop集群上安装了。所有节点都运行和最新版本的Hadoop。Hadoop集群本身是功能性的,例如,YARN可以成功地运行各种MapReduce作业。 我可以使用以下命令在节点上本地运行Spark Shell,而不会出现任何问题:。 你知道为什么我不能用客户端模式在纱线上运行Spark Shell吗?
我正在纱线客户端模式下运行火花作业。我在unix脚本中使用Spark提交命令运行这些作业。我想为正在运行的每个火花作业创建日志。我尝试使用以下命令获取日志: 但在这里,如果spark作业失败,它将不会在命令状态检查中被捕获,可能是unix检查|$tee命令的状态,无论spark作业成功还是失败,该命令始终是成功的 我尝试使用log4j但没有成功。我想将每个火花作业日志文件存储在本地unix服务器上