Hadoop 流

前言

  Hadoop流提供了一个API,允许用户使用任何脚本语言编写Map函数或Reduce函数。

  本文对此知识点进行介绍。

Hadoop流的工作原理

  在以前的例子中,Map和Reduce工作都是由类来执行的,但在Hadoop流技术背景下,任何编制好的程序都能做这两个工作。

  执行Map的应用程序会读取输入,并将其切分成行后作为程序的Stdin,进行处理后,将每行第一个tab符号前的内容作为key,之后的内容作为value。

  如果没有tab符号,那么这一行的所有内容都会作为key,而value为空。

  值得一提的是,可以使用一个可执行程序做Map,而使用一个Java类做Reduce,或者反过来。

Hadoop流命令格式

  hadoop命令 + jar 流包 + -input 输入文件目录 + -output 输出文件目录 + -mapper map程序 + -reducer reduce程序

Hadoop 流命令选项

  

小结

  对于惯用C++的人来说,这个功能挺给力的。

时间: 2024-08-25 21:53:52

Hadoop 流的相关文章

5.hadoop流原理、实例和新旧API下Wordcount详解

前四篇文章讲了Hadoop的配置和测试以及eclipse下的使用,有兴趣的可以先看下. 1.Hadoop流简介 用可执行文件作为Mapper和Reducer,接受的都是标准输入,输出的都是标准输出. 当一个可执行文件作为Mapper时,每一个Map任务会以一个独立的进程启动这个可执行文件,然后在Map任务运行时,会把输入切分成行提供给可 执行文件,并作为它的标准输入(stdin)内容.当可执行文件运行出结果时,Map从标准输出(stdout)中收集数据,并将其转化 为<key, value>对

第五篇:Hadoop流

前言 Hadoop流提供了一个API,允许用户使用任何脚本语言编写Map函数或Reduce函数. 本文对此知识点进行介绍. Hadoop流的工作原理 在以前的例子中,Map和Reduce工作都是由类来执行的,但在Hadoop流技术背景下,任何编制好的程序都能做这两个工作. 执行Map的应用程序会读取输入,并将其切分成行后作为程序的Stdin,进行处理后,将每行第一个tab符号前的内容作为key,之后的内容作为value. 如果没有tab符号,那么这一行的所有内容都会作为key,而value为空.

hadoop 流streaming跑python程序

先放上命令: hadoop jar /usr/hadoop-1.2.1/contrib/streaming/hadoop-streaming-1.2.1.jar -mapper mapper.py -file mapper.py -reduce reduce.py -file reduce.py -file params.txt -file params2.txt -input /data/* -output /output 其中output不存在才可以. mapper.py的输出直接传给red

[转载]Elasticsearch、MongoDB和Hadoop比较

IT界在过去几年中出现了一个有趣的现象.很多新的技术出现并立即拥抱了“大数据”.稍微老一点的技术也会将大数据添进自己的特性,避免落大部队太远,我们看到了不同技术之间的边际的模糊化.假如你有诸如Elasticsearch或者Solr这样的搜索引擎,它们存储着JSON文档,MongoDB存着JSON文档,或者一堆JSON文档存放在一个Hadoop集群的HDFS中.你可以使用这三种配置完成很多同养的事情. ES是否可以作为一个NoSQL数据库?粗看,这句话说的不太对,但是这是一个合理的场景.类似地,M

Hadoop权威指南学习笔记二

MapReduce简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my_acm 上一篇介绍了什么是Hadoop.Hadoop的作用等.本篇相同基于Hadoop权威指南,结合迪伦的Hadoop的视频教程对MapReduce做一个介绍. 1. MapReduce是Hadoop的核心之中的一个.MapReduce分为两个部分,Mapper和Ruducer模块.简单

Hadoop知识体系完整笔记(未完)

数据流 MapReduce作业(job)是客户端执行的单位:它包括输入数据.MapReduce程序和配置信息.Hadoop把输入数据划分成等长的小数据发送到MapReduce,称之为输入分片.Hadoop为每个分片创建一个map任务,由它来运行用户自定义的map函数来分析每个分片中的记录. 这里分片的大小,如果分片太小,那么管理分片的总时间和map任务创建的总时间将决定作业的执行的总时间.对于大数据作业来说,一个理想的分片大小往往是一个HDFS块的大小,默认是64MB(可以通过配置文件指定) m

在Hadoop平台跑python脚本

1.开发IDE,我使用的是PyCharm. 2.运行原理       使用python写MapReduce的“诀窍”是利用Hadoop流的API,通过STDIN(标准输入).STDOUT(标准输出)在Map函数和Reduce函数之间传递数据.我们唯一需要做的是利用Python的sys.stdin读取输入数据,并把我们的输出传送给sys.stdout.Hadoop流将会帮助我们处理别的任何事情. 3.Map阶段 [[email protected] ~]$ vim mapper.py #!/usr

Hadoop第5周练习—MapReduce计算气象温度等例子

1    运行环境说明... 4 1.1     硬软件环境... 4 1.2     机器网络环境... 4 2    书面作业1:对云计算的看法... 4 2.1     书面作业1内容... 4 2.2     回答... 5 3    书面作业2:使用MapReduce求每年最低温度... 6 3.1     书面作业2内容... 6 3.2     运行代码... 6 3.2.1   MinTemperature. 6 3.2.2   MinTemperatureMapper6 3.2

Hadoop为什么不用JavaSetialization?

1.首先序列化应满足的格式标准:精简.快速.可扩展.支持互操作: 2.java后续实例只引用第一次出现的句柄,句柄占5个字节:而句柄引用不适用于随机访问:更大问题的是句柄引用会对序列化数据流中的排序记录造成巨大破坏. 而不把类名写到数据流中可以避免上述问题: 3.hadoop流中的每一条记录均独立于其他记录: 4.hadoop序列化不需要为新建对象分配空间而得到存储节省是非常可观的: