Apache Pig UDF如何分发到数据节点?

时间:2016-02-23 23:43:33

标签: apache-pig

有很多关于如何用各种语言编写Pig UDF的文档,但是我没有找到关于它们如何分发到数据节点的任何信息。

调用pig脚本时是否自动完成?如果它有所不同,我将用Java编写UDF。

2 个答案:

答案 0 :(得分:1)

让我说清楚一点。每当我们使用UDF并且猪处于hdfs模式时。然后,根据hadoop的内部架构,最初驻留在本地或客户端的UDF被传送到集群。现在,UDF任务由任务跟踪器执行,并且它成为作业跟踪器的职责,将UDF分配给任务跟踪器,该跟踪器靠近输入文件所在的数据节点。 注意:它始终是作业跟踪器(名称节点的组件),它实际上决定哪个任务跟踪器应该执行UDF的执行。

如果输入文件是本地文件系统(本地模式),则UFD将在本地JVM中执行。

答案 1 :(得分:0)

事实上,apache pig有两种模式 1)本地模式 2)hdfs模式

要回答你的问题,它属于以hdfs模式运行的pig,我们只确保我们加载的输入文件存在于hdfs(数据节点)中。当问题出现在UDF中时,这只是一个用于处理输入文件的函数,只是链接猪拉丁语。我们正在通过客户端节点编写UDF,pig latin,因此与此相关的所有数据都将存储在客户端计算机中。 最重要的是,我们配置了pig,以便客户端可以与hdfs交互以处理所需的结果。

希望这有帮助