原始问题的引出见:http://bbs.hadoopor.com/viewthread.php?tid=542
在论坛里搜查了下,觉察了两篇利用C/C++编写mapreduce的文章.如下:
http://bbs.hadoopor.com/thread-256-1-1.html
http://bbs.hadoopor.com/thread-420-1-2.html
一. 其中,利用stream的文章中提到,利用stream编写mapreduce过程,其reduce任务要等到所有map任务告终后能力举行,这点不太会意.
二. 从两种措施的告终上来看.感受有点独到.在linux下,等闲从stdin读入数据感受是管道的措施,而穿越socket读入数据为stream措施,然而在hadoop中,传神其叫法与linux下相反.不懂得为什么.
三. 从代码能够看出,在hadoop中,stream是利用stdin,而pipes是利用socket.这两者有什么优缺点能够比拟下的.
By:guxiangxi

一,二两个问题我也不会意,何止如何批复。第三个问题我更关怀一些,因为之前用过一下streaming,感受不是尤其好用,目前的情形还是纯熟C++,但写mapreduce还是用java。刚好Pipes刚好是我想要的。下面有三处文章能够参看
       1、http://cxwangyi.blogspot.com/2010/01/writing-hadoop-programs-using-c.html
       2、http://remonstrate.wordpress.com/2010/10/01/hadoop-上的-c-例程/
       3、http://blog.endlesscode.com/2010/06/16/***-demo-of-streaming-and-pipes/

归纳如下:
      1、Streaming是Hadoop供给的一个能够利用其他编程语言来举行MapReduce来的API,因为Hadoop是基于Java(由于作者比拟擅长Java,Lucene和Nutch都是出于Hadoop的作者)。Hadoop Streaming并不混杂,其只是利用了Unix的规范输入输出作为Hadoop和其他编程语言的开发接口,因而在其他的编程语言所写的过程中,只必需将规范输入作为过程的输入,将规范输出作为过程的输出就能够了。在规范的输入输出中,key和value是以tab作为分隔符,并且在reduce的规范输入中,hadoop框架保证了输入的数据是穿越了按key排序的。

2、Hadoop Pipes是Hadoop MapReduce的C++接口。与利用规范输入输出的Hadoop Streaming不同(当然Streaming也能够用于C++),Hadoop Pipes在tasktacker和map/reduce举行通信时利用的socket作为管道,不是规范输入输出,而不是JNI。Hadoop Pipes不能运行在standalone形式下,因而要先搭配成pseudo-distributed形式,因为Hadoop Pipes依靠于Hadoop的散布式缓存技巧,而散布式缓存只会在HDFS运行的时候才会扶持。与Java的接口不一样,Hadoop Pipes的key和value都是基于STL的string,因而在处理时开发人员必需手动地举行数据种类的转换。

3、从性质上 hadoop pipes 和 hadoop streaming 做的事情几乎一样,除非两者的通信不同,pipes 能够利用 hadoop 的 counter 个性。与 Java native code 比拟,Java native code 能够利用告终了 Writable 接口的任何数据种类作为 key/value,而 pipes 和 streaming 就定然穿越字符串举行顺次转换(通信开支大,存储开支大)。可能正是这个起因,pipes 可能尔后会被从 hadoop 中移除。当然,万一计算代价较高,可能 Java native code 并未曾 C++ 厉行效率高,那么尔后可能就写 streaming code 了。pipes 利用的是 byte array,刚好能够用 std:string 封装,只是例子里面都是转换成为字符串输入输出。这要求过程员自己设计科学的输入输出措施(数据 key/value 的分段)。

曾经获得验证:pipes 曾经从 hadoop 中移除。运行$ ~/hadoop-0.21.0/bin/hadoop,曾经看不到pipe的这一项了。

利用上的参看:
1、http://developer.yahoo.com/hadoop/tutorial/module4.html#pipes
2、http://code.google.com/p/hypertable/wiki/MapReduceWithHypertable

Gridview 表头加入checkbox的措施.

塑造战略的五种能力——迈克尔.波特再论“五力模型”.

