错误HUE提交工作流程|依赖进口的错误

问题描述 投票:1回答:1

我得到一个导入错误,当我提出的工作流与色调,其中包含一个火花的行动。

回溯低于:

2019-01-30 16:31:48,048 [main] INFO  org.apache.spark.deploy.yarn.ApplicationMaster  - Waiting for spark context initialization...

Traceback (most recent call last):
  File "mover.py", line 7, in <module>
    import happybase
ImportError: No module named happybase
2019-01-30 16:31:48,169 [Driver] ERROR org.apache.spark.deploy.yarn.ApplicationMaster  - User application exited with status 1

在我的群集我有我所有的依赖关系,我的群集使用的星火,这里的Cloudera的指令来配置一个Python的virtualenv环境:qazxsw POI

当我在控制台中使用的火花提交命令,我可以运行没有任何问题我的应用程序。当我用色相刚出现的问题。

研究我发现这篇文章https://www.cloudera.com/documentation/enterprise/latest/topics/spark_python.html,我试图做同样的事情没有成功。

通过色相产生我的工作流的代码是:

http://www.learn4master.com/big-data/pyspark/run-pyspark-on-oozie
python apache-spark bigdata oozie hue
1个回答
0
投票

随着Cloudera的支持的帮助我解决了这样这个问题:

  1. 下面添加火花选择使: --conf spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON = path_to_venv --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON = path_to_venv

2,火花启动也需要这个环境变量设置,所以设置这个作为作业属性

<workflow-app name="Copy by hour" xmlns="uri:oozie:workflow:0.5">
<start to="spark-c88a"/>
<kill name="Kill">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<action name="spark-c88a" retry-max="1" retry-interval="1">
<spark xmlns="uri:oozie:spark-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>spark.executorEnv.PYSPARK_PYTHON</name>
<value>/opt/env_cluster/bin/python2</value>
</property>
<property>
<name>spark.yarn.appMasterEnv.PYSPARK_PYTHON</name>
<value>/opt/env_cluster/bin/python2</value>
</property>
</configuration>
<master>yarn</master>
<mode>cluster</mode>
<name>landing_to_daily</name>
<jar>mover.py</jar>
<arg>1</arg>
<arg>-s</arg>
<arg>eir_landing</arg>
<arg>-d</arg>
<arg>eir_daily</arg>
<file>/user/spark/eir/apps/mover.py#mover.py</file>
</spark>
<ok to="End"/>
<error to="email-77d4"/>
</action>
<action name="email-77d4">
<email xmlns="uri:oozie:email-action:0.2">
<to>[email protected]</to>
<subject>Error | Copy by hour</subject>
<body>Error in Workflow landing to daily </body>
<content_type>text/plain</content_type>
</email>
<ok to="Kill"/>
<error to="Kill"/>
</action>
<end name="End"/>
</workflow-app>
  • 显然,path_to_venv必须在集群中的所有节点相同的路径。
© www.soinside.com 2019 - 2024. All rights reserved.