无法在 Yarn 集群模式下 运行 Talend 作业
Not able to run Talend job in Yarn cluster mode
我正在使用带有 MapR 6.0 发行版和 sprak2.2 的 TOS 7.1。
流程:
Master job -> BigData Spark job1 [yarn mode: client]
Master job -> BigData spark job2 [yarn mode: cluster]
job1和job2都是一样的,只是yarn的部署方式不同。从 Linux 边缘节点执行时,具有“客户端”模式的作业工作正常,但来自同一父作业的“集群”模式不是 运行ning。
以下是集群模式下 yarn-application 日志的错误:
线程“main”中的异常 java.lang.NoClassDefFoundError:routines/system/api/TalendJob.
从错误和其他在线帮助来看,很明显有些库在构建过程中没有导出。但是,如果是这样的话,即使是“客户端”模式,作业也不应该 运行。
求推荐。
Talend 在 ../lib/ 目录中创建一个 routines.jar。 routines.jar对调用spark驱动程序所需的接口进行了强制定义,而spark驱动程序上下文无法从调用Talend的Edge节点中找到该jar。
简单的解决方案是将此 jar 作为额外的必需 yarn 存档 jar 传递,如果需要,还可以传递任何其他 jar。
我已将此 jar 与其他必需的 hive/zookeeper 必需的 jar 捆绑在一起并移至 hdfs。并且此 hdfs 路径作为额外的 spark 属性 提供给 Yarn Archive jars。
我正在使用带有 MapR 6.0 发行版和 sprak2.2 的 TOS 7.1。
流程: Master job -> BigData Spark job1 [yarn mode: client] Master job -> BigData spark job2 [yarn mode: cluster]
job1和job2都是一样的,只是yarn的部署方式不同。从 Linux 边缘节点执行时,具有“客户端”模式的作业工作正常,但来自同一父作业的“集群”模式不是 运行ning。
以下是集群模式下 yarn-application 日志的错误: 线程“main”中的异常 java.lang.NoClassDefFoundError:routines/system/api/TalendJob.
从错误和其他在线帮助来看,很明显有些库在构建过程中没有导出。但是,如果是这样的话,即使是“客户端”模式,作业也不应该 运行。
求推荐。
Talend 在 ../lib/ 目录中创建一个 routines.jar。 routines.jar对调用spark驱动程序所需的接口进行了强制定义,而spark驱动程序上下文无法从调用Talend的Edge节点中找到该jar。
简单的解决方案是将此 jar 作为额外的必需 yarn 存档 jar 传递,如果需要,还可以传递任何其他 jar。 我已将此 jar 与其他必需的 hive/zookeeper 必需的 jar 捆绑在一起并移至 hdfs。并且此 hdfs 路径作为额外的 spark 属性 提供给 Yarn Archive jars。