hadoopstreaming原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

hadoopstreaming原理
Hadoop Streaming是一种将非Java语言的程序与Hadoop框架集成
的方法。

它允许用户使用自己熟悉的编程语言来编写Mapper和Reducer
任务,而不是使用Java。

Hadoop Streaming的原理是通过标准输入和标准输出将数据传递给Mapper和Reducer任务,这样就可以在不修改Hadoop源代码的情况下使
用各种编程语言。

用户只需要编写一个可以读取标准输入并将结果写入标
准输出的程序,就可以作为Hadoop Streaming任务的Mapper或Reducer。

Hadoop Streaming的工作流程如下:
1. 用户首先需要编写一个Mapper程序和一个Reducer程序,通常使
用Shell脚本、Python或Perl等脚本语言来编写。

2. 用户需要将Mapper和Reducer程序制定为可执行文件,并将它们
上传到Hadoop集群上的一个可供访问的位置。

3. 用户需要将输入数据存储在Hadoop分布式文件系统(HDFS)中,
并且需要将输入数据的位置指定给Hadoop Streaming任务。

4. 当用户提交一个Hadoop Streaming任务时,启动一个MapReduce
任务控制器,它负责调度任务,并管理Mapper和Reducer任务。

5. MapReduce任务控制器将根据用户指定的输入路径将输入数据分
割成多个数据块,并将每个数据块分配给可用的Mapper任务。

6. 每个Mapper任务都会启动一个新的进程来执行Mapper程序。


进程从标准输入中读取数据块,并将结果写入标准输出。

7. 当Mapper任务完成时,MapReduce任务控制器将结果从标准输出中收集起来,并将其作为输入数据传递给Reducer任务。

8. Reducer任务也会启动一个新的进程来执行Reducer程序。

该进程从标准输入中读取Mapper任务的输出,并将结果写入标准输出。

9. 当Reducer任务完成时,MapReduce任务控制器将结果保存到HDFS中,以便用户后续的处理和分析。

Hadoop Streaming的优势在于可以使用各种编程语言来编写MapReduce任务,而不仅限于Java。

这使得用户可以使用自己熟悉的语言来处理和分析大数据,并且无需学习Java。

此外,由于使用了标准输入和标准输出进行数据传递,可以方便地与其他外部程序集成。

然而,Hadoop Streaming也存在一些缺点。

由于需要通过标准输入和标准输出进行数据传递,这可能导致性能下降。

而且,Hadoop Streaming的程序执行是串行的,即一个Mapper任务的输出必须等到所有Mapper任务完成后才能作为输入传递给Reducer任务,这可能导致任务执行时间的延长。

总之,Hadoop Streaming是一种将非Java语言与Hadoop框架集成的方法,它通过标准输入和标准输出进行数据传递,使用户可以使用各种编程语言来编写MapReduce任务。

这种方法的优势在于灵活性和易用性,但也存在一些性能方面的限制。

相关文档
最新文档