【发布时间】:2015-10-19 11:34:15
【问题描述】:
我已经尝试了好几个小时并在谷歌上搜索了很多小时,但都没有运气。
我有一个在本地 spark 集群中运行良好的 spark 流应用程序。现在我需要将它部署在 cloudera 5.4.4 上。我需要能够启动它,让它在后台持续运行,并且能够停止它。
我试过了:
$ spark-submit --master yarn-cluster --class MyMain my.jar myArgs
但它只是无休止地打印这些行。
15/07/28 17:58:18 INFO Client: Application report for application_1438092860895_0012 (state: RUNNING)
15/07/28 17:58:19 INFO Client: Application report for application_1438092860895_0012 (state: RUNNING)
问题一:由于是流媒体应用,需要持续运行。那么如何在“后台”模式下运行它呢?我能找到的在纱线上提交火花作业的所有示例似乎都假设应用程序将完成一些工作并终止,因此您希望在前台运行它。但流媒体并非如此。
接下来...此时应用程序似乎无法正常运行。我认为这可能是我的错误或配置错误,因此我尝试查看日志以了解发生了什么:
$ yarn logs -applicationId application_1438092860895_012
但它告诉我:
/tmp/logs/hdfs/logs/application_1438092860895_0012does not have any log files.
那么问题2:如果应用程序正在运行,为什么它没有日志文件?
所以最终我不得不杀死它:
$ yarn application -kill application_1438092860895_012
这带来了第 3 个问题:假设我最终可以启动应用并在后台运行,“yarn application -kill”是停止它的首选方式吗?
【问题讨论】:
标签: hadoop apache-spark spark-streaming hadoop-yarn cloudera