mapreduce—hadoop流媒体的工作原理

ffvjumwh  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(256)

当我们作为hadoop mapreduce流的一部分运行以下命令时
hadoop jar/usr/lib/hadoop mapreduce/hadoop-streamingx.jar-input cities.txt-output streamout-mapper/bin/cat-reducer'grep-i ca'
1) 基于java的mapreduce作业是否在后台工作?

1tu0hz3e

1tu0hz3e1#

您可以在本文中找到命令的内部结构
mapper和reducer都是可执行文件,它们从stdin(逐行)读取输入并将输出发送到stdout。该实用工具将创建map/reduce作业,将作业提交到适当的集群,并监视作业的进度,直到作业完成。
当为Map器指定可执行文件时,每个Map器任务将在Map器初始化时作为单独的进程启动可执行文件。当mapper任务运行时,它将其输入转换为行,并将行提供给进程的stdin。同时,Map器从进程的stdout收集面向行的输出,并将每一行转换为一个键/值对,作为Map器的输出进行收集。
当为reducer指定一个可执行文件时,每个reducer任务将作为一个单独的进程启动该可执行文件,然后初始化reducer。在reducer任务运行时,它将其输入键/值对转换为行,并将这些行提供给进程的stdin。同时,reducer从进程的stdout收集面向行的输出,将每一行转换成一个键/值对,作为reducer的输出进行收集。

kknvjkwl

kknvjkwl2#

你说得对,这是java代码在幕后运行。。mapreduce作业由streamjob触发,如果它不是java类,那么mapper只是指定命令的 Package 器。

相关问题