apache-spark - Oozie Spark Action(包含Pyspark脚本)卡在RUNNING中

标签 apache-spark hadoop pyspark yarn oozie

这是我第一次尝试在Oozie中运行包含Pyspark脚本的Spark Action。
请注意,我在本地计算机(具有12G RAM的vm)中使用cdh5.13,并使用HUE构建工作流。

的工作流程.xml如下:

<workflow-app name="sparkMLpy" xmlns="uri:oozie:workflow:0.5">
    <start to="spark-c06a"/>
    <kill name="Kill">
        <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <action name="spark-c06a">
        <spark xmlns="uri:oozie:spark-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <master>yarn</master>
            <mode>client</mode>
            <name>MySpark</name>
            <jar>sparkml.py</jar>
            <file>/user/cloudera/sparkml.py#sparkml.py</file>
        </spark>
        <ok to="End"/>
        <error to="Kill"/>
    </action>
    <end name="End"/>
</workflow-app>

我也尝试添加一些选项:
--conf spark.dynamicAllocation.enabled=true 
--conf spark.shuffle.service.enabled=true 
--conf spark.dynamicAllocation.minExecutors=1

这是Pyspark脚本(几乎不执行任何操作):
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import *
sc=SparkContext()
log_txt=sc.textFile("/user/cloudera/CCHS.txt")
header = log_txt.first()
log_txt = log_txt.filter(lambda line: line != header)
temp_var = log_txt.map(lambda k: k.split(","))
c_path_out = "/user/cloudera/output/Frth"
temp_var.saveAsTextFile(c_path_out)

这是HUE中的工作流程 View :

View of the workflow in HUE

这是job.properties:
oozie.use.system.libpath=True
send_email=False
dryrun=False
nameNode=hdfs://quickstart.cloudera:8020
jobTracker=quickstart.cloudera:8032
security_enabled=False

当我运行工作流时,它没有给出任何错误,但仍保持运行,没有任何结果(甚至没有暂停)。这是下面的日志的一部分:

View of the logs

我尝试添加以下选项:
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=/usr/local/bin/python2.7 
--conf spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=/usr/local/bin/python2.7

而且它总是卡在运行中。当我验证日志时,发现以下警告:
Heart beat
2019-01-04 02:05:32,398 [Timer-0] WARN  org.apache.spark.scheduler.cluster.YarnScheduler  - Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
2019-01-04 02:05:47,397 [Timer-0] WARN  org.apache.spark.scheduler.cluster.YarnScheduler  - Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

你能帮忙吗?

最佳答案

我已经使用Cloudera VM进行了实验,并注意到使用几天后它的行为异常。我设法通过重新实例化Cloudera VM来解决该问题的唯一方法,并且该方法开始起作用。
即使您具有很少并行性的简单工作流,它也可能会按时工作,并且可能会在一段时间后卡住。使用REPL可以正常工作,但是使用Oozie可以将其挂起。

关于apache-spark - Oozie Spark Action(包含Pyspark脚本)卡在RUNNING中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53999404/

相关文章:

linux - YCSB 不适用于 HBase

python - 计算非升序字符串的最大值

amazon-web-services - 如何在粘合作业中添加当前时间戳(额外列),以便输出数据具有额外列

python - 如何使单元测试模拟代码对每个 spark worker 节点(进程)生效

java - 使用 Marathon 运行 Spark 作业

python - 如何使用pycharm连接spark和mysql

hadoop - Hadoop中的复制会导致数据冗余,那么为什么要在HDFS中进行呢?

hadoop - hive :SELECT *语句有效,但SELECT COUNT(*)不起作用

mysql - 基于另一个表 PySpark/SQL 的日期时间列聚合列

apache-spark - 将 spark-redis 连接器添加为依赖项时出现问题