Hadoop Streaming和Pipes会意相关推荐

  1. Hadoop详解(九):Hadoop Streaming和Pipes原理和实现

    为了保证编程接口的通用性,Hadoop提供了Streaming和Pipes编程框架和接口,Streaming编程框架通过标准的输入/输出作为媒介来和Hadoop框架交换数据,因此任何可以操作的标准输入 ...

  2. Hadoop Streaming 编程

    1.概述 Hadoop Streaming是Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或者脚本文件作为Mapper和Reducer,例如: 采用shell脚本语言中的一些命令作为ma ...

  3. Hadoop Streaming高级编程

    1. 概要 本文主要介绍了Hadoop Streaming的一些高级编程技巧,包括,怎样在mapredue作业中定制输出输出格式?怎样向mapreduce作业中传递参数?怎么在mapreduce作业中 ...

  4. Hadoop Streaming

    Hadoop Streaming Hadoop Streaming Hadoop Streaming     Streaming工作原理     将文件打包到提交的作业中     Streaming选 ...

  5. Hadoop Streaming框架使用(三)

    前两篇文章介绍了Hadoop Streaming框架的使用方法.由于篇幅所限,并没有介绍其中的高级使用方法,但是有一些用法还是相当常见的.今天对一些高级用法进行一个简单的说明,希望能给大家一些启发. ...

  6. Hadoop Streaming框架使用(一)

      Streaming简介 link:http://www.cnblogs.com/luchen927/archive/2012/01/16/2323448.html Streaming框架允许任何程 ...

  7. Hadoop Streaming编程实例

    Hadoop Streaming是Hadoop提供的多语言编程工具,通过该工具,用户可采用任何语言编写MapReduce程序,本文将介绍几个Hadoop Streaming编程实例,大家可重点从以下几 ...

  8. hadoop streaming部分问题总结

    来源: https://hadoop.apache.org/docs/r1.2.1/streaming.html#Generic+Command+Options 文档还是要好好看,中间遇到的好多问题文 ...

  9. Hadoop streaming: Exception in thread main java.io.IOException: No space left on device

    在使用Hadoop streaming时,遇到报错如标题: packageJobJar: [mapper_sim.py, reducer_sim.py, XXX files, /tmp/hadoop- ...

  10. 利用Hadoop Streaming处理二进制格式文件

    Hadoop Streaming是Hadoop提供的多语言编程工具,用户可以使用自己擅长的编程语言(比如python.php或C#等)编写Mapper和Reducer处理文本数据.Hadoop Str ...

最新文章

  1. JVM年轻代,老年代,永久代详解​​​​​​​
  2. 稀疏编码(Sparse Coding)(二)
  3. 新思路设计可视化大型微服务监控系统
  4. 7 centos ssh 单机_centos7单机安装kafka
  5. 数学建模python教材推荐_数模竞赛专攻python应该准备什么?
  6. RocketMQ入门到入土(五)消息持久化存储源码解析
  7. Mac OS 下安装wget
  8. 知识竞赛软件/答题系统/答题小程序
  9. 当时明月在,曾照彩云归。
  10. 0基础也可直接运行的微信表情包批量转换
  11. 文章重复率很高,4个快速修改的小技巧,赶快用起来
  12. napa与matlab,纳帕谷产区Napa Valley|酒斛网 - 与数十万葡萄酒爱好者一起发现美酒,分享微醺的乐趣...
  13. 或许再过两年,ASML将可以自由给中国供应EUV光刻机
  14. 2017 携程 笔试编程题 1
  15. 15-面向对象的程序设计--no
  16. 使用python批量修改图片名称
  17. Cocos2d-x游戏暂停、继续游戏、重新开始界面的实现---之游戏开发《赵云要格斗》(10)
  18. c++多态之 运行时多态与编译时多态
  19. iOS 探讨之 mach_absolute_time
  20. 电子邮箱哪家最安全,各家电子邮箱安全性盘点!

热门文章

  1. amd的服务器cpu型号大全,AMD CPU型号大全
  2. 十二、项目收尾(华为项目管理法-孙科炎读书摘要)
  3. 新版风格收款码三合一制作生成系统源码 附多个模板
  4. 利用Python使图片完美去除水印,我想试试马赛克的效果∧v∧
  5. Android Studio 怎么连接MUMU模拟器并永久使用
  6. 坐着童年纸飞机的C语言for循环!超好玩!超详细!
  7. 微信支付委托代扣的服务商模式和直连模式
  8. c# 毕设计算机毕设
  9. 招聘时最看重应聘者的什么特质?
  10. 分区助手扩大c盘后自动修复_【分区助手】如何扩大C盘容量?