我正在编写一个自定义EL函数,该函数将用于oozie工作流程。
这个自定义函数只是普通的java代码,它不包含任何hadoop代码。
我的问题是,在工作流程运行时,EL函数将在何处执行?
它会在Oozie节点上执行我的EL功能吗?或者它会将我的自定义java代码推送到其中一个数据节点并在那里执行吗?
答案 0 :(得分:0)
Oozie是一个工作流程调度程序系统,用于自行管理Hadoop集群中的作业,它与Hadoop堆栈的其余部分集成,支持开箱即用的几种类型的Hadoop作业(例如Java map-reduce,Streaming map-reduce, Pig,Hive,Sqoop和Distcp)以及系统特定的作业(例如Java程序和shell脚本)。 Source
这意味着如果您在Oozie中提交作业,它将自行运行在任何可用的DataNode中,即使您的Oozie服务在Datanode中配置,那么它也可以在那里运行。
为了检查作业正在处理哪个节点,你必须从Hadoop1中的JobTracker或Hadoop2中的Yarn检查相同的内容,它将进程状态重定向到正在处理作业的TaskTracker节点
答案 1 :(得分:0)