我是Spark,Hadoop和Yarn的初学者。我使用以下命令安装Spark:https://spark.apache.org/docs/2.3.0/ 和Hadoop / Yarn与: https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html。 我的目标是在纱线簇上运行火花应用程序,但是我遇到了问题。 我们怎么知道我们的设置何时起作用?我将向您展示我的例子。 完成设置后,我尝试运行测试jar:examples / jars / spark-examples * .jar。当我在本地运行时,使用: ./bin/spark-submit --class org.apache.spark.examples.SparkPi, 我一会儿看到一行:“ Pi大致为3.1370956854784273”,而当我想在以下纱线上运行时: ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster examples / jars / spark-examples * .jar我看不到“ Pi大致为3.1370956854784273”在控制台中,我不知道在哪里可以找到它。我在Url http://localhost:8088/cluster/cluster中观看了日志,但没有出现。 你知道我应该去哪里吗? 感谢您的帮助,祝您愉快。
答案 0 :(得分:1)
您可以使用资源管理器和应用程序ID使用相同的视图
或使用以下命令,您将获得应用程序的整个日志
使用
纱线记录-applicationId 应用程序ID
答案 1 :(得分:1)
在纱线簇模式下,默认输出控制台实际上不是您的驱动程序(您在其中提交作业),而是纱线自行记录下来。 这样您就可以运行
yarn logs -applicationId application_1549879021111_0007 >application_1549879021111_0007.log
及之后
more application_1549879021111_0007.log
然后,您可以使用/pattern
,其中pattern是您在python脚本中的打印命令中包含的单词或表达式。通常,我使用
print ('####' + expression to print + '###')
在我可以做/ ###找到我的印刷品之后
答案 2 :(得分:0)
您需要在YARN中或从Spark UI中找到Spark驱动程序容器。从那里,您可以转到Executors选项卡,然后将看到每个链接的stdout
和stderr
链接(加上驱动程序,最终输出将在此处)。
超时后,YARN将逐出这些日志,这就是为什么您需要启用日志聚合并部署Spark History Server的原因。
FWIW,Cloudera在最近的公告中全力以赴在Kubernetes上运行Spark。不确定YARN(或带有Ceph或S3的HDFS是这些部署中的流行数据存储)是什么意思
答案 3 :(得分:0)
我遇到了同样的问题,并在执行以下步骤后终于能够检查“ Pi大致为3.14 ...”:
首先通过将这些行添加到yarn-site.xml
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds</name>
<value>3600</value>
</property>
在修改yarn-site.xml之后,您可能需要重新启动yarn和dfs
然后通过命令行检查日志:
yarn logs -applicationId <applicationID>
希望有帮助。
答案 4 :(得分:-1)
您将不得不将控制台输出写入文件,这将执行的Spark程序的输出写入文件,您可以使用 tail -f 100 在下面提到的 consoleoutfile.txt 上查看控制台输出。
./submit_command > local_fs_path/consoleoutfile.txt 2>&